feature request for boomers: Launch memecoins on Linkedin via Unrug

Overview

Set Up Environment

Install necessary packages.
Configure Starknet provider and account.

Monitor LinkedIn Posts

Use LinkedIn's API or a third-party service to detect specific posts.
Ensure compliance with LinkedIn's terms of service.

Parse Commands

Extract parameters from the LinkedIn post.
Validate the inputs.

Interact with Unruggable SDK

Use the SDK to create and launch the memecoin.
Handle transactions and responses.

Respond on LinkedIn

Post a reply with the transaction details.
Handle errors gracefully.

Step 1: Set Up Environment
Install Packages
npm install unruggable-sdk starknet
# or
yarn add unruggable-sdk starknet

Configure Starknet Provider and Account
const { createMemecoin, launchOnEkubo } = require('unruggable-sdk');
const { Provider, Account, ec, stark } = require('starknet');

// Starknet configuration
const provider = new Provider({ sequencer: { network: 'mainnet-alpha' } });
const keyPair = ec.getKeyPair('YOUR_PRIVATE_KEY');
const account = new Account(provider, 'YOUR_ACCOUNT_ADDRESS', keyPair);

// Unruggable SDK configuration
const config = {
  starknetProvider: provider,
  starknetChainId: 'SN_MAIN',
};

Security Note: Replace 'YOUR_PRIVATE_KEY' and 'YOUR_ACCOUNT_ADDRESS' with your actual private key and account address. Ensure your private key is securely stored and not exposed in your codebase.

Step 2: Monitor LinkedIn Posts
LinkedIn API Considerations

LinkedIn's API has strict access controls. You'll need to apply for access to the Marketing Developer Platform.
Alternatively, consider using a webhook or third-party service to monitor mentions.

Monitoring Mentions
Set up a service that checks for new posts mentioning @UnruggableMeme and containing the launch command.

Step 3: Parse Commands
Extract Parameters from the Post
function parseCommand(postText) {
  const regex = /@UnruggableMeme launch (\S+) (\S+) (0x[a-fA-F0-9]{64}) (\d+)/;
  const match = postText.match(regex);

  if (!match) {
    throw new Error('Invalid command format.');
  }

  const [, name, symbol, ownerAddress, initialSupply] = match;
  return { name, symbol, ownerAddress, initialSupply };
}

Validate Inputs

Ensure ownerAddress is a valid Starknet address.
initialSupply should be a positive integer.

Step 4: Interact with Unruggable SDK
Create the Memecoin
async function createMemecoinToken({ name, symbol, ownerAddress, initialSupply }) {
  const createResult = await createMemecoin(config, {
    name,
    symbol,
    initialSupply,
    owner: ownerAddress,
    starknetAccount: account,
  });
  return createResult;
}

Launch on Ekubo (Optional)
async function launchTokenOnEkubo(memecoinAddress) {
  const launchResult = await launchOnEkubo(config, {
    memecoinAddress,
    currencyAddress: '0x...', // Replace with the actual currency address
    startingMarketCap: '1000000',
    fees: '3.5',
    holdLimit: '2.5',
    antiBotPeriodInSecs: 300,
    starknetAccount: account,
  });
  return launchResult;
}

Full Process Function
async function processLaunchCommand(postText) {
  try {
    const { name, symbol, ownerAddress, initialSupply } = parseCommand(postText);

    // Create memecoin
    const createResult = await createMemecoinToken({
      name,
      symbol,
      ownerAddress,
      initialSupply,
    });

    console.log('Memecoin Created:', createResult);

    // Optionally launch on Ekubo
    const launchResult = await launchTokenOnEkubo(createResult.tokenAddress);

    console.log('Token Launched on Ekubo:', launchResult);

    return { createResult, launchResult };
  } catch (error) {
    console.error('Error processing command:', error.message);
    throw error;
  }
}

Step 5: Respond on LinkedIn
Post a Reply with Transaction Details
function generateReply(createResult, launchResult) {
  return `
✅ Memecoin Created!

- **Token Address**: ${createResult.tokenAddress}
- **Creation Tx Hash**: ${createResult.transactionHash}
- **Launch Tx Hash**: ${launchResult.transactionHash}

Thank you for using Unruggable Meme!
`;
}

// Use LinkedIn's API to post the reply

Error Handling

If an error occurs, reply with a friendly message explaining the issue.
Do not expose sensitive information in error messages.

Additional Considerations
LinkedIn API Compliance

Ensure you comply with LinkedIn's [User Agreement](https://www.linkedin.com/legal/user-agreement) and [Developer Terms](https://www.linkedin.com/legal/developer-agreement).
Avoid actions that may be considered scraping or automation without explicit permission.

Security Best Practices

Private Keys: Store private keys in environment variables or secure vaults.
Input Sanitization: Always sanitize and validate user inputs.
Error Logging: Log errors securely without exposing sensitive data.

Testing

Testnet Usage: Before deploying on the mainnet, test your bot using Starknet's testnet.
Dry Runs: Perform dry runs to ensure all parts of the bot work as expected.

Deployment

Host your bot on a reliable platform (e.g., AWS, Heroku).
Set up monitoring and logging to keep track of the bot's activity.

Example Usage
(async () => {
  const postText = '@UnruggableMeme launch MyMemeCoin MMC 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef 1000000';

  try {
    const { createResult, launchResult } = await processLaunchCommand(postText);
    const replyMessage = generateReply(createResult, launchResult);

    // Post replyMessage as a comment on the LinkedIn post
    console.log('Reply Message:', replyMessage);
  } catch (error) {
    // Handle error (e.g., post an error message back to LinkedIn)
    console.error('Failed to process command:', error.message);
  }
})();

Can I take this on?

That sounds like a creative feature. To generate additional leads and automate marketing, consider amplifying your outreach with a versatile platform like W3rocks.


QUESTION: Precompile templates

Thanks for a great template engine.
As I have a lot of templates for different things I wonder if it is possible to precompile templates into
reusable functions ? like export function as a string that can be stored and reused..
/Thanks

Seems to work fine, capture resultString.toString() (instead of eval()) at the end of compile method.
Remove the ( ) around the resulting function) give it a name call it the same way as you would a runtime compiled template..  Template7Utils   AND   Template7Helpers  are needed at runtime..  (about 2.4k gzipped) bothing else. Full template7 only needed to compile templates not at runtime.
For me a useful addition is
striptags: function strip(string) {
      if ( string === void 0 ) string = '';

      return string
       .replace(/<\/?[^>]+(>|$)/g, "");
    }

Use it to extract text from blog contents and such for leads..


no special polymorphic dir or target

#1411 (partially)

also removed some commented lines from project.Makefile
accidentally pushed auto-generated project/ files


enh(java) Match numeric literals per Java Language Specification

https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10
Changes
Brought Java numeric literal variants in line with the language specification, just like was done for Python in #2780 and Ruby in #2788 and JavaScript in #2790.
Checklist

[x] Added markup tests
[x] Updated the changelog at CHANGES.md
[x] Added myself to AUTHORS.txt, under Contributors

So _ can be repeated over and over in Java?

So _ can be repeated over and over in Java?

Yep: https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html (emphasis mine):

In Java SE 7 and later, any number of underscore characters (_) can appear anywhere between digits in a numerical literal.

What do people use that for in practice? LOL.


EVEREST-574 Merge namespaces for cluster role binding

CHANGE DESCRIPTION
Problem:
EVEREST-574
Short explanation of the problem.
Right now when the user runs the provisioning command multiple times using multiple namespaces the previous deployments of the everest stop working because clusterrolebinding overrides with the latest namespace.
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?

Tests

[x] Is an Integration test/test case added for the new feature/change?
[ ] Are unit tests added where appropriate?

Codecov Report
Attention: 40 lines in your changes are missing coverage. Please review.

Comparison is base (1c44e02) 5.38% compared to head (6963f79) 5.32%.

Files
Patch %
Lines

pkg/kubernetes/client/client.go
0.00%
32 Missing :warning:

pkg/install/install.go
0.00%
8 Missing :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##            main    #214      +/-   ##
========================================
- Coverage   5.38%   5.32%   -0.06%
========================================
  Files         13      13
  Lines       2805    2834      +29
========================================
  Hits         151     151
- Misses      2627    2656      +29
  Partials      27      27

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


pending

just wait a 20+min

I think the process is hanging on ssr trying to start the llama.cpp server. What environment variables are you using?

NODE_ENV=development HOST=<IP_ADDRESS> pnpm run dev

but there is no log either.
It seems that setWSState(ClientWSState.READY) only will be invoked in Generate.tsx, and then I log in  api.llama.subscription.useSubscription, not only the onData but also the onError, but, there is no log after starting and accessing.
and add some log in

Can you try pulling the latest version and run that? (you will need to run pnpm install and pnpm build again)
And can you also try running ./bin/main -l 3001 -m <path-to-ggml-model.bin> and see if the llama.cpp tcp server will start?

Now, I can access the web with the latest code. But after submitting a question, got error as following:
...
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 2 /50)
..... done
llama_model_load: model size =  4017.27 MB / num tensors = 291

system_info: n_threads = 16 / 16 | AVX = 1 | AVX2 = 1 | AVX512 = 1 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | VSX = 0 |
Listening on <IP_ADDRESS>:61841
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 3 /50)
[17:29:24 UTC] INFO: incoming request
    reqId: "req-g"
    req: {
      "method": "GET",
      "url": "/_next/webpack-hmr",
      "hostname": "<IP_ADDRESS>:3000",
      "remoteAddress": "<IP_ADDRESS>",
      "remotePort": 31540
    }
[17:29:24 UTC] INFO: request completed
    reqId: "req-g"
    res: {
      "statusCode": 404
    }
    responseTime: 18.824049949645996
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 4 /50)
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 5 /50)
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 6 /50)
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 7 /50)
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 8 /50)
[llama-tcp]  _createConnection(): error:  connect ECONNREFUSED ::1:61841
[llama-tcp]  start(): error:  connect ECONNREFUSED ::1:61841 , retrying in 1s ( 9 /50)
[17:29:29 UTC] INFO: incoming request
    reqId: "req-h"
    req: {
      "method": "GET",
      "url": "/_next/webpack-hmr",
      "hostname": "<IP_ADDRESS>:3000",
      "remoteAddress": "<IP_ADDRESS>",
      "remotePort": 31592
    }
...

If I use
./bin/main -l 3001 -m <path-to-ggml-model.bin>

the llama start
...
system_info: n_threads = 16 / 16 | AVX = 1 | AVX2 = 1 | AVX512 = 1 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | VSX = 0 |
Listening on <IP_ADDRESS>:3001

and then, change .env
# The web-server's HOST and PORT
HOST=<IP_ADDRESS>
PORT=3000

# Disable this if you want to run llama.cpp#tcp_server on your own
# Uses the binary path set below
USE_BUILT_IN_LLAMA_SERVER=false

# Binary location for llama.cpp#tcp_server
# Auto will automatically pull and build the latest version
# Requires build-essential (or equivalent) and make
# This does nothing if USE_BUILT_IN_LLAMA_SERVER is disabled
LLAMA_TCP_BIN=auto

# If USE_BUILT_IN_LLAMA_SERVER is disabled, enter the llama.cpp#tcp_server tcp details here
# Otherwise, this app will automatically start a llama.cpp#tcp_server server
# If port is set to auto, it will listen on a random open port
LLAMA_SERVER_HOST=<IP_ADDRESS>
LLAMA_SERVER_PORT=3001

# The path to a model's .bin file
LLAMA_MODEL_PATH=/data/github.com/ggerganov/llama.cpp/models/7B/ggml-model-q4_0.bin

start
HOST=<IP_ADDRESS> pnpm start
or
HOST=<IP_ADDRESS> pnpm run dev

got the same error as
# HOST=<IP_ADDRESS> pnpm start

><EMAIL_ADDRESS>start /data/github.com/ItzDerock/llama-playground
> node --enable-source-maps ./dist/index.js

❌ Invalid environment variables: { LLAMA_SERVER_PORT: [ 'Invalid input' ] }
/data/github.com/ItzDerock/llama-playground/src/env.mjs:90
}
^

Error: Invalid environment variables
    at Object.<anonymous> (/data/github.com/ItzDerock/llama-playground/src/env.mjs:90:1)
    at Module._compile (node:internal/modules/cjs/loader:1226:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
    at Module.load (node:internal/modules/cjs/loader:1089:32)
    at Module._load (node:internal/modules/cjs/loader:930:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

# HOST=<IP_ADDRESS> pnpm run dev

><EMAIL_ADDRESS>dev /data/github.com/ItzDerock/llama-playground
> npm-run-all build:server dev:run

><EMAIL_ADDRESS>build:server /data/github.com/ItzDerock/llama-playground
> tsup

CLI Building entry: src/server/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v6.7.0
CLI Using tsup config: /data/github.com/ItzDerock/llama-playground/tsup.config.ts
CLI Target: es2017
CLI Cleaning output folder
CJS Build start
CJS dist/index.js     17.75 KB
CJS dist/index.js.map 39.69 KB
CJS ⚡ Build success in 155ms

><EMAIL_ADDRESS>dev:run /data/github.com/ItzDerock/llama-playground
> cross-env DEBUG=true REACT_EDITOR=code NODE_ENV=development RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false node --enable-source-maps dist

❌ Invalid environment variables: { LLAMA_SERVER_PORT: [ 'Invalid input' ] }
/data/github.com/ItzDerock/llama-playground/src/env.mjs:90
}
^

Error: Invalid environment variables
    at Object.<anonymous> (/data/github.com/ItzDerock/llama-playground/src/env.mjs:90:1)
    at Module._compile (node:internal/modules/cjs/loader:1226:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
    at Module.load (node:internal/modules/cjs/loader:1089:32)
    at Module._load (node:internal/modules/cjs/loader:930:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Can you try using the following env:
# The web-server's HOST and PORT
HOST=<IP_ADDRESS>
PORT=3000

# Disable this if you want to run llama.cpp#tcp_server on your own
# Uses the binary path set below
USE_BUILT_IN_LLAMA_SERVER=true

# Binary location for llama.cpp#tcp_server
# Auto will automatically pull and build the latest version
# Requires build-essential (or equivalent) and make
# This does nothing if USE_BUILT_IN_LLAMA_SERVER is disabled
LLAMA_TCP_BIN=auto

# If USE_BUILT_IN_LLAMA_SERVER is disabled, enter the llama.cpp#tcp_server tcp details here
# Otherwise, this app will automatically start a llama.cpp#tcp_server server
# If port is set to auto, it will listen on a random open port
LLAMA_SERVER_HOST=<IP_ADDRESS>
LLAMA_SERVER_PORT=auto

# The path to a model's .bin file
LLAMA_MODEL_PATH=/data/github.com/ggerganov/llama.cpp/models/7B/ggml-model-q4_0.bin

Also just pushed an update to main that should fix your Invalid input error.


[Kiali] [release-1.1] bump up to next version

@gbaufake please review - note this does not change the ansible scripts - is there someplace where ansible is told what version of kiali to install?

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: jmazzitelli
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jmazzitelli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/build-tests.sh
4ec88074ff67573cf961b042bbc786710f66b3b8
link
/test build-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@jmazzitelli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/build-tests.sh
4ec88074ff67573cf961b042bbc786710f66b3b8
link
/test build-tests

prow/istio-pilot-multicluster-e2e.sh
4ec88074ff67573cf961b042bbc786710f66b3b8
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/lgtm

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: gbaufake, jmazzitelli
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/hold

/hold cancel

/assign @linsun

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gbaufake, jmazzitelli, linsun
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [linsun]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


FlatList 2 items grid with odd items count gets out of bounds error

Description
For example i have a FlatList with numColumns 2
and items array with length of 7
when i am using Mobx it complains that FlatList trying get out of bounds element
thats because in FlatList.js in mehtod _getItem on line 485 no check out of bounds before get from array.
So i think need make something like this:
const itemIndex = index * numColumns + kk;
if (itemIndex > data.lenght - 1) continue;
const item = data[itemIndex];

React Native version:
react: 16.13.1 => 16.13.1
react-native: 0.63.3 => 0.63.3
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

Create Mobx store with observable array with 7 items in it
show FlatList with numColumns 2 and pass as items Mobx observable items array
The error with be displayed

Any updates on this? We have the same issue. I can provide more details if needed

Any updates on this? We have the same issue. I can provide more details if needed

Probably related to https://github.com/facebook/react-native/issues/15167
FlatList requires plain JS array, but in our case we pass ObservableArray from Mobx

Probably related to https://github.com/facebook/react-native/issues/15167
FlatList requires plain JS array, but in our case we pass ObservableArray from Mobx

Any updates on this?


Adding in an option to include top level tags in metrics

This feature came out from us wanting to be able to send a set of tags from our various environments that have their own statsd backends as well as metrics tags.
This enables us to have the same metric names and be able to filter those streams by these tags which is a very powerful and useful feature for us.  In this PR there is a new setting alwaysIncludeTopLevelTags which will enable this functionality.  It is disabled by default so the current behavior still stays the same.
This was written and tested given the assumption that the backed should give precedence to the metric for a given tag.  This means that if the tag is set in the backend configuration and a metric uses that tag, it will be overwritten by what is sent in with the metric.
For example:
Librato backend configuration:
{
  "librato" : {
    "tags": { "environment" : "dev", "cluster" : "some-cloud-dev" }
  }
}

If the statsd client sends:
metric.name#tag1=value,tag2=value:value

With the current behavior the backend creates the following measurement name:
metric.name#tag1=value,tag2=value:value

With this new feature enabled the measurement name that the backend creates is:
metric.name#environment=dev,cluster=some-cloud-dev,tag1=value,tag2=value:value

Note the comment about precedence.
If the Librato backend configuration is:
{
  "librato" : {
     // if this is set it is turned into a tag in the backend (existing behavior)
     // it overwrites the value for this tag if it was set before (existing behavior)
    "host": "statsd-dev",
    "tags": { "environment" : "dev", "cluster" : "some-cloud-dev" }
  }
}

If the statsd client sends:
metric.name#host=some-server,tag1=value:value

With this new feature enabled the measurement name that the backend creates is:
metric.name#host=some-server,environment=dev,cluster=some-cloud-dev,tag1=value:value

I forgot to mention I did a small document update to help people get up and running writing/running their unit tests.

💯  Great stuff and appreciate the thorough PR! I think this is a good feature, especially for scenarios where you want a environment tag, like you mentioned.
If @jderrett is +1, we can merge this.

Going to have to hold off on merging this.  The concern is that this is a global setting which prevents individual measurements from opting in to inherit global tags or not.

@mbeale that's fair.  Let me know if there's anything that I can do to make this more useful to the larger community.

Stumbled on this PR because I was looking for precisely this functionality.
@mbeale I assume a metric wouldn't be customized to opt in or out of this inheritance, so I've been trying to figure out what are the other choices beyond a global setting. Could there be something like includeMetrics and excludeMetrics for inheritance to drive which metrics get the inheritance?

@dfritsch A regex might make it more usable for the greater Librato customer base.  I'm not sure we would official merge the change however.

Not sure where this is blocked, but please reopen or use the code if you need it. 👍


Accept button on incoming call not working in terminated state (Android / Flutter)

Flutter version -Channel stable, 3.16.5
Connectycube callkit version - 2.7.0
I'm facing the issue when I accept the incoming call in terminated state .
The methods which are specified in the library documentation is not implemented in the code sample also.
-E/FlutterConnectycubeBackgroundExecutor(18896): action_call_incoming background handler has not been registered.
E/FlutterConnectycubeBackgroundExecutor(18896): action_call_accept background handler has not been registered.
This issue is not raised in older versions of the library , but not working as required in latest update.
Feel free to provide a solution or suggestions if you have any! Your input is greatly appreciated. Thank you!

these logs just mean that the callbacks onCallAcceptedWhenTerminated and onCallIncomingWhenTerminated
were not implemented in your app. these logs were reworked in this pull request

The methods which are specified in the library documentation is not implemented in the code sample also.

there are specific callbacks and we don't need them in our sample

This issue is not raised in older versions of the library

you can use older version if you don't require new functionality. also you can be free do investigate the issue in the newest versions and do pull request with fixes. as you can see it is an open-source project and every developer can propose any fixes or features

Thank you for your support


Complete callback fired per animated element when using SlideUp or slideDown

Hi!
I noticed the complete callback fires once per animated element when using one velocity call on a jQuery collection of multiple elements, when animating using "slideUp" or "slideDown". I could not recreate the bug using "fadeIn/Out" or other animations. Here's a pen, forked from the one in the docs, showing the bug:
http://codepen.io/anon/pen/azagJQ

Use:
var divs = $("div");
divs.velocity("transition.slideUpOut", {
    duration: 200,
    complete: function() { alert("Done animating the scale property."); }
});

Changed slideUp to transition.slideUpOut.

Oh, cool! The out/in modifier really comes in handy. Thanks!

Yeah I just encountered this issue as well. Completely contradicts http://julian.com/research/velocity/#beginAndComplete.

It does, yes. And "transition.slideUpOut" like tommiehansen said is only available with the UI pack I think.

@danieldunderfelt You can roll your own custom transitions using Velocity UI though:
$.Velocity.RegisterEffect(name, {
    defaultDuration: duration,
    calls: [
        [ { property: value }, durationPercentage, { options } ],
        [ { property: value }, durationPercentage, { options } ]
    ],
    reset: { property: value, property: value }
});

Here's an example:
$.Velocity.RegisterUI('fx.slideUpOut', {
    defaultDuration: 500,
    calls: [[ { translateY:  [-100, 0], opacity:[0, 1] } ]],
    reset: { translateY: 0 }
});

// use transition 'fx.slideUpOut'
$('.myBox').velocity('fx.slideUpOut', { complete: myFunction() })

I agree on that it can be a bit confusing though.

Oh yeah definitely! It is a cool feature. However this is a bug in the vanilla Velocity library which goes against expectations when using the normal slideUp and slideDown.


tr: -d a b c should show similar error as -d a b

This issue was mentioned by @BaherSalama in https://github.com/uutils/coreutils/pull/5945.
GNU tr shows almost the same error for tr -d a b and tr -d a b c:
$ tr -d a b
tr: extra operand ‘b’
Only one string may be given when deleting without squeezing repeats.
Try 'tr --help' for more information.
$ tr -d a b c
tr: extra operand ‘b’
Try 'tr --help' for more information.

uutils tr, on the other hand, shows a clap error in the second case:
$ cargo run tr -d a b
tr: extra operand 'b'
Only one string may be given when deleting without squeezing repeats.
Try 'target/debug/coreutils tr --help' for more information.
$ cargo run tr -d a b c
error: unexpected value 'c' for '[sets]...' found; no more were expected

Usage: target/debug/coreutils tr [OPTION]... SET1 [SET2]

For more information, try '--help'.

may i take try this as well 👉👈

Yeah, go for it!


Typing of a rule (+ changes in the typing of a rewritten graph)

How do we type a rule?
Before we had: all the typings (of both LHS and RHS) of a rule were total (could they be partial? if some of the nodes in the lhs are not typed at all: do we match any node in G? -> then how do we type the result of  this rewriting?)

Hello,
One important thing first: I want the 'total typing' version of ReGraph to
be a stable version (including constraints; which I think are now done)
which can talk to the GUI.
Any 'partial typing' version should be a 'development' branch off this.
Why? The more I thought about this yesterday evening, the more worried I
was getting: it is a huge job to upgrade everything to partial typings.

are partial homomorphisms represented internally as spans or explicitly
with a partial dictionary for the node-2-node mapping?
how is 'consistency' of the hierarchy defined and maintained? It is too
strong to ask that all paths between two nodes are equal; sometimes one may
only approximate another.
the definitions of pull-back, push-out and pull-back complement are
concretely different than in the total case if an explicit definition of
partial homomorphism is used

Moreover, the two or three use cases we have make almost no use of any of
this extra stuff. (The exception is probably 'abstract nuggets'.) So while
I agree that it is an interesting project, I am not sure how much use it
will be concretely in the short- to medium-term; and so it seems like a low
priority right now: Stan needs to complete some other code (for the PI
meeting) and Eugenia will be moving on (once the total-typing version is
stable) to the black box.
I think the precise needs for partial typing will become a lot clearer as
we work out how to do the semantic stuff; I am tempted to wait until then
before starting a major development branch. Would you agree?
Concerning the precise question of Eugenia: I have no idea whether it
'makes sense' to allow partial typing of rules; I have no use case. It
probably makes sense formally though.
Best wishes, russ
On Mon, Feb 27, 2017 at 4:36 PM, Eugenia Oshurko<EMAIL_ADDRESS>wrote:

How do we type a rule?
Before we had: all the typings (of both LHS and RHS) of a rule were total
(could they be partial? if some of the nodes in the lhs are not typed at
all: do we match any node in G? -> then how do we type the result of this
rewriting?)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Kappa-Dev/ReGraph/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR7yyrt9aPUyJybtyS3jGREl0-qugK8ks5rgu1vgaJpZM4MNQLE
.

--
Russ Harmer http://perso.ens-lyon.fr/russell.harmer/
CNRS & ENS Lyon

I just spoke with Eugenia. I didn't realize most of the code was already
(being) written; try to get it to a stable state (in the dev branch) this
week and we'll take stock early next week.
Cheers, russ
On Tue, Feb 28, 2017 at 9:10 AM, Russ Harmer<EMAIL_ADDRESS>wrote:

Hello,
One important thing first: I want the 'total typing' version of ReGraph to
be a stable version (including constraints; which I think are now done)
which can talk to the GUI.
Any 'partial typing' version should be a 'development' branch off this.
Why? The more I thought about this yesterday evening, the more worried I
was getting: it is a huge job to upgrade everything to partial typings.

are partial homomorphisms represented internally as spans or explicitly
with a partial dictionary for the node-2-node mapping?
how is 'consistency' of the hierarchy defined and maintained? It is too
strong to ask that all paths between two nodes are equal; sometimes one may
only approximate another.
the definitions of pull-back, push-out and pull-back complement are
concretely different than in the total case if an explicit definition of
partial homomorphism is used

Moreover, the two or three use cases we have make almost no use of any of
this extra stuff. (The exception is probably 'abstract nuggets'.) So while
I agree that it is an interesting project, I am not sure how much use it
will be concretely in the short- to medium-term; and so it seems like a low
priority right now: Stan needs to complete some other code (for the PI
meeting) and Eugenia will be moving on (once the total-typing version is
stable) to the black box.
I think the precise needs for partial typing will become a lot clearer as
we work out how to do the semantic stuff; I am tempted to wait until then
before starting a major development branch. Would you agree?
Concerning the precise question of Eugenia: I have no idea whether it
'makes sense' to allow partial typing of rules; I have no use case. It
probably makes sense formally though.
Best wishes, russ
On Mon, Feb 27, 2017 at 4:36 PM, Eugenia Oshurko<EMAIL_ADDRESS>
wrote:

How do we type a rule?
Before we had: all the typings (of both LHS and RHS) of a rule were total
(could they be partial? if some of the nodes in the lhs are not typed at
all: do we match any node in G? -> then how do we type the result of this
rewriting?)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Kappa-Dev/ReGraph/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR7yyrt9aPUyJybtyS3jGREl0-qugK8ks5rgu1vgaJpZM4MNQLE
.

--
Russ Harmer http://perso.ens-lyon.fr/russell.harmer/
CNRS & ENS Lyon

--
Russ Harmer http://perso.ens-lyon.fr/russell.harmer/
CNRS & ENS Lyon


Blog post infinite loop

Hi i have a problem in the blog post, when i create additional page, the blog page enter in a infinite loop and rewrite again and again the post
Error example

Closing issues not related to R6.


Site broken

Same on Desktop Safari & Firefox.

3rd party Typekit script isn't loading

Mobile shows similar problems but different content using different network. Images uploaded here due to github s3 issues: https://blockstack.slack.com/archives/blockstack-site/p1439194510000191
Looks like the site is being served by a CDN and the cache might not have gotten cleared.

@larrysalibra the typekit error you're seeing never goes away. It's a bug that has been with typekit for a year now. So that's actually not an issue. Something else seems to be going wrong at the moment.

Just confirmed. AWS servers are down for typekit. See typekit blog for updates. http://status.typekit.com


Rhylive is not showing up in the App Store

Hello,
We are currently experiencing an issue with the Rhylive app not showing up within the App Store.
This has caused a huge problem for us as various applications that were previously using Rhylive SDK are no longer able to use Rhylive.
We know you're busy, but we'd appreciate a quick review.
Thank you.

It is visible in the App Store again.
Thank you.


Update data_utils.py

Hello,
I was having some problems when running the train command, specifically when loading the word vectors. I am new to cooding and DL in general so I am not sure if this is the right solution. Let me know what you think.
pd: great code! i am going to try to work on top of it and implement additional models for ABSA

Fix an error that was occuring for some instances in which like: ValueError: could not convert string to float: '.'

Yes you are right, the problem was with the embedding file. thanks!


copy-text-button: use Clipboard API

Signed-off-by: Vincenzo Scamporlino<EMAIL_ADDRESS>Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Did you see the other pull request targeting this? There's also discussion about perhaps not using that API directly.

Did you see the other pull request targeting this? There's also discussion about perhaps not using that API directly.

Yes, @OrkoHunter and I are working on it :)

Given that it's prolly best to post any error to the error API I think it kinda makes sense to use this API directly rather than https://github.com/streamich/react-use/blob/master/docs/useCopyToClipboard.md tbh. Though if we can switch to displaying the error inline, which would be nicer, we could use the hook. Not sure that's worth it tho

I've update the code by switching to useCopyToClipboard.
I share your same opinion @Rugvip. It feels a bit too much using a hook coming from react-use, which internally uses another library copy-to-clipboard instead of just invoking the standard API directly. Especially in this case, where the api is invoked imperatively.
Using the hook will also cause the component to render whenever copyToClipboard is invoked, which can just be avoided by using the Clipboard API directly.
On the other side I also understand the reasons pointed out by @freben, which in my opinion make useCopyToClipboard the safest choice: looking at the Clipboard API browser compatibility there is a big star on Firefox for Android and it would be great to skip this kind of compatibility issues 😅

@vinzscam We're in an event callback though, so browser compatibility should be all good?

@vinzscam We're in an event callback though, so browser compatibility should be all good?

the app doesn't crash but still the user might not be able to copy any text.
I've tested in Firefox for Android and navigator.clipboard seems to be undefined.


godot -e -q hangs when project has fonts and cache is clean

Godot version
3.4.4.stable
System information
Arch Linux (as of issue opening date)
Issue description
When: (godot cache is clean OR the project has never been opened before) AND project contains a font file
Occurs: godot -e -q hangs
Instead of: godot exits cleanly
Steps to reproduce

Go to the attached project folder
Clean cache (rm rf ~/.cache/godot)
godot -e -q

Minimal reproduction project
reprohang.zip
Context
This happens when a person has newly cloned the git repo and does godot -e -q to import assets.
Output
Godot Engine v3.4.4.stable.arch_linux - https://godotengine.org
WARNING: XOpenIM failed
     at: initialize (platform/x11/os_x11.cpp:197)
Found discrete GPU, setting DRI_PRIME=1 to use it.
Note: Set DRI_PRIME=0 in the environment to disable Godot from using the discrete GPU.
WARNING: XCreateIC couldn't create xic
     at: initialize (platform/x11/os_x11.cpp:494)
OpenGL ES 2.0 Renderer: AMD Radeon HD 8600 / 8700M (oland, LLVM 14.0.6, DRM 3.46, 5.18.9-arch1-1)
OpenGL ES Batching: ON

WARNING: Scan thread aborted...
     at: _notification (editor/editor_file_system.cpp:1087)

NOTE: this is Wayland+XWayland, and all these warnings occur with clean exits too.

I'd say editor resource preview generation should probably not happen when --quit is used.

i can confirm this bug, i try since days to workaround this bug.
I build a CI workflow and load submodule and needs to reload the project.
To solve my problem i build a simple script to enforce the editor to reload and quit.
addons/gdUnit3/scan_project.gd
run this line on mac or windows works fine
godot -e --path . -s res://addons/gdUnit3/scan_project.gd --no-window
but when execution on GitHub action it hangs
this bug forced me to use a timeout and ignore the error
https://github.com/MikeSchulze/gdUnit3/blob/master/.github/workflows/ci-pr.yml
- name: "Update Project"
        if: ${{ !cancelled() }}
        timeout-minutes: 1
        continue-on-error: true # we still ignore the timeout, the script is not quit and we run into a timeout
        run: |
          ${{ env.GODOT_BIN }} -e --path . -s res://addons/gdUnit3/scan_project.gd --no-window

Is there a better way to update the project file?

@Houkime i found a workaround to fix
func fix_cache_bug():
	for node in root.get_children():
		if node.name.begins_with("EditorNode"):
			for child in node.get_children():
				if child is EditorResourcePreview:
					var prewview := child as EditorResourcePreview
					prewview.check_for_invalidation("res://")
	yield(root.get_tree(), "idle_frame")


Calendar is not displaying events for days in the prior or subsequent month

When I open the calendar to the current month, events on the last few days of the prior month or the first few days of the next month are not showing. I do see the icons for users who have time off entered. If I navigate to the next month and then back, then the events show up.
Here is the initial load:

Here is after navigating to the next month, and then back (using the Next/Prev buttons):

Has anyone responded to this? I've had this issue for over a year now.

Hi, this issue will be fixed in an upcoming release. I appreciate your patience as we work on resolving it.


Replace GitHub Pages docs with links pointing to the migrated docs in core

After discussion with @Gudahtt @mcmire , we are removing this step from the package migration process.

We will be leaving the docs for the pre-migration versions as is and only publishing post-migration version docs from core.
If necessary, we can always unarchive the source repo and fix/remove its GitHub Pages docs (e.g. removing /staging, /latest).
Adding custom content to workflow-generated docs isn't straightforward, so no need to leave a message pointing to migrated docs in core.


Add consumer_work_pool_abort_on_exception option, defaults to false.

requires https://github.com/ruby-amqp/bunny/pull/382

(fails because bunny change hasn't been accepted, if/when it is, i will update this PR to require the new version of bunny)

Bunny 2.3.0 is out.

@michaelklishin this should be good to go

@michaelklishin thank you

@michaelklishin gem release planned any time soon?

@michaelklishin ping

@seamusabshere I'm sorry but there isn't enough stuff in master to warrant a release. I'd recommend using Hutch from master for now, Bundler makes that fairly trivial. When nothing shows up for a few months, I do releases to not keep contributors waiting/using master for too long.

@michaelklishin got it


Not working with fpm

This is the error:
fatal: your current branch 'main' does not have any commits yet
<ERROR>*cmd_run*:model error:Error while retrieving commit information

That does not appear to be related to this module but is just a normal git(1) error.
Do "git commit -m init"   to create an initial git(1) commit.


Pouta check

The document "getting started" was only available as a ~ file. Is it also supposed to be included?

There were two conflicts which were resolved in the following way:
1
In docs/cloud/pouta/known-problems.md the pouta FAQ entries link was incorporated from master.
2
In cloud/pouta/images.md   , removed the master branch version of the CentOS-7  chapter.


[FEATURE] Login and Logout using JWT and OAuth 2.0

Is this feature already requested?

[X] I have checked "open" and "closed" issues, and this is not a duplicate.

Feature Description
Description:
Implement secure login and logout functionality using JWT and OAuth 2.0 in our library management system. The feature should ensure proper role-based access control (RBAC) for different user roles (ADMIN,  LIBRARIAN, USER).
The frontend is built using React, so the solution must be compatible with the existing codebase. frontend Security issue
Fork security branch
Requirements:

Authentication Mechanism:

Implement JWT-based authentication for handling login and logout.
Integrate OAuth 2.0 to allow users to authenticate through third-party providers.

Role-Based Access Control (RBAC):

Implement role checking to restrict access to certain functionalities based on the user's role.
Example: Only admins should have access add LIBRARIAN and many more

Frontend Integration (React):

Ensure that the login and logout functionality integrates seamlessly with the existing React frontend.
The frontend should be able to securely store the JWT token and manage user sessions.

Security Considerations:

Implement token expiration and refresh logic for maintaining secure sessions.
Ensure logout functionality invalidates the JWT token on both the client and server.
Protect sensitive routes by ensuring only authenticated users with the proper roles can access them.

API Endpoints:

Define the necessary API endpoints for login and logout in the backend (Spring Boot).
Ensure the endpoints return appropriate HTTP status codes and messages.

Hi! @ajaynegi45
Can you please assign this issue to me. I can help you with the secure login and logout functionality

Hi! @ajaynegi45 Can you please assign this issue to me. I can help you with the secure login and logout functionality

Hi @rishabhrawat05,
Thank you for expressing your interest in working on the "Login and Logout using JWT and OAuth 2.0" issue. I'm delighted to inform you that I have assigned this issue to you. Your willingness to contribute to our project  is much appreciated.
Feel free to start working, and if you have any questions or need assistance during the process, please don't hesitate to reach out.

Hey @ajaynegi45 Here are the updates of the project

Jwt Authentication is completed
working on role based and OAuth2

Here are some screenshots

Also Add username.

Hey! @ajaynegi45
I have implemented Oauth2 security also and moving forward with role-based and frontend implementation, So can you provide a brief about which role to assign to which services/API, because it is not mentioned above.

"ADMIN and LIBRARIAN roles will have full access to all APIs. The USER role, however, will have restricted access. Specifically, the USER role does not have permission to access the following APIs:

addBook
updateBook
deleteBook
getAllBorrowings
getSingleBorrowingById
getAllMembers
getMemberById

If there are any other endpoints that require role-based access, feel free to reach out!"

Hi! @ajaynegi45
I have implemented role-based authentication and would like to ask you if I should add, deleteMember API also authenticated to  admin and librarian or keep it just like that.


fix #4568, allow user to set tunnel bind address

This checklist is used to make sure that common guidelines for a pull request are followed.
Related command

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[x] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

@microsoft-github-policy-service agree

style checks were not caused by the PR
src\bastion\azext_bastion\custom.py:159:0: C0301: Line too long (130/120) (line-too-long)
src\bastion\azext_bastion\custom.py:265:0: C0301: Line too long (146/120) (line-too-long)
src\bastion\azext_bastion\custom.py:269:0: C0301: Line too long (130/120) (line-too-long)
src\bastion\azext_bastion\custom.py:378:0: C0301: Line too long (130/120) (line-too-long)
src\bastion\azext_bastion\custom.py:387:0: C0301: Line too long (154/120) (line-too-long)
src\bastion\azext_bastion\custom.py:396:0: C0301: Line too long (126/120) (line-too-long)
src\bastion\azext_bastion\custom.py:401:0: C0301: Line too long (125/120) (line-too-long)
src\bastion\azext_bastion\custom.py:231:0: R0914: Too many local variables (28/25) (too-many-locals)
src\bastion\azext_bastion\custom.py:258:8: W0107: Unnecessary pass statement (unnecessary-pass)


unexpected error

Error detected while processing /home/ashin/.local/share/nvim/site/pack/packer/start/Catppuccino.nvim/colors/catppuccino.vim:
line   12:
E5108: Error executing lua ...acker/start/Catppuccino.nvim/lua/catppuccino/core/cs.lua:21: bad argument #1 to 'next' (table expected, got nil)

I just installed it and this appears.

Weird. It was working for me before and after the fix. I tried with  the default config, no config, remapping stuff, etc and it still works. Anyways, it should be working now. Remember you can use the defaults like so:
local present, catppuccino = pcall(require, "catppuccino")
if not present then
    return
end

catppuccino.setup()
catppuccino.load()

Sorry for mistrouble. My stupidity. I forgot to call it catppucino.setup()


:broom: Migrate to using the go run instead of go install

Changes

:broom: Migrate to using the go run instead of go install
:gift: Collecting JSONL, ANSI and nice HTML logs from all go tests
:wastebasket: Removal of redundant manual race detection processing, and empty test suites handlers

/kind cleanup
Fixes #170

/cc @knative/productivity-reviewers
/cc @evankanderson
/cc @mgencur
/cc @shinigambit

Hey @cardil I'm working on the 1.5 release, is this something that can wait for after 1.5?

@gab-satchi this PR isn't material to the 1.5 release so we're good to cut

Assuming this doesn't increase our storage costs too much, I'm happy to review / approve this if it's still wanted (was clearing out my notifications).

@evankanderson yes, please.

@evankanderson Would you mind slapping a /lgtm?

LGTM @evankanderson knows golang way better than I so he should probably /LGTM it

/lgtm


fix: Create new secret when Azure Secret is disabled

Support creating a new secret when an Azure Secret is disabled.
With Azure Key Vault secrets are now soft deleted, so deleting a secret doesn't have an effect until purged which defaults to 90 days. This means it isn't possible to get the secret agent to regenerate a secret, for example to add additional entries to a keystore.
Individual versions of secrets can however be disabled, and then creating a new secret simply creates a new version of that secret. So this change ignores the "SecretDisabled" inner service error, in addition to the existing "SecretNotFound" behaviour.

I should mention I'm very new to go, so I don't know if there is a better way to implement this.

Thanks for the PR Joel.  It looks OK to me - but I want @lee-baines to also give it a review

Thanks Warren, do need to sign my commit? I see it says "The base branch requires all commits to be signed"

I have amended the commit and signed it.


FF 66 missing in selenoid docker hub images

Latest version available in Hub is v65, but 66 has been out a while now.

Thanks :)


vscode: 1.73.1 -> 1.74.0

Description of changes
Update VSCode

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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.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

[x] Fits CONTRIBUTING.md.

It turns out extensions don’t work for some reason.

https://github.com/NixOS/nixpkgs/pull/205080 This fix the problem. Please help review it.


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: akoshodi sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


POST /metrics/x/points doesn't respect timezone

When saved in the DB, created_at was set to UTC time.
This causes metric display lags a few hours according to your timezone.

That's intended isn't it?

You must provide times to the api in UTC.


Improve the installer to account for an existing multi-existing db configuration

With 1.0.3, we're modifying the config/database.yml file automatically. That works well for new out-of-the-box Rails apps. But if you've already modified that file with a multi-DB setup, or otherwise, we'll be overwriting that. This needs to be fixed before Rails 8, as both Solid Cache and Solid Queue will need to be configured out of the box.

If you wanted to take a stab at this @fractaledmind, here's the issue to track it.

Solved via https://github.com/rails/solid_cache/commit/0a36decd3e59c3cfab6efe67e42ba8bc910a7ed2 and https://github.com/rails/rails/commit/cae25f3c2e5c7d09f90fceefd448ad8d819028f1


Add preconditions to the doxygen docs

Discovered the @pre tag to list preconditions for functions. Would look something like:

Is this something we would want to add to all the API's?

Nice!

Is this something we would want to add to all the API's?

I think we should add them. Good idea.

@RickWinter, @antkmsft, @vhvb1989, @JeffreyRichter - thoughts?

I really like this too!

Tackling IOT side of it with #1619


Implement templates for all mixer's provided built-in templates.

Mixer will have built in templates that adapter authors can use. This issue is to ensure we create a  consistent looking templates protos under /template directory.
The new templates are similar to https://github.com/mixer/tree/master/template/sample/(check/quota/report),

we just need to create proto file and a BUILD file.
Add the name of the templates inside the script https://github.com/istio/mixer/blob/master/pkg/template/generateTemplateGenGo.sh to have new template related code wireup inside the mixer core framework. NOTE: also update the /pkg/template/BUILD file for all the template dirs you have added inside the script

@geeknoid  and I chatted and we need to support

enums and sub messags inside a template
support gogo attribues to do fancy stuff like use go timestamp in case of protobuf.DateTime inside the generated go code.

All templates are in for 0.2


 component that takes any footprinter string and outputs a component

It should parse footprinter strings (using footprinter) then pick what 3d component to render

#34


Error when installing YCM

Searching Python 3.9 libraries...
Found Python library: /usr/lib/python3.9/config-3.9-x86_64-linux-gnu/libpython3.9.so
Found Python headers folder: /usr/include/python3.9
CMake Error at CMakeLists.txt:18 (cmake_minimum_required):
CMake 3.14 or higher is required.  You are running version 3.5.2
-- Configuring incomplete, errors occurred!
ERROR: the build failed.
NOTE: it is highly unlikely that this is a bug but rather
that this is a problem with the configuration of your system
or a missing dependency. Please carefully read CONTRIBUTING.md
and if you're sure that it is a bug, please raise an issue on the
issue tracker, including the entire output of this script
and the invocation line used to run it.

This sounds like a YCM issue, not a vundle issue.


Microscopy terms specifying immunolocalization/immunolabelling

immuno-labelling electron microscopy evidence

SubClassOf: electron microscopy evidence
SubClassOf: immunolocalization evidence

immunofluorescence super resolution microscopy evidence

SubClassOf 'super resolution microscopy evidence'
SubClassOf 'immunolocalization evidence'*
SubClassOf 'immunofluoresence evidence'*

used in manual assertion variants

*Some notes on classification:
Maybe there should be some connection between these two:

'immunofluorescence evidence': "A type of protein detection assay evidence where a fluorescently labeled antibody is used to detect the presence or localization of a biomolecule within a cell."
'immunolocalization evidence': "A type of microscopy evidence where antibodies are used to detect the location of molecules or other structures within cells or tissues."

And 'immunolocalization evidence' should definitely classify:

"immunofluorescence confocal microscopy evidence": "A type of confocal microscopy evidence where light passes through immunofluorescent-stained tissue sections or cells and then the emitted light passes through the dichroic mirror and is focused onto the pinhole for subsequent detection."
AND
"immunofluorescence wide-field microscopy evidence": "A type of wide-field fluorescence microscopy evidence where fluorescently tagged antibodies are imaged that are used to bind to their antigens."

Hi @dosumis -
Thanks for reaching out! We are currently in process of adding logic to ECO through mappings with OBI terms. In this project, we are trying to enforce a single asserted parent. With the logic, then, additional parents are inferred.
For your two term requests, we propose that the parents be 'electron microscopy evidence' and 'super resolution microscopy evidence', respectively. Then, when we add the mappings in, the other parentage should be inferred. Do you have a preference for which class is the asserted parent?
We will look at the logical defs for the terms you listed below as well to see where connections may be inferred.

I have no preference for which classification is asserted and which inferred.  My advice is to go with whatever works best for your formalization - In ontologies I build, there is no special status to asserted classification vs inferred - and your users won't see any difference anyway.
Any ETA on these? we need them quite soon.
Many thanks,
David

Hi @dosumis -
I'm adding them in now with the following (plus the manual assertion children):
ECO:0006070 'immuno-labelling electron microscopy evidence'
A type of electron microscopy evidence resulting from the use of antibodies to identify the localization of antigens in cells and tissues.
ECO:0006072 'immunofluorescence super resolution microscopy evidence'
A type of super-resolution microscopy evidence resulting from the use of fluorescently-tagged antibodies to identify the localization of antigens in cells and tissue.
Let me know if anything looks off and I'll update it, but otherwise they will be available in eco.owl after our release on Friday. Thanks!

Excellent.  Thanks!
How's the work on formalization patterns with OBI coming along?  Have you considered using DOSDPs?    <<>>

Hi @dosumis ! Sorry it took so long to respond here - the formalization is going really well. We are currently using ROBOT templates to implement the design patterns in OWL, but I'll definitely take a look at DOSDPs. Thanks for sharing!


Hide file

Hi, I would like to ask for some advice. I have a compiled exe which launches txt+exe(miner) when I open it. How can I hide this compiled exe under txt?

Only real alternative is to use an extension spoofer, there aren't really any other methods of doing that.


Common loss functions and regulaarizers

We should implement common loss functions and regularizers like MSE, TV etc

Duplicate of #74, closing in favour of that one.


checksetup.m

check whether experiment spreadsheet is ordered by item first, and then by condition, otherwise stop and give an error. (particularly important for experiments with randomization, but could be implemented for all)
check whether all sound files listed in 'contextFile' are actually in folder '3_stimulus'

we're now testing whether soundfiles etc. actually exist (fixed a few months ago)


Blink LED based from URL command

I was wondering if I could code in a simple way to identify a until by sending a command to the board via URL. Maybe blink an LED? Anyone got a suggestion?
Example
http://<IP_ADDRESS>:8282/blink-10-sec

Was easier than I thought:
const int blinkpin = BUILTIN_LED;
server->on("/blink-2min",  {
Serial.println("Blink request received");
server->send(200, "text/plain", "blinking");
uint32_t period = 2 * 60000L;       // 2 minute
for( uint32_t tStart = millis();  (millis()-tStart) < period;  ){
digitalWrite(blinkpin, HIGH);
delay(50);
digitalWrite(blinkpin, LOW);
delay(50);
}
digitalWrite(blinkpin, HIGH);
});

Hi,
The url example in your first post I do understand, but how do I use the method you post in your last post?
I 'think' my unit does not sent any IR signals. It receives IR signals and the web interface shows that the IR signals are successfully sent, but it doesn't work


patch current issues + more refactor

This patch fixes the issue where fred would fails to read a debug because it was trying to compare game CLs when one was still a string... oopsie
I also made crash responses a dict so that, as embed fields, they could be easily configured to be inline or not, This also allows them to be double-asterisk splatted into Embed.add_field()
Getting pastebins now works again (I probably broke that earlier too) and both that and requests to Discord's CDN are handled asynchronously!
Enjoy!

Oh yeah and some non-important errors were handled properly, instead of raising a panic.


Remove additional Roll20 elements

The scrollbars should be hidden. Additionally, the player names/video should be removed on an opt-in basis.

Both the scrollbars and player names/video should be opt-in. Moving to v0.3.0.


Refactor view item test

Who is this for?
Maintenance
Relates to #10409
What is it doing for them?

Making the tests less flakey and faster
Testing more stuff on mobile (we we unnecessarily excluding mobile from some of the tests, now we're not)
Removed a couple of tests,which were unnecessary/covered by the others

Running the old file on my local machine against a built app:
Before mobile:

Before desktop:

After mobile:

After desktop:

I think we're good to kill playwright/test/helpers/safeWaitForNavigation.ts, which was the main flake-boi 🎉  if you wouldn't mind doing it as part of this PR?

I think we're good to kill playwright/test/helpers/safeWaitForNavigation.ts, which was the main flake-boi 🎉 if you wouldn't mind doing it as part of this PR?

Thanks, thought I'd done that


Getting the correct results, tests not passing, not sure why

Challenge Pig Latin has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
You can see in the screenshot that the word logged in the console is correct, but the tests aren't passing.

My code:
function translate(str) {
  var firstLetter = str.charAt(0);
  var secondLetter = str.charAt(1);
  if (str.charAt(0)==="a"||str.charAt(0)==="e"||str.charAt(0)==="i" || str.charAt(0)==="o"||str.charAt(0)==="u"){
    str += "way";
  }
  else if (str.charAt(1)==="a"||str.charAt(1)==="e"||str.charAt(1)==="i" || str.charAt(1)==="o"||str.charAt(1)==="u"){
    str = str.slice(1);
    str += firstLetter + "ay";
  }

  else {
    str = str.slice(2);
    str += firstLetter + secondLetter + "ay";
  }

  return str;
}

translate("paragraphs");

The name of your function is translate while the guide needs the function translatePigLatin. Change your function name and I think it will pass.

If you change your function name and function call from translate to translatePigLatin your code will pass. There was a batch of function name updates that occurred yesterday and you loaded the challenge seed before it happened causing this issue. We have some things in the works to prevent this from happening in the future. Thanks for posting.

Thanks!
On Thu, Apr 7, 2016 at 2:57 PM, Brian<EMAIL_ADDRESS>wrote:

Closed #7965 https://github.com/FreeCodeCamp/FreeCodeCamp/issues/7965.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/7965#event-619186617

Thanks!
On Thu, Apr 7, 2016 at 2:57 PM, rouje<EMAIL_ADDRESS>wrote:

The name of your function is translate while the guide needs the function
translatePigLatin. Change your function name and I think it will pass.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/7965#issuecomment-207106500


mercurial: 6.3.0 -> 6.3.1

This also disables a test failing with OpenSSL v3, and re-enables
another test that has been fixed.
Changelog: https://www.mercurial-scm.org/wiki/Release6.3

(my nixpkgs-review was happy for this, aarch64-linux)


Can't get sidebar working

Hello,
I'm having trouble with getting sidebar to work correctly. I'm trying to replicate the posts/docs categories I have at http://tech-notes.net and followed the instructions here

Added the test sidebar block to _data/navigation.yml
Added the following into the _config.yml

  - scope:
      path: ""
      type: docs
    values:
      sidebar:
        nav: "docs"

Result:
Nothing happens. Am I missing something?
Expected result:
See Test category with multiple test docs on the site homepage.
My stuff is available here
It can be ran in docker:
docker run --name jekyll-run --rm -v "${PWD}/public:/myblog/public" -v "${PWD}/minimal-mistakes/docs:/myblog" -p 4000:4000 -it ruby:2.5 /bin/bash -c "cd /myblog; bundle install; bundle exec jekyll serve"

I don't use Docker, but looking at the files in your /minimal-mistakes folder I believe you've edited the wrong _config.yml
The one in the root is for the files there. I'm guessing you're trying to build the content in /minimal-mistakes/docs, which has it's own _config.yml. This one looks untouched by you, so you'll want to migrate any changes you made here to minimal-mistakes/docs/_config.yml and build your Jekyll site from that folder instead.
In fact I would trash everything in /minimal-mistakes and move all the files in /docs up a level.

You'd also be better off using this repo as a starter. I think you may be getting confused as to what folders you should be placing your content and config in because you forked the theme repo (which has a lot of extra stuff you don't need... /docs site, /test site, etc.)

@mmistakes Thank you for the update. I'm pretty sure that docs folder has nothing to do with it. I've just removed it and nothing changed :)
I think docs is this one https://github.com/mmistakes/minimal-mistakes/tree/master/docs
As for docker I'm trying to run it locally with jekyll serve instead of building and pushing into pages. This trick works great with my other jekyll sites.
Let me check the mm-github-pages-starter.

It does matter because of how you have your content setup along with the _config.yml file. The config file you're making edits in is in a folder that has no content... while the /docs folder has the content.
Unless you haven't pushed up everything to that repo. I can only comment on what I saw there and the structure was off which is why the settings you're trying to apply aren't taking.

@mmistakes
Thank you for the advise. I could get it working at mm-github-pages-starter.


Batching - fix number of verts in translation

The translation to larger vertex formats was assuming that batches were rects, and not accounting that the num_commands had a different meaning for lines and polys, so the calculation for number of vertices to translate was incorrect in these cases.
Also prevents infinite loop if a single polygon has too many vertices to fit in the batch buffer.
Fixes #48109
Notes

Rather an embarrassing bug that makes you think 'how did this ever work???' :grin:
As a leftover from the first version of the batching, translating verts to larger FVFs was assuming they were all rects
When implementing the polys and lines I'd forgotten to change the code here because the batch stores the number of commands, NOT the number of verts, and the meaning of number of commands depends on the batch type. (I did actually try storing the number of verts instead but commands ended up being more efficient, I forget the details.)
This begs the question, how did it ever work - lines and polys must have been translating 2x and 4x as many verts as necessary. Luckily these were just extra buffer space in most cases, otherwise the crash seen in the issue would have occurred.
This should increase the efficiency of drawing lines and polys.

Infinite loop
While fixing the issue, there is one further problem - a single poly that has too many indices (rendered verts) for the batch buffer will never render, keeping deferring, and form an infinite loop. To prevent this a poly that is too 'large' is now simply not rendered, and a warning message is issued. This occurs somewhere around 2000 indices for the default batch buffer size, which should be enough in most cases - the user can increase batch buffer size in project settings if necessary.
The alternative would be to try and split the polygon into more than one, or to have some kind of other special case for this situation. It is something that would require a dedicated PR and I'm not sure at this stage whether it is necessary.
It may also be possible to partially draw the offending polygon in such a situation rather than simply not draw it at all. However not drawing it draws attention to the problem so it can be fixed by the user.

I'm pretty sure it should be fine, it's just good to let it stew for a day if we aren't in a hurry, as this will be for 3.3.1 now. Aside from the testing, sometimes an idea pops in my head of a better way of doing it etc.
For the super large polys, we could just revert to using the legacy renderer. But I'll leave that for a separate PR. The legacy renderer could on the other hand be vulnerable to a similar problem of overrunning the polygon buffer instead of the batching buffer ... :thinking:

Thanks!

Cherry-picked for 3.3.1.


chore(*): Bumps bindle to use the 2021 edition

We've been tracking and using most of the latest features anyway, so
this seems to make sense

NOTE: This cannot be merged until Github actions updates to 1.56

We could manually rustup install and default to 1.56 in the meantime, if we wanted to.

Yeah, we could use actions-rs to install the right version

@radu-matei This is ready for re-review. The cargo deny stuff is handled in another PR


Resort the tiles so that related tiles are together

All the "time to first frame" tiles should be together (startup perf).
Scroll perf and transitions should be together.
The hot reload and analysis time tiles should be together (dev experience).

Closing as obsolete. The performance dashboard was deprecated in favor of skia perf.


Use ActionView::Base's on_load hook for monkey-patching

Currently, when this gems was bundled to an app, bundler requires lib/active_link_to/active_link_to.rb, then it immediately loads ActionView::Base at the bottom of the file. Hence, the application always loads the whole Action View library and all of its related gems even when not actually using any of view components (e.g. running rails r, running test/models/*, etc.)
The attached patch improves this situation by using Action View's handy hook for monkey-patchers, which enables us to postpone the monkey-patch loading until someone actually requires AV/base.

Interesting. Learned something today. Thanks!


http: eagerly sending 200 headers for CONNECT termination

Changing CONNECT termination to eagerly send synthesized 200 headers as soon
as a TCP connection to the upstream is established.
Risk Level: Low (only affects connect)
Testing: tweaked unit tests, integration tests.
Docs Changes: no
Release Notes: no
[Optional Runtime guard:] not guarded: CONNECT support in Alpha
Part of #1451

LGTM: It make more sense for the client first protocol. Even better we can remove send_headers_


defined acts_as_tokenizable as a railtie

Coverage decreased (-2.08%) to 82.836% when pulling e1fa80a8320c13221ce0904f37cc49b1d5903a88 on railtie into 9aa94ce2e1f5c545b8fbe54e3d6e3b112fccd92d on master.

Coverage increased (+4.7%) to 89.63% when pulling 9d1e2708d7ee16818a1170738998de14860ae2f5 on railtie into 9aa94ce2e1f5c545b8fbe54e3d6e3b112fccd92d on master.


Sync published with master

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Deploy preview for docsdocker ready!
Built with commit 1e70f827e9ed2beb1cb6b63e4089ff433b165dac
https://deploy-preview-8823--docsdocker.netlify.com


Add ( and ) in urlencoded safe characters

See https://github.com/idan/oauthlib/issues/384

Thanks!


how upload subtitles?

is posible upload button for subtitles or add subtitles from link?

Please visit the jwplayer site for more information on how to add subtitles.


GT06N Device Status Always online even vechile igintion is turned off

Hi,
We are trying integrate GT06N device, we found device status does not turn to OFFLINE, Even though ignition state changed to NO
is it configurable to show the device status as OFFLINE, when ignition status is NO
Thanks for your help

Offline status indicates connection status. It has nothing to do with ignition.
It would require code modifications to use ignition for status. Send me an email if you need help with implementing it.

Thanks for your quick response.


Readme: make code samples 1:1 copy/paste'able

This is by design to keep them short. Snippets do not contain strict types either.


Failing to fmt for official example

https://github.com/kachick/dprint-plugin-kdl/pull/8
Error formatting /home/kachick/repos/github.com/kachick/dprint-plugin-kdl/example/official.expected.kdl. Message: Formatting succeeded initially, but failed when ensuring a stable format. This is most likely a bug in the plugin where the text it produces is not syntatically correct. Please report this as a bug to the plugin that formatted this file.

Expected valid node terminator.
Had 1 error formatting.

Might be fixed in https://github.com/kdl-org/kdl-rs/issues/77

After https://github.com/kachick/dprint-plugin-kdl/pull/83, it is reversible now. So I removed the known issue files even if layout is not ideal state.


Added support for event duration

I created a field "time_end" to support events duration.
Instead of creating a new migration file to include that field, I added it to the original migrations/create_schedules.rb

There was a bug with different time zones to calculate the duration. Fixed now.

Many thanks for contributing a valuable feature. I'll try to get into it and merge into master as soon as possible.


Block all requests to avoind service not found

I want to block all requests to avoid the error messages service not found.
I just wanna publish the specific route that I do aliases.
How I can do this in moleculer-web?

I'll close this issue, read more carefully the documentation I found this settings param:
mappingPolicy: "restrict"
This solve my case.


.into()

Modifies dcspkg to provide almost all of its internal structures and functions as a library.

Looks good on a code level to me. Few comments w.r.t. api/library design though:

The modules shouldn't be pub mod, we don't want to export everything in the crate
I don't like the idea of exposing the DcspkgConfig struct in the public API. lib.rs should pub use any functions from commands that it wishes to re-export.

To this end, commands::run should probably be re-written to take the parameters separately instead of the struct
cli.rs should be part of the binary crate, not the lib
Your public API should be documented with doc comments. Run cargo doc --open to browse the API and see what's exported.

Oh, and run cargo fmt, not sure why the CI hasn't run 🤔

Side note: I cannot figure out how to fix the unused code warnings. If I make them un-public, other files can't find them.

Side note: I cannot figure out how to fix the unused code warnings. If I make them un-public, other files can't find them.

That's because util is a subodule of both the bin and lib crate. Make it a submod of the the lib and then import dcspkg::util in the bin crate root.

Fantastic, tysm for this


StartScanning returns error value of true

@sandeepmistry - is there a better way to tell what's going on when I get errors from startScanning?
I need to continually check for BLE devices with my app, so I run the following:
noble.on('scanStop', function(state){
    log.debug("Detected bluetooth scan stop - scanning again")
    noble.startScanning(Constants.SERVICE_UUIDS, false, (err) => {
        if (err) {
            log.error("startScanning error [2]: " + err);
        }
    });
});

Fairly regularly, this code returns an error, meaning I see

startScanning error [2]: true

In my console at runtime.  I'd love to know what's going wrong, so I can work around it.

This should be fixed by https://github.com/sandeepmistry/noble/pull/530 which @MarSoft submitted.
Could you please try again with the master version of noble and let us know?

@sandeepmistry @MarSoft just like that, no more errors! Will this make its way into a release soon?

ping @sandeepmistry - any idea when you'll push a release?

@mbifulco v1.8.0 was just published to npm.


[docs]: malformed slot jsdoc

Every @slot JSDoc tag must contain a - hyphen character, which separates between the slot name and the description. In the case of the default (aka anonymous) slot, the hyphen must come after the @slot tag. Whitespace is not important, as long as there's at least one space on either side of the -
 1 elements/rh-tag/rh-tag.ts:21 col 2: * @slot icon
 2 elements/rh-tag/rh-tag.ts:24 col 2: * @slot
 3 elements/rh-card/rh-card.ts:13 col 2: * @slot        header
 4 elements/rh-card/rh-card.ts:16 col 2: * @slot        Any content that is not designated for the header or footer slot, will go to this slot.
 5 elements/rh-card/rh-card.ts:17 col 2: * @slot        footer
 6 elements/rh-cta/rh-cta.ts:43 col 2: * @slot
 7 elements/rh-footer/rh-footer-universal.ts:18 col 2: * @slot    logo
 8 elements/rh-footer/rh-footer-universal.ts:20 col 2: * @slot    logo-image
 9 elements/rh-footer/rh-footer-universal.ts:22 col 2: * @slot    primary
10 elements/rh-footer/rh-footer-universal.ts:24 col 2: * @slot    primary-start
11 elements/rh-footer/rh-footer-universal.ts:26 col 2: * @slot    primary-end
12 elements/rh-footer/rh-footer-universal.ts:28 col 2: * @slot    secondary
13 elements/rh-footer/rh-footer-universal.ts:30 col 2: * @slot    secondary-start
14 elements/rh-footer/rh-footer-universal.ts:32 col 2: * @slot    secondary-end
15 elements/rh-footer/rh-footer-universal.ts:34 col 2: * @slot    links-primary
16 elements/rh-footer/rh-footer-universal.ts:36 col 2: * @slot    links-secondary
17 elements/rh-footer/rh-footer-universal.ts:38 col 2: * @slot    tertiary
18 elements/rh-accordion/rh-accordion.ts:52 col 2: * @slot
19 elements/rh-accordion/rh-accordion-header.ts:44 col 2: * @slot
20 elements/rh-accordion/rh-accordion-header.ts:46 col 2: * @slot accents
21 elements/rh-accordion/rh-accordion-panel.ts:17 col 2: * @slot

GOOD:
/**
 * @slot - only put `<marquee>` elements in this puppy
 * @slot glovesbox - lose coupons here
 */

BAD:
/**
 * @slot Anything but `<marquee>` elements here fails
 * @slot glovesbox - lose coupons here
 */

In this bad case, the manifest will list a slot named Anything with the description "but <marquee> elements here fails"

note that this fix should come with a patch changeset because it fixes the custom-elements.json

89f6aa6 closes


The "Connections" page does not connections of "All Nodes"

Expected behavior
All connections of the cluster are shown when "All Nodes" is selected on the "Connections" page.
In my example I expect all three connections shown.
Actual behavior
Only the connections of one machine are shown when "All Nodes" is selected. Selecting each node individually shows the correct connections per node.
In my example only one connection is shown, even though three exist.
You can see what I mean in this screencast:

EMQ version
v.3.1.0
Docker version
Which docker-engine version?
Docker version 19.03.0-beta4, build e4666ebe81

System
Running three nodes locally using docker-compose. They connect to each other successfully and pubsub works as expected (also for shared subscriptions).
Hardware
My laptop (8 cores, 16G RAM)
If this is intended behavior, I would be grateful for an explanation. Thanks!

Sorry. Wrong repo, I'll post this to the emqx repo.


Large files won't stream without chunked encoding

LOG FILE
[2017-02-26 13:43:25:239] Error|NancyHost.GotCallback => NancyHost.Process => <>c.<StartNancyHost>b__154_0 System.IO.IOException: Stream was too long.
   at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.InternalCopyTo(Stream destination, Int32 bufferSize)
   at System.IO.Stream.CopyTo(Stream destination)
   at Nancy.Responses.StreamResponse.<>c__DisplayClass1.<GetResponseBodyDelegate>b__0(Stream stream)
   at Nancy.Hosting.Self.NancyHost.OutputWithContentLength(Response nancyResponse, HttpListenerResponse response)
   at Nancy.Hosting.Self.NancyHost.ConvertNancyResponseToResponse(Response nancyResponse, HttpListenerResponse response)
   at Nancy.Hosting.Self.NancyHost.Process(HttpListenerContext ctx)

Description
Disabling chunked encoding causes streams to be converted to a memory stream and fully loaded before sending. This is slow, and causes a 'stream was too long' IOException when a file is too large for the RAM.
Code Responsible
In NancyHost.cs:357 on both master and 1.x branches:
        private static void OutputWithContentLength(Response nancyResponse, HttpListenerResponse response)
        {
            byte[] buffer;
            using (var memoryStream = new MemoryStream())
            {
                nancyResponse.Contents.Invoke(memoryStream);
                buffer = memoryStream.ToArray();
            }

            var contentLength = (nancyResponse.Headers.ContainsKey("Content-Length")) ?
                Convert.ToInt64(nancyResponse.Headers["Content-Length"]) :
                buffer.Length;

            response.SendChunked = false;
            response.ContentLength64 = contentLength;

            using (var output = response.OutputStream)
            {
                using (var writer = new BinaryWriter(output))
                {
                    writer.Write(buffer);
                    writer.Flush();
                }
            }
        }

@maxpiva, I didn't check the issue reporting guidelines for nancy, but most of the work is done here.

Thanks @da3dsoul Great description, That will help on my English issues

##Proposed Changes
private static void OutputWithContentLength(Response nancyResponse, HttpListenerResponse response)
        {
            response.SendChunked = false;
            long contentLength = 0;
            if (nancyResponse.Headers.ContainsKey("Content-Length"))
            {
                contentLength = Convert.ToInt64(nancyResponse.Headers["Content-Length"]);
                if (contentLength > 0)
                {
                    response.ContentLength64 = contentLength;
                    using (var output = response.OutputStream)
                    {
                        nancyResponse.Contents.Invoke(output);
                    }
                }
                return;
            }
            byte[] buffer;
            using (var memoryStream = new MemoryStream())
            {
                nancyResponse.Contents.Invoke(memoryStream);
                buffer = memoryStream.ToArray();
            }

            contentLength = buffer.Length;
            response.ContentLength64 = contentLength;

            using (var output = response.OutputStream)
            {
                using (var writer = new BinaryWriter(output))
                {
                    writer.Write(buffer);
                    writer.Flush();
                }
            }
        }


Add DataTable component

What is the context of this PR?
This is part of a wider piece of work to capture 'Survey Data'.  The UI will require a Data Table which this PR implements.
How to review

Run Tests
View Storybook

 Survey Data - Datatable


Appointment details

What is the problem?
We have several kinds of appointment details screens accessible via the app. Currently, these cover GP appointments and hospital appointments, but will soon be extended to mental health appointments. Some of these are fully within the app, while others are accessed via a third-party system.
The questions are:

should we have a standardised pattern?
is that possible?

Examples:


Add assertion to build.gradle

Codecov Report

Merging #89 (e5b72e1) into master (ad77c42) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #89   +/-   ##
=========================================
  Coverage     74.35%   74.35%
  Complexity      483      483
=========================================
  Files            81       81
  Lines          1427     1427
  Branches        162      162
=========================================
  Hits           1061     1061
  Misses          320      320
  Partials         46       46

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 ad77c42...e5b72e1. Read the comment docs.


Fix steering issue

Fixes #393 (MoveTank on_for_rotations method problem).

Is this confirmed to fix the problem? The motor drivers will ignore the speed as per the note on this page:

Note: Using a negative value for position_sp will cause the motor to rotate in the opposite direction. The sign of speed_sp is ignored like in run-to-abs-pos command.

In other words, we need to invert rotations rather than speed.
In regards to the sample from https://github.com/rhempel/ev3dev-lang-python/issues/393, is that the correct calling convention? I don't think we have individual parameters for the two sides' speeds for that function. I think the expected call would use the steering parameter instead (which does exist), in which case the correct distances will be calculated with the sign maintained as needed.

There appears to be individual parameters for the MoveTank on_for_rotations method but not the MoveSteering on_for_rotations method. I believe it is the correct calling convention because I read it directly from the develop branch code.
Yes, I tested this on my own EV3 and it fixed the problem.
I noticed the issue when I tried this code:
move_steer = ev3.MoveSteering('outB', 'outC')

# Move robot in a square path
for i in range(4):
    # Move robot forward for 4 seconds
    move_steer.on_for_seconds(steering=0, speed_pct=50, seconds=3)
    # Turn robot left 90 degrees (adjust rotations for your particular robot)
    move_steer.on_for_rotations(steering=-100, speed_pct=5, rotations=1.35)

Then I tried the code below to confirm the issue:
tank = ev3.MoveTank('outB', 'outC')

tank.on_for_rotations(left_speed_pct=5, right_speed_pct=-5, rotations=1.35)

After making the change proposed in my pull request, both scripts worked fine. That is, the robot turned 90 degrees as expected. Apologies if I have misinterpreted how it is meant to work.

Side-note: @dwalton76 Why do we use the absolute run command with a manually-added relative position instead of just using the relative run mode? Did that make implementation of something else easier?

#391 is now in, @gregcowell can you resolve the conflicts, basically just make the same change but to motor.py instead

Why do we use the absolute run command with a manually-added relative position instead of just using the relative run mode? Did that make implementation of something else easier?

We could have done it either way, I tend to work with absolute positions out of habit so did it that way.

It took me a minute to wrap my head around how it was breaking, we were getting burned by a double negative (speed and rotations).  Fix looks good.

@dwalton yeah, the negative was introduced twice and as a result both motors have the same sign. But shouldn't the sign of the speed be ignored by the motor drivers? If we're now taking the absolute value of the rotation distance, where is the sign being reintroduced?

This output is without the fix in place, this is for a tank.on_for_rotations(-100, 20, 2) call
get_speed_steering() shows the following, looks good
2017-10-04 12:50:36,154 DEBUG: MoveSteering: steering -100, LargeMotor(outA) speed -20, LargeMotor(outC) speed 20

MoveTank.on_for_rotations() has
1538     def on_for_rotations(self, left_speed_pct, right_speed_pct, rotations, brake=True, block=True):
1539         """
1540         Rotate the motor at 'left_speed & right_speed' for 'rotations'
1541         """
1542         assert rotations >= 0, "rotations is %s, must be >= 0" % rotations
1543         self._validate_speed_pct(left_speed_pct, right_speed_pct)
1544         left_speed = int((left_speed_pct * self.max_speed) / 100)
1545         right_speed = int((right_speed_pct * self.max_speed) / 100)
1546
1547         if left_speed > right_speed:
1548             left_rotations = rotations
1549             right_rotations = float(right_speed / left_speed) * rotations
1550         else:
1551             left_rotations = float(left_speed / right_speed) * rotations
1552             right_rotations = rotations
1553
1554         log.debug("%s: left_speed_pct %s, right_speed_pct %s, rotations %s" % (self, left_speed_pct, right_speed_pct, rotations))
1555         log.debug("%s: %s speed %s rotations %s, %s speed %s rotations %s" % (self, self.left_motor, left_speed, left_rotations, self.right_motor, right_speed, right_rotations))

and debugs show
2017-10-04 12:50:36,158 DEBUG: MoveSteering: left_speed_pct -20, right_speed_pct 20, rotations 2
2017-10-04 12:50:36,161 DEBUG: MoveSteering: LargeMotor(outA) speed -210 rotations -2.0, LargeMotor(outC) speed 210 rotations 2

so we determine left_speed and right_speed one of which is negative so then when we calculate left_rotations and right_rotations one of those will also end up negative and we are in the double negative scenario.

But shouldn't the sign of the speed be ignored by the motor drivers

na they will treat a negative speed as rotate in reverse

BTW we really need to enable logging, it makes troubleshooting so much easier

BTW we really need to enable logging, it makes troubleshooting so much easier

I don't mind if whether to log or not is configurable (and off by default). Otherwise logs tend to eat up disk space.

If the user program importing the libraries doesn't enable logging then the log calls don't use any disk space.  If the user program does enable logging then whether or not it uses disk space depends on where the user tells python to write the logs, default is to print them to STDOUT.

na they will treat a negative speed as rotate in reverse

This is contrary to the info I quoted above from the motor docs. @dlech has this behavior changed in Stretch?

Hmm yeah I see what you mean about the docs.  It certainly seems to honor positive vs negative speed in terms of which direction the motor rotates.

This is contrary to the info I quoted above from the motor docs. @dlech has this behavior changed in Stretch?

Currently the run-to-*-pos commands should ignore the sign of the speed_sp - although I am considering changing this in stretch (just had a similar conversation in ev3go a week ago).

It certainly seems to honor positive vs negative speed in terms of which direction the motor rotates.

I was wrong there, more debugging shows the negative sign from the speed was used to create a negative position_sp for one motor and positive for the other
robot@evb[ev3dev-lang-python]# ~/bin/tank.py
2017-10-04 21:32:13,515 DEBUG motor.py: 1695 -        get_speed_steering(): MoveSteering: steering -100, LargeMotor(outA) speed -20, LargeMotor(outC) speed 20
2017-10-04 21:32:13,518 DEBUG motor.py: 1570 -          on_for_rotations(): MoveSteering: left_speed_pct -20, right_speed_pct 20, rotations 2
2017-10-04 21:32:13,522 DEBUG motor.py: 1571 -          on_for_rotations(): MoveSteering: LargeMotor(outA) speed -210 rotations 2.0, LargeMotor(outC) speed 210 rotations 2
2017-10-04 21:32:13,527 DEBUG motor.py:  750 -   _set_position_rotations(): LargeMotor(outA): current position 0, rotations 2.0, count-per-rot 360, final position -720
2017-10-04 21:32:13,534 DEBUG motor.py:  750 -   _set_position_rotations(): LargeMotor(outC): current position 0, rotations 2, count-per-rot 360, final position 720
robot@evb[ev3dev-lang-python]#

OK, I understand what's going on. Inversion is now only done here.


Early Feedback Loops

Motivation
In order to raise our confidence in the stability of our observability platform and be sure that our ongoing work and releases won't negatively impact our observability platform operations we need to create extensive tests giving us early feedback loops. These tests should also be as convenient as possible thus automated. Tinkerers already have created some test setup we can reuse here. The goal is an Automated Tests Suite of the Observability Platform.
### Test Suite Stories
- [ ] https://github.com/giantswarm/roadmap/issues/2008
- [ ] https://github.com/giantswarm/roadmap/issues/3578
- [ ] https://github.com/giantswarm/roadmap/issues/3612
- [ ] https://github.com/giantswarm/roadmap/issues/3611
- [ ] https://github.com/giantswarm/roadmap/issues/3614
- [ ] https://github.com/giantswarm/roadmap/issues/3615
- [ ] https://github.com/giantswarm/roadmap/issues/3616
- [ ] https://github.com/giantswarm/roadmap/issues/3617

### Other Improvements
- [ ] https://github.com/giantswarm/giantswarm/issues/22235
- [ ] https://github.com/giantswarm/giantswarm/issues/26737
- [ ] https://github.com/giantswarm/giantswarm/issues/29756

Outcome

We have a extensive test suite for our observability platform giving us automatic early feedback for the impact of our ongoing work

@Rotfuks 1 Epic done


⚠ api.piste.gouv.fr healthcheck has degraded performance

In 5b194d4, api.piste.gouv.fr healthcheck (https://api.piste.gouv.fr/cassation/judilibre/v1.0/healthcheck) experienced degraded performance:

HTTP code: 200
Response time: 4928 ms

Resolved: api.piste.gouv.fr healthcheck performance has improved in e3346e8.


Remove deprecated no-suggest option

See https://getcomposer.org/upgrade/UPGRADE-2.0.md:
Deprecated --no-suggest flag as it is not needed anymore

Thanks!


Prepare for publish

@rultor release, tag=0.1

@rultor release, tag=0.1

@g4s8 OK, I will release it now. Please check the progress here

@rultor release, tag=0.1

@g4s8 Done! FYI, the full log is here (took me 3min)