Documentation

Hi Daniel,
Link with this text before it is broken:
Read more about defining models.
Questions:
What is the background for creating this lib and even with support for many databases? You are using it at your work?
There is prisma, how is it compares, why create something similar?

Is it possible to do nested creates and updates?

Hi Pavel. Thanks for pointing that out!
The docs will get a complete overhaul once I've wrapped up all the features I have slated for a beta release. I'm hoping to add a FAQ section that will help outline the differences between this and similar tools. In the meantime, to answer your questions:

Sqlmancer is not currently being used in production, but was created with the intent to utilize it as part of several projects I am currently a part of. While there are a number of great tools out there already (Hasura, PostGraphile, Prisma, etc.), none of them offered all the features I was looking for in a solution.
This project is indeed similar to Prisma, at least in that it generates a database client for you to use. The main differences are:

Prisma abandoned schema binding, meaning there's no way to write a SDL schema, use their client inside your resolvers and have it infer the SQL from the request. The only way to bind your schema to your models like that now is to use Nexus to create your schema, which is a code-first library. Sqlmancer, on the other hand, is able to parse the GraphQLResolveInfo object passed to the resolver to determine what data needs to be fetched. This makes writing resolvers even for arbitrarily complex queries super simple.
On top of the schema binding described above, which was possible in Prisma 1, Sqlmancer also lets you modify the options set by parsing the GraphQLResolveInfo object. So you can add additional qualifiers to your query based on, for example, the context. So instead of just having a posts field, you can have a myPosts field that returns only the logged-in user's posts, all with minimal effort.
Sqlmancer supports long-running transactions. You can initialize a transaction and perform any number of read or write queries inside it. Prisma doesn't support this feature, which is why it has nested creates and updates -- it's the only way to utilize transactions with Prisma.
Sqlmancer provides significantly more robust querying, filtering and aggregation capabilities than Prisma. You can, for example, filter and sort by related model properties and aggregated values of those properties. Prisma only supports count aggregation while Sqlmancer will include other common aggregate functions by the time it hits beta.
Sqlmancer lets you define "virtual fields" that depend on one or more columns.
Sqlmancer includes support for abstract types like unions and interfaces.
Sqlmancer includes support for using views instead of tables. By the time it hits beta, it will also support creating explicitly "read-only" models that either utilize views defined in your database or utilize CTEs for generating views on the fly.
Sqlmancer uses decorators to describe your data models inside your type definitions, while Prisma requires a separate model definitions file.
Prisma is a database client first, with some GraphQL integration through Nexus. Sqlmancer is a tool to "teach" your GraphQL service how to integrate with your database. Sqlmancer could accomplish this without generating a database client (all the information it needs is in your type definitions after all), but it does so to empower you to decouple your business logic from your resolvers.

A lot of the differences outlined above also apply to other existing tools. And while Hasura and PostGraphile actually include most of the features missing from Prisma, their usage is limited to Postgres only. I wanted to create a free, open-source library that supported a wide variety of SQL dialects so that it could be used with existing applications as well as new ones.
If you have any other questions or feedback, please let me know :)

Thank you! It is very cool! I hope it will be success. This ecosystem need these end to end integration.
I will ask hard questions 😉 . It is like these HR questions - to tell in what you are bad.

I understand. Indeed prisma currently is code first only through nexus. And you listed it's missing features. But what are it's advantages? In what they so much invest with a big team and at the same time missing these features.
Prisma can infer schema from db and has the experimental migrations. So eventually will be single source of truth - code first scheme. Hasura also does migrations and the scheme is built on the db through it's interface.
In this case migrations are taken care outside of the lib or with knex. And actually there are two source of truth - the Graphql model with db models and db scheme itself.

The main advantage I see to Prisma's approach is that it abstracts away the complexity of working with SQL. And while I understand that point of view, that additional level of abstraction makes it more difficult to handle more complex use cases. It's like using an ORM versus writing raw SQL. An ORM makes things simpler and enables you to write application code without a deep understanding of SQL. But we often find that the ORM we're using either doesn't support something we could easily do with raw SQL or else requires some additional workaround to make it work. Neither approach is inherently bad and you have to choose what's right for your application.
You're absolutely right that existing solutions enable you to have a "single source of truth". And it's certainly possible to eventually add a CLI utility that would let you do migrations based on the generated Sqlmancer models -- I think something like that would be great DX for scaffolding projects or putting together a POC.
However, I think because there's a single source of truth, the existing solutions also encourage a one-to-one mapping between your database tables and your GraphQL types. On the other hand, with Sqlmancer's approach, we can have a set of tables that persist the data in an optimized way while potentially utilizing views  (inline or otherwise) to generate data that's the right shape for the clients querying the GraphQL service. In this sense, Sqlmancer allows your GraphQL schema to be at least somewhat decoupled from the underlying database schema.

Closing this since the question has been answered. Should add some of the above discussion to the docs when a FAQ section is added, though.


With docker: resume training fails with: "File exists: '.../decoder'

./mmt create --resume en chr corpus/ --count-threshold 0 --voc-size 65536

=========== TRAINING STARTED ===========

ENGINE:   default
LANGUAGE: en > chr

WARNING: No GPU for Neural engine training, the process will take very long time to complete.

(1/4) Cleaning corpora
(1/4) Cleaning corpora SKIPPED
(2/4) Creating engine

ERROR Unexpected exception: [Errno 17] File exists: '/opt/mmt/engines/default/models/decoder'

@magali-joine
in the current version, we support only ISO-639-1 (two-letters) for the  the language codes.
Do you really intend to use the code for Cherokee (chr)?
If so, you can use an artificial non existing code, like "xx" instead of "chr" (Cherokee).
Remember to properly change the suffix of your training files, and the language code inside the tmx if you are exploiting that format type.
We are working just now to extend the support to ISO-639-2 (three-letters).
Stay tuned to know when this enhancement will be ready!
When the extension to ISO-639-2 will be deployed, you will not lose your trained system. You will just need few simple changes in your model setting.

Thanks. Will test. (Only have CPU for modelling... so not exactly fast here).
BTW: What is a good "loss" number to expect at least partially correct results?

Does the following seem as a valid work around for the cross device link issue?
#!/bin/bash

SRC="en"
TGT="xx"

cd "$(dirname "$0")"

BASE="$(pwd)"

DATA="$BASE/corpus.${SRC}_${TGT}"
ENGINE="$BASE/engine.${SRC}_${TGT}"

if [ ! -d "$DATA" ]; then mkdir -p "$DATA"; fi
if [ ! -d "$ENGINE" ]; then mkdir -p "$ENGINE"; fi

echo "DATA: $DATA"
echo "ENGINE: $ENGINE"

echo "#!/bin/bash" > "$ENGINE/train-engine.sh"
echo "cd /opt/mmt" >> "$ENGINE/train-engine.sh"
echo "if [ ! -d engines/runtime.${SRC}_${TGT} ]; then mkdir engines/runtime.${SRC}_${TGT}; fi" >> "$ENGINE/train-engine.sh"
echo "if [ -d runtime ]; then rmdir runtime; fi" >> "$ENGINE/train-engine.sh"
echo "ln -sf engines/runtime.${SRC}_${TGT} runtime" >> "$ENGINE/train-engine.sh"
echo "./mmt create --voc-size 65536 --count-threshold 0 en xx corpus" >> "$ENGINE/train-engine.sh"
echo "/bin/bash" >> "$ENGINE/train-engine.sh"

chmod +x  "$ENGINE/train-engine.sh"

#
docker run -it \
    --mount type=bind,src="$ENGINE",target="/opt/mmt/engines" \
    --mount type=bind,src="$DATA",target="/opt/mmt/corpus" \
    modernmt/master "/opt/mmt/engines/train-engine.sh" #bash #

which generates the file:
#!/bin/bash
cd /opt/mmt
if [ ! -d engines/runtime.en_xx ]; then mkdir engines/runtime.en_xx; fi
if [ -d runtime ]; then rmdir runtime; fi
ln -sf engines/runtime.en_xx runtime
./mmt create --voc-size 65536 --count-threshold 0 en xx corpus
/bin/bash

@magali-joine
very hard to say
because it depends on several aspects:

amount and variability of training data
language difficulty
distance between source and target languages,
etc.

You can monitor the plot of the loss (and other metrics) using tensorboard.
Start the tensorboards server as follows:
tensorboard --logdir /opt/mmt/runtime/default/tmp/training/_temp_train/tensorboard_logdir/

and then connect to the server from a browser at this assuming the server is running on the localhost
address http://<IP_ADDRESS>:6006

When the loss curve is "flat" enough, you could try start evaluation.

After changing to 'xx' instead of 'chr', the training resume still fails with the 'decoder' file exists error.
muksihs@Precision-Workstation:~/modern-mt$ ./train-en-chr.sh
DATA: /home/muksihs/modern-mt/corpus.en_xx
ENGINE: /home/muksihs/modern-mt/engine.en_xx

=========== TRAINING STARTED ===========

ENGINE:   default
LANGUAGE: en > xx

WARNING: No GPU for Neural engine training, the process will take very long time to complete.

(1/4) Cleaning corpora
    (1/6) Cleaning corpora...                                    DONE in 6s
    (2/6) De-duplicate corpora...                                DONE in 1s
    (3/6) Preprocess corpora...                                  DONE in 5s
    (4/6) Creating aligner filter...                             DONE in 16s
    (5/6) Scoring corpora...                                     DONE in 3s
    (6/6) Apply aligner-based filter...                          DONE in 0s
(1/4) Cleaning corpora DONE in 32s
(2/4) Creating engine
(2/4) Creating engine DONE in 0s
(3/4) Generating binary archives
    (1/4) Tokenize corpora...                                    DONE in 5s
    (2/4) Training BPE model...                                  DONE in 1m 46s
    (3/4) Encoding training corpora...                           DONE in 2s
    (4/4) Generating binary data...                              DONE in 9s
(3/4) Generating binary archives DONE in 2m 3s
(4/4) Training neural model
    (1/2) Train neural network...                                ^CDONE in 11h 13m 10s
    (2/2) Averaging checkpoints...                               DONE in 1s
(4/4) Training neural model DONE in 11h 13m 12s

=========== TRAINING SUCCESS ===========

You can now start, stop or check the status of the server with command:
        ./mmt start|stop|status

root@d03719e23e7a:/opt/mmt# ./mmt create --resume --voc-size 65536 --count-threshold 0 en xx corpus

=========== TRAINING STARTED ===========

ENGINE:   default
LANGUAGE: en > xx

WARNING: No GPU for Neural engine training, the process will take very long time to complete.

(1/4) Cleaning corpora
    (1/6) Cleaning corpora...                                    DONE in 6s
    (2/6) De-duplicate corpora...                                DONE in 1s
    (3/6) Preprocess corpora...                                  DONE in 5s
    (4/6) Creating aligner filter...                             DONE in 15s
    (5/6) Scoring corpora...                                     DONE in 2s
    (6/6) Apply aligner-based filter...                          DONE in 0s
(1/4) Cleaning corpora DONE in 31s
(2/4) Creating engine

ERROR Unexpected exception: [Errno 17] File exists: '/opt/mmt/engines/default/models/decoder'

@magali-joine
I cannot replicate this problem
Problem a previous incomplete training leaves some unexpected wrong files.
Which is the content of '/opt/mmt/engines/default/models/decoder' and its subdirectories?
Which version of ModernMT are you using?
Could you please:

remove the model and runtime directories of you engine

/opt/mmt/engines/default/
/opt/mmt/runtime/default/

run the following   command

./mmt create --resume --voc-size 65536 --count-threshold 0 en xx corpus --debug

and in case of error, please report the content of log in
/opt/mmt/runtime/default/logs/training.log

File listing:
muksihs@Precision-Workstation:~/modern-mt/engine.en_xx/default$ tree
.
├── engine.xconf
├── models
│   └── decoder
│       ├── en__xx
│       │   ├── model.pt
│       │   └── model.vcb
│       └── model.conf
└── test_data
    └── en__xx
        ├── ced.en
        ├── ced.xx
        ├── corpus-genesis-asv.en
        ├── corpus-genesis-asv.xx
        ├── corpus-genesis-bbe.en
        ├── corpus-genesis-bbe.xx
        ├── corpus-genesis-dar.en
        ├── corpus-genesis-dar.xx
        ├── corpus-genesis-wbt.en
        ├── corpus-genesis-wbt.xx
        ├── corpus-genesis-web.en
        ├── corpus-genesis-web.xx
        ├── corpus-genesis-ylt.en
        ├── corpus-genesis-ylt.xx
        ├── corpus-nt-asv.en
        ├── corpus-nt-asv.xx
        ├── corpus-nt-bbe.en
        ├── corpus-nt-bbe.xx
        ├── corpus-nt-dar.en
        ├── corpus-nt-dar.xx
        ├── corpus-nt-wbt.en
        ├── corpus-nt-wbt.xx
        ├── corpus-nt-web.en
        ├── corpus-nt-web.xx
        ├── corpus-nt-ylt.en
        ├── corpus-nt-ylt.xx
        ├── corpus-synthetic.en
        ├── corpus-synthetic.xx
        ├── foxy-fagan.en
        ├── foxy-fagan.xx
        ├── jitaga-usdi.en
        ├── jitaga-usdi.xx
        ├── phoenix.en
        ├── phoenix.xx
        ├── three-kittens.en
        └── three-kittens.xx

5 directories, 40 files

mmt version

docker image "modernmt/master"

verbose rm of /opt/mmt/engines/default/ /opt/mmt/runtime/default/
root@0f70a0e60dd2:/opt/mmt# rm -rfv /opt/mmt/engines/default/ /opt/mmt/runtime/default/
removed '/opt/mmt/engines/default/engine.xconf'
removed '/opt/mmt/engines/default/test_data/en__xx/foxy-fagan.en'
removed '/opt/mmt/engines/default/test_data/en__xx/corpus-genesis-bbe.en'
removed '/opt/mmt/engines/default/test_data/en__xx/corpus-genesis-web.xx'
removed '/opt/mmt/engines/default/test_data/en__xx/corpus-nt-bbe.en'
...
removed '/opt/mmt/runtime/default/tmp/training/corpora_clean/corpus-genesis-web.en'
removed directory '/opt/mmt/runtime/default/tmp/training/corpora_clean'
removed '/opt/mmt/runtime/default/tmp/training/state.json'
removed directory '/opt/mmt/runtime/default/tmp/training'
removed directory '/opt/mmt/runtime/default/tmp'
removed directory '/opt/mmt/runtime/default/'

training with --debug results
muksihs@Precision-Workstation:~/modern-mt$ ./train-en-chr.sh
DATA: /home/muksihs/modern-mt/corpus.en_xx
ENGINE: /home/muksihs/modern-mt/engine.en_xx

=========== TRAINING STARTED ===========

ENGINE:   default
LANGUAGE: en > xx

WARNING: No GPU for Neural engine training, the process will take very long time to complete.

(1/4) Cleaning corpora
    (1/6) Cleaning corpora...                                    DONE in 9s
    (2/6) De-duplicate corpora...                                DONE in 1s
    (3/6) Preprocess corpora...                                  DONE in 9s
    (4/6) Creating aligner filter...                             DONE in 29s
    (5/6) Scoring corpora...                                     DONE in 5s
    (6/6) Apply aligner-based filter...                          DONE in 0s
(1/4) Cleaning corpora DONE in 56s
(2/4) Creating engine

ERROR Unexpected exception: [Errno 2] No such file or directory: '/opt/mmt/engines/default/engine.xconf'
root@98d7ef324aa7:/opt/mmt#

training log file:
training.log

Just in case it might remotely be useful:
corpus data
Cherokee-English Corpus Data

Figured I'd try with a persistent volume instead of a local file system bind, and I get the same error on resume.
When I hit ctrl-c in docker, it seems to lose the state.json file after averaging checkpoints into a model? (and re-creates it when trying to resume?)
root@8510072896af:/opt/mmt# find . -name 'state.json'
./runtime/default/tmp/training/state.json

root@8510072896af:/opt/mmt# cat ./runtime/default/tmp/training/state.json

{
  "corpora_clean": "/opt/mmt/runtime/default/tmp/training/corpora_clean",
  "step_no": 0
}

@magali-joine
if you do NOT use --debug
the temporary training directory is removed when the training is completed or interrupted by signal '-2' (CTRL-C)
As you already understood, the temporary training directory is kept if the debugging mode is active.
Feel free to close the issue, if you are ok.


Field .altname doesn't survive being saved and restored from a .bntl file

Creating a type with an .altname is fine:
>>> builder = IntegerBuilder.create(4, BoolWithConfidence(True, 255), 'YOMOMMA2')
... type_ = builder.immutable_copy()
...
>>> type_.altname
'YOMOMMA2

But if you go to .bntl and back the .altname is lost:
#!/usr/bin/env python
import binaryninja
from binaryninja.typelibrary import TypeLibrary
from binaryninja.types import Type, IntegerBuilder, BoolWithConfidence
arch = binaryninja.Architecture['x86_64']
typelib = TypeLibrary.new(arch, 'libtest.so.1')
typelib.add_platform(binaryninja.Platform['mac-x86_64'])
# TECHNIQUE #1
typelib.add_named_type('MyIntType', Type.int(4, True, 'YOMOMMA'))
# TECHNIQUE #2
builder = IntegerBuilder.create(4, BoolWithConfidence(True, 255), 'YOMOMMA2')
type_ = builder.immutable_copy()
typelib.add_named_type('MyIntType2', type_)
typelib.finalize()
typelib.write_to_file('/tmp/test.bntl')
typelib = None
typelib = TypeLibrary.load_from_file('/tmp/test.bntl')
t = typelib.named_types['MyIntType']
if t.altname == 'YOMOMMA':
    print('PASS')
else:
    print('FAIL')
t = typelib.named_types['MyIntType2']
if t.altname == 'YOMOMMA2':
    print('PASS')
else:
    print('FAIL')

Fixed as of 2.5.3190


KAFKA-3522: add missing guards for TimestampedXxxStore

Follow up to #6152 and #6173

Call for review @guozhangwang @bbejeck @vvcephei @ableegoldman

Rebased this. Call for review.

Merged #6356 into trunk


Jest not collecting coverage from TSX files

🐛 Bug Report
On a project with TS and TSX files, Jest runs all the tests but collects only coverage for the TS files.
To Reproduce
Steps to reproduce the behavior:

git clone https://github.com/JoseHervas/react-typescript-jest-boilerplate
npm install
npm run test:coverage

Expected behavior
Coverage from TSX files should be collected as well.
Link to repl or repo (highly encouraged)
https://github.com/JoseHervas/react-typescript-jest-boilerplate
envinfo
  System:
    OS: macOS 10.15.6
    CPU: (8) x64 Intel(R) Core(TM) i7-8569U CPU @ 2.80GHz
  Binaries:
    Node: 14.2.0 - /usr/local/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.4 - /usr/local/bin/npm
  npmPackages:
    jest: ^26.4.2 => 26.4.2

Update: here's my jest config:
module.exports = {
  moduleFileExtensions: ['ts', 'tsx', 'js', 'json'],
  moduleNameMapper: {
    '\\.scss$': 'identity-obj-proxy',
    '^@components/(.*)$': '<rootDir>/src/components/$1',
  },
  collectCoverageFrom: ['<rootDir>/**/*.{ts, tsx}'],
  roots: ['<rootDir>'],
  testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(ts|tsx)$',
  transform: {
    '^.+\\.(ts|tsx)$': 'ts-jest',
  },
};

Apparently the problem comes from
collectCoverageFrom: ['<rootDir>/**/*.{ts, tsx}'],
We can not specify TS and TSX on the same regex. If I change this setting to 2 separate regex:
collectCoverageFrom: ['<rootDir>/**/*.tsx', '<rootDir>/**/*.ts'],
it works.

I think you want to use "//*.{ts,tsx}" instead of "//*.{ts, tsx}"? Anyway, it's a user configuration error, closing.


Change size of featured card

Hi there, can you please let me know how to change the featured post card to stretch across the whole screen instead of just being on the left.

Hi,
You can inject the following code into the Site Header Code injection section of your Ghost instance:
<style>
  @media only screen and (min-width:64rem) {
    .m-featured-slider {
      width:calc(100% - 40px);
      margin: -40px 20px 20px;
    }
  }
</style>

Cheers.

I will close this for now, please feel free to reopen it if needed.


Limitation with single RAML file

Do you have intention of solving the single file limitation of the Raml-Server? Also it will be better if implemented as a module.

Hi @alleypa ! Yes, we are solving those two issues for the next release, which is soon. As a module it would look like
var ramlServer = require('raml-server');

ramlServer.run('myAPI.raml').then( function(data) {
   console.log(data);
}, function(error) {
   console.log('Error: ' + error);
});

@farolfo
hope you are good? Any update to the reply of my posted issue on the 27th Nov 2015.
cheers
Oly

Hello @alleypa, the issue is not yet solved as I'm the only contributor of the project and I'm focused on other projects right now.
Thanks for the interest and I'll try to get it done as soon as I can.
Also I strongly encourage and appreciate PRs if you'd like :)

@alleypa what did you mean by single file?
Did you want to load several non-related raml files to make several APIs, or to load single raml representing one API, but with !include tags to related raml files?


cannot create stack

I am trying to create a stack using the wordpress sample docker-compose.ym file form your documentation, but it doesn't work.
Both containers are marked as "unhealthy". I cannot see such containers on the host. The output of docker ps command on the host is:
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                          NAMES
76d9a6395ffd        rancher/agent-instance:v0.8.0   "/etc/init.d/agent-in"   7 minutes ago       Up 7 minutes        <IP_ADDRESS>:500->500/udp, <IP_ADDRESS>:4500->4500/udp   20effd44-afea-4e80-943f-e866a029b611
ab5d55d8cda4        rancher/agent:v0.9.2            "/run.sh run"            8 minutes ago       Up 8 minutes                                                       rancher-agent
As you can see, there is no trace of either the database or wordpress containers.
What is this agent-instance container and why is it at version 0.8.0 while rancher agent is at 0.9.0?
Rancher server is running a newly updated image; the host was added just before trying to create the stack.
It looks like the server cannot communicate with the agent.
Please advise.

Useful
Info

Versions
Rancher v0.59.1 Cattle: v0.148.1 UI: v0.90.0

Access
github admin

Route
null

Do the container hosts appear online in the Rancher GUI?
If you can see the services under the applications tab, it might be viewing them as objects in the API to see if there is a status message around why they've not deployed.
Regarding agent/agent-instance versions, they are separate images, versions won't necessarily match.

The host is visible in the rancher UI. It shows 2 running network agent containers. I presume these match the rancher/agent and rancher/agent-instance containers that I can see on the host.
The 2 containers for the wordpress stack are also shown in the UI for the host, but they keep being shown as alternatively being stopped and restarted.
The rancher-server log is full of errors too:
.platform.engine.process.impl.DefaultProcessInstanceImpl.runHandlers(DefaultProcessInstanceImpl.java:381) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runLogic(DefaultProcessInstanceImpl.java:487) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runWithProcessLock(DefaultProcessInstanceImpl.java:314) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$2.doWithLockNoResult(DefaultProcessInstanceImpl.java:254) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:7) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:3) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.acquireLockAndRun(DefaultProcessInstanceImpl.java:251) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runDelegateLoop(DefaultProcessInstanceImpl.java:183) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.executeWithProcessInstanceLock(DefaultProcessInstanceImpl.java:156) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:106) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:103) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.execute(DefaultProcessInstanceImpl.java:103) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.object.process.impl.DefaultObjectProcessManager.executeStandardProcess(DefaultObjectProcessManager.java:29) [cattle-framework-object-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.process.common.handler.AbstractObjectProcessLogic.activate(AbstractObjectProcessLogic.java:31) [cattle-iaas-logic-common-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.process.instance.InstanceStart.compute(InstanceStart.java:216) [cattle-iaas-logic-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.process.instance.InstanceStart.handle(InstanceStart.java:84) [cattle-iaas-logic-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runHandler(DefaultProcessInstanceImpl.java:440) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$4.execute(DefaultProcessInstanceImpl.java:387) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$4.execute(DefaultProcessInstanceImpl.java:381) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.idempotent.Idempotent.execute(Idempotent.java:42) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runHandlers(DefaultProcessInstanceImpl.java:381) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runLogic(DefaultProcessInstanceImpl.java:487) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runWithProcessLock(DefaultProcessInstanceImpl.java:314) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$2.doWithLockNoResult(DefaultProcessInstanceImpl.java:254) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:7) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:3) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.acquireLockAndRun(DefaultProcessInstanceImpl.java:251) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runDelegateLoop(DefaultProcessInstanceImpl.java:183) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.executeWithProcessInstanceLock(DefaultProcessInstanceImpl.java:156) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:106) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:103) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.execute(DefaultProcessInstanceImpl.java:103) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.eventing.impl.ProcessEventListenerImpl.processExecute(ProcessEventListenerImpl.java:68) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.engine.eventing.impl.ProcessEventListenerImpl.processExecute(ProcessEventListenerImpl.java:54) [cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
at sun.reflect.GeneratedMethodAccessor579.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_95]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_95]
at io.cattle.platform.eventing.annotation.MethodInvokingListener$1.doWithLockNoResult(MethodInvokingListener.java:76) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:7) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:3) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.eventing.annotation.MethodInvokingListener.onEvent(MethodInvokingListener.java:72) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
at io.cattle.platform.eventing.impl.AbstractThreadPoolingEventService$2.doRun(AbstractThreadPoolingEventService.java:135) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.NoExceptionRunnable.runInContext(NoExceptionRunnable.java:13) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:108) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_95]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_95]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_95]

If you click on one of the containers, choose 'view in API' you might have to be fast. There will be a reason it can't start them. Failing that if you post the config you used to deploy in here, might be able to help.

Sorry, but I see nothing in the "view in api" output that explains why the container does not start.
The config is exactly the config from your website.
wordpress:
ports:
- "8080:80/tcp"
environment:
- "WORDPRESS_DB_HOST: database:3306"
- "WORDPRESS_DB_PASSWORD: my-secret-pw"
tty: true
image: wordpress
links:
- database
stdin_open: true
database:
restart: "no"
environment:
- "MYSQL_ROOT_PASSWORD: my-secret-pw"
tty: true
image: mysql
stdin_open: true

I don't work for Rancher! Just trying to help out :)
Looking at the above, i think the guide you took it from was probably a blog post based on an older version of Rancher. The formatting of that file's changed a little since then, try the below:
wordpress:
  ports:
  - 8080:80/tcp
  environment:
  - WORDPRESS_DB_HOST:database:3306
  - WORDPRESS_DB_PASSWORD:my-secret-pw
  tty: true
  image: wordpress
  links:
  - database:database
  stdin_open: true

database:
  environment:
  - MYSQL_ROOT_PASSWORD:my-secret-pw
  tty: true
  image: mysql
  stdin_open: true

Just ran that into my own instance. The DB fails because:
2/27/2016 3:56:17 PMerror: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables
2/27/2016 3:56:17 PM  Did you forget to --link some_mysql_container:mysql or set an external db
2/27/2016 3:56:17 PM  with -e WORDPRESS_DB_HOST=hostname:port?
2/27/2016 3:56:26 PMerror: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables
2/27/2016 3:56:26 PM  Did you forget to --link some_mysql_container:mysql or set an external db
2/27/2016 3:56:26 PM  with -e WORDPRESS_DB_HOST=hostname:port?
2/27/2016 3:56:56 PMerror: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables
2/27/2016 3:56:56 PM  Did you forget to --link some_mysql_container:mysql or set an external db
2/27/2016 3:56:56 PM  with -e WORDPRESS_DB_HOST=hostname:port?
2/27/2016 3:57:26 PMerror: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables
2/27/2016 3:57:26 PM  Did you forget to --link some_mysql_container:mysql or set an external db
2/27/2016 3:57:26 PM  with -e WORDPRESS_DB_HOST=hostname:port?

And the wordpress instance fails because:
2/27/2016 3:54:53 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:54:53 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:55:01 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:55:01 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:55:28 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:55:28 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:55:31 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:55:31 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:55:45 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:55:45 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:56:13 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:56:13 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:56:15 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:56:15 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:56:31 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:56:31 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:56:58 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:56:58 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:57:01 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:57:01 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:57:15 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:57:15 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
2/27/2016 3:57:43 PMerror: database is uninitialized and password option is not specified
2/27/2016 3:57:43 PM  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

I suspect those images have changed also since that blog post. It's important to remember rancher is in beta still. It might also be worth looking at the catalog in rancher, it has many of those services ready to deploy from it.

I don;t see much difference between the 2 formats, except that you've removed quotes, which shouldn't make much difference in a yaml file (it may make the yaml file badly formed, and may actually explain the error you observed). Thanks anyway.

Actually, I have figured something out. The original syntax for environment variables is wrong. It should be one of the following:
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
ORL
environment:
- "MYSQL_ROOT_PASSWORD=my-secret-pw"
in other words, either an object or an array.
It still doesn't work, though.

At least the contains are launched on the host.
container log complains about [ERROR] InnoDB: Cannot allocate memory for the buffer pool

Have a look at those containers on the docker hub and make sure you've got the right variables set to run them.

adding swap to the host seems to resolve this.
now yet another problem. wordpress site is not available, i.e. when opening http://:8080  nothing is loaded.

From the wordpress container log:
2/27/2016 11:14:14 PMMySQL Connection Error: (1130) Host '<IP_ADDRESS>' is not allowed to connect to this MySQL server
2/27/2016 11:14:17 PM
2/27/2016 11:14:17 PMWarning: mysqli::mysqli(): (HY000/1130): Host '<IP_ADDRESS>' is not allowed to connect to this MySQL server in - on

Probably because you've not set a default password for mysql, ? It's shown in the logs i posted above when running that config in.
https://hub.docker.com/_/mysql/
Probably worth taking a moment to go through those images and making sure you have everything in-place.

I suspect that's because the wordpress DB is not initialized. The mysql container requires the following environment vars to initialize a DB:
database:
environment:
- "MYSQL_ROOT_PASSWORD=my-secret-pw"
- "MYSQL_DATABASE=wordpress"
- "MYSQL_USER=wordpress"
- "MYSQL_PASSWORD=my-secret-pw"

This is a config that works:
wordpress:
ports:
- 8080:80/tcp
environment:
- "WORDPRESS_DB_HOST=database:3306"
- "WORDPRESS_DB_NAME=wordpress"
- "WORDPRESS_DB_USER=wordpress"
- "WORDPRESS_DB_PASSWORD=my-secret-pw"
tty: true
image: wordpress
links:
- database:database
stdin_open: true
database:
environment:
- "MYSQL_ROOT_PASSWORD=my-secret-pw"
- "MYSQL_DATABASE=wordpress"
- "MYSQL_USER=wordpress"
- "MYSQL_PASSWORD=my-secret-pw"
tty: true
image: mysql
stdin_open: true

FYI, I think you were looking at an old blog post, which we don't keep up to date as new versions/features come out. Documentation at docs.rancher.com are kept up to date as much as possible.


XRISM quick look

Quick look at the XRISM early release data for the Perseus cluster

High resolution spectrum of the iron K band.


deprecate the use of GovernanceMasterNodeRegTestContainer

Deprecate the use of GovernanceMasterNodeRegTestContainer in https://github.com/JellyfishSDK/jellyfish/blob/main/packages/jellyfish-api-core/tests/category/governance/governance_container.ts
With v3 merged, we shouldn't need the custom container.

/triage accepted
/area packages


Add application-level SDKs for Python, JavaScript, Go, .NET and more

Pulumi ESC can already be accessed from application code via REST API and the CLI.  But there are many use cases where it is useful to consume configuration from Pulumi ESC directly from within application code.
We plan to do this by offering native SDKs for TypeScript, Python, Go and .NET.
As part of designing these SDKs, we have a few goals:

The ability to authenticate to Pulumi ESC (initially using a Pulumi Access Token, int he future using additional application-level authentication methods)
The ability to open an environment to get back a set of configuration values.
The ability to watch an environment to get a callback invoked when that environment changes.

Here's a conceptual sketch of what this might look like:
import * as esc from ‘pulumi-esc’;

const env = new esc.Environment(...);
const config = env.open("shopping-service-production");
env.watch("shopping-service-production", config => …);

A very WIP branch where I started playing with this idea: https://github.com/pulumi/esc/pull/219
Usage can be determined by examining the test file: https://github.com/pulumi/esc/pull/219/files#diff-c9d85370cddbf279425cc6431472496aaac8ac4bfc7aa067a4b1d6ed5034a8f7
Very much encourage folks that are motivated to try this out and let us hear your feedback!

would be awesome if you could also update a ESC from the application code.

Docs for Typescript, go, Python SDK: https://www.pulumi.com/docs/esc/sdk/


Why is there's a duplicate folder on the home page of my files APP? AND when I  change  my files tag , Files APP crash.

Description

AND when I  change  my files tag , Files APP crash.
AND...
The function of searching files is very unstable.
I have a file P in my folder A. I type P in the search box.
I can't find the file in Files APP, and the text "File does not exist" is displayed.
But when I search again and wait for 1 minute, I can find the file again.
The above problem has always existed, but it has worsened since this update.
Steps To Reproduce

open FilesApp
duplicate folders on the home page, double.
Refresh Page
duplicate folders on the home page, triple.

change file tags.
crash and APP closed.

key in some words in search bar
cannot find the files that files name include words.

Requirements
Fix crash that occurs when go to homepage.
Fix crash that occurs when change tags.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.3527
Log File
[
debug.log
debug_server.log
](url)

Thanks for the feedback, we have a similar issue we're working on, while we cannot reproduce yet. #14555
@Josh65-2201 Do you think we can merge?

0x5bfa @.***>於 2024年5月11日 週六，15:39寫道：

Thanks for the feedback, we have a similar issue we're working on, while
we cannot getreproduce yet. #14555
https://github.com/files-community/Files/issues/14555
@Josh65-2201 https://github.com/Josh65-2201 Do you think we can merge?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/15370#issuecomment-2105617434,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATNZXGZYQ4XL2QVIOP6SGMLZBXDKRAVCNFSM6AAAAABHRV6IT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBVGYYTONBTGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Would it be the same cause? This one is home page drives the linked one is for quick access. If so then yeah I think it can be merged

The same logic, which insert new items that are not in previous collection without emptying and inserting everything. It’s asynchronous operation and so maybe the changed event is called twice or more and finish differently.

Do you think this would be fixed by using Semophore? @hishitetsu

Since such collections should already be thread-safe, I don't think Semaphore will fix the issue. It is simply a matter of not adding the same item if it already exists. In any case, I think it can be fixed once the procedure to reproduce the issue is clarified.

Description
When I change my files tag , Files APP crash immediately.

** Steps To Reproduce**
open FilesApp
duplicate folders on the home page, double.
Refresh Page
duplicate folders on the home page, triple.
change file tags.
APP crash and  closed.
Requirements
Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.3527
Log File
debug.log
debug_server.log

Please open an issue per issue.
Can you open new one for it?

Since it the same cause we can track this in #14555 and update the title. You can check there or click subscribe in the right sidebar for updates.


build fails

Very interested to give this a whirl; love the idea! Great work.
Can't get it to build though. Followed the 'brief overview' directions, also consulting the docs, to use the template. Changed the config with my own site settings to use with gh pages, used the demo metadata template and added one line of info; the build fails every time. The error message from github is not useful; just says page failed, so I'm a bit baffled. I am not very familiar with troubleshooting jekyll.
my repo: https://github.com/shawngraham/test-collectionbuilder
my metadata file: https://github.com/shawngraham/test-collectionbuilder/blob/main/_data/demo-sg.csv
my config:
# site domain, full URL to the production location of your collection
url: https://shawngraham.github.io
# path to location on the domain if necessary e.g. /digital/hjccc
baseurl: /test-collectionbuilder
# location of code, the full url to your github repository
source-code: https://github.com/shawngraham/test-collectionbuilder

followed eventually with:
# Use the filename of your CSV **without** the ".csv" extension! E.g. _data/demo-metadata.csv --> "demo-metadata"
metadata: demo-sg

@shawngraham thanks for giving it a whirl!
Your demo repository and metadata look correct, and it will build locally using Jekyll--however collectionbuilder-csv can't be built using standard GitHub Pages build (it uses plugins and a more up-to-date version of Jekyll)--so the build just fails.
You can use collectionbuilder-gh template with standard GH pages, or you can set up a GitHub action to build your CSV version.
Let us know how it goes!

And another way to build it (easier than GitHub actions) is to use Render
-->
https://collectionbuilder.github.io/cb-docs/docs/deploy/thirdparty/#deploy-using-render
Just sign up, connect your repository, change the couple settings and
Render will build and host the site for free at an onrender.com site. And
despite what Evan might say, I am not a sales rep for Render -- I just
really like they're platform :)
Thanks so much for trying CollectionBuilder, @shawngraham
https://github.com/shawngraham
On Wed, Nov 10, 2021 at 1:50 PM EvanWill @.***> wrote:

@shawngraham https://github.com/shawngraham thanks for giving it a
whirl!
Your demo repository and metadata look correct, and it will build locally
using Jekyll--however collectionbuilder-csv can't be built using standard
GitHub Pages build (it uses plugins and a more up-to-date version of
Jekyll)--so the build just fails.
You can use collectionbuilder-gh
https://github.com/CollectionBuilder/collectionbuilder-gh template with
standard GH pages, or you can set up a GitHub action to build your CSV
version https://collectionbuilder.github.io/cb-docs/docs/deploy/actions/
.
Let us know how it goes!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/CollectionBuilder/collectionbuilder-csv/issues/24#issuecomment-965777272,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACTM4GNTJJTZWHX7PAJMXX3ULLSKVANCNFSM5HY6QERQ
.

THEIR, not they're.  ARGH. And now it's saved forever in GitHub ...
On Wed, Nov 10, 2021 at 2:31 PM Devin Becker @.***> wrote:

And another way to build it (easier than GitHub actions) is to use Render
-->
https://collectionbuilder.github.io/cb-docs/docs/deploy/thirdparty/#deploy-using-render
Just sign up, connect your repository, change the couple settings and
Render will build and host the site for free at an onrender.com site. And
despite what Evan might say, I am not a sales rep for Render -- I just
really like they're platform :)
Thanks so much for trying CollectionBuilder, @shawngraham
https://github.com/shawngraham
On Wed, Nov 10, 2021 at 1:50 PM EvanWill @.***> wrote:

@shawngraham https://github.com/shawngraham thanks for giving it a
whirl!
Your demo repository and metadata look correct, and it will build locally
using Jekyll--however collectionbuilder-csv can't be built using standard
GitHub Pages build (it uses plugins and a more up-to-date version of
Jekyll)--so the build just fails.
You can use collectionbuilder-gh
https://github.com/CollectionBuilder/collectionbuilder-gh template
with standard GH pages, or you can set up a GitHub action to build your
CSV version
https://collectionbuilder.github.io/cb-docs/docs/deploy/actions/.
Let us know how it goes!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/CollectionBuilder/collectionbuilder-csv/issues/24#issuecomment-965777272,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACTM4GNTJJTZWHX7PAJMXX3ULLSKVANCNFSM5HY6QERQ
.

ah, gotcha! thanks @evanwill @dcnb I'll give both of those workflows a try.

ha ha, @dcnb still not sure how logging into another service, clicking a bunch of buttons over there and linking things up is easier than adding a single YAML file to your repository? 😉 😉

ok, an update - i tried both the workflow, and the Render thingy.
Both were quite easy. However, with the workflow, the workflow would run, but the site would still not deploy. With render, it deployed, but was broken. The log file for Render showed an interesting error:
Error cb_helpers: Item for featured image with objectid 'demo_001' not found in configured metadata 'demo-sg'. Please check 'featured-image' in '_data/theme.yml'

In my metadata file, I had deleted a few of the items. So, I changed the featured image in the _data/theme.yml to the image that I had added to the metadata (demo_008) and lo! and behold! the github action worked.
So there we go. One thing - since I added the action, and the workflow was deploying to a new branch, I had to update the pages settings to load from that branch. Anyway, very cool!

Oh okay thanks for the update @shawngraham that's helpful-- that is weird/frustrating that the CB warning message is actually causing the GitHub Action and Render to not build it! That is intended to be a helper when you are working locally, and it doesn't interrupt the build, so not sure why the Action is taking those messages as an error and exiting. I will have to look into that...


plans to add multi language support ?

in your previous mistakenly uploaded file titles.py i saw multiply languages variants.
do you plan to add some of them to settings for opportunity to change language of the bot?)

Hmm.. That titles.py was for my other bot Group manager bot. but it could be cool to have multiple languages, or detecting user's Telegram language and answer using it.
Or setting language file (for example lang.txt) for each user to store response language and use it for answering.
I will work on it.

That's great idea to make translate.py script to initialize bot language (for global language), also we need a script to translate titles for each user, maybe using language command, I will work on it too, we can also use user's telegram language that comes from message details (message.from_user_language_code i think.)
I will try all of them and giving all methods to users, so everyone can choose whatever they want with their bots, global language or user-based language.

Thank you for your great work! after editing it to suit my server and translating some commands to Arabic (I have added Arabic to some commands and disabled some commands like Dan because its soo slow) but can't we edit system role and adding reply to each request with the same language of that request. to it?

Hi, You're welcome @Abdullrahman-Dawaliby
As what i got, The language in bot or multi language feature is for commands and bot's respond. most of times (or maybe always) ChatGPT is responding in same language of query or question, even without specifying that system role, but let's try and see difference! I will test it

Hi, You're welcome @Abdullrahman-Dawaliby
As what i got, The language in bot or multi language feature is for commands and bot's respond. most of times (or maybe always) ChatGPT is responding in same language of query or question, even without specifying that system role, but let's try and see difference! I will test it

Thanks for your kindness, but when I send Arabic question like speak in Arabic (تحدث بالعربية) it reponse in Arabic but after that even if I sent an Arabic question it will respond either in completely another subject with multiple languages such as Russian and Hebrew and English in the same message, or it will respond correctly to the question but in English. Here is the bot link if you want to test it

Hi, You're welcome @Abdullrahman-Dawaliby
As what i got, The language in bot or multi language feature is for commands and bot's respond. most of times (or maybe always) ChatGPT is responding in same language of query or question, even without specifying that system role, but let's try and see difference! I will test it

Thanks for your kindness, but when I send Arabic question like speak in Arabic (تحدث بالعربية) it reponse in Arabic but after that even if I sent an Arabic question it will respond either in completely another subject with multiple languages such as Russian and Hebrew and English in the same message, or it will respond correctly to the question but in English. Here is the bot link if you want to test it

It seems that the problem may stem from the different providers, as there are 4 providers, each using different models such as ChatGPT3.5 or Llama.
When you ask a question, the bot tries the first online provider, which could be Llama or ChatGPT3.5. On the other hand, some providers like Llama have pre-training data that is almost English, making it difficult for them to accurately answer questions in Persian or Arabic. This may explain the varied responses or glitches you receive.
In my country, most services are limited and banned, so I’m working on these projects using proxies like Tor and can't test them perfectly (sorry about that), but i try my best to make perfect projects.
You could consider removing the Llama provider (DeepInfra AI) to force the bot to only test ChatGPT providers, or you could explore changing the system role (maybe worked!).

sorry but I fixed it already after I have tested the Deep-infra on their official website and disabled that API and removed the provider from the /ping command successfully but my ISP has some problems and now it worked. Unfortunately, my server is on sillydev.co.uk(free plan) and their server stopped suddenly and they are trying to fix. Do you know any other free server(VPS)?

I am searching for free gpt-4 APIs so if I found some can you please help in merging them as I have basic python knowledge

I am searching for free gpt-4 APIs so if I found some can you please help in merging them as I have basic python knowledge

Of course.


[hexagon] Hexagon inference fix

Resolves issue with kernels linking.
Fixes warning generated by clang-15.

@sunggg Could you please review the fix?


TaskDependency.task may not be set and is actually not needed.

fixes #737

Coverage decreased (-0.6%) to 81.163% when pulling 9682d9feb0c91e20b7321cfd41cdb396f924fd9a on arcivanov:issue_737 into b9a7cc15229559da040644b8d9c67c1dcf7c0a6d on pybuilder:master.


[peewee] using Model.get_or_create() doesn't work with pgvector

Hello!
I'm trying to use the peewee method .get_or_create() in place of .create() but I'm getting the following error:
{...}
  File "/myprj/venv/lib/python3.11/site-packages/pgvector/peewee/__init__.py", line 16, in db_value
    return to_db(value)
           ^^^^^^^^^^^^
  File "/myprj/venv/lib/python3.11/site-packages/pgvector/utils/__init__.py", line 37, in to_db
    return '[' + ','.join([str(float(v)) for v in value]) + ']'
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'float' object is not iterable

Can you help to find out whether is this a bug or something I'm doing wrong?
Thanks!

Hi @ricardofunke, it should work if you use a NumPy array instead of a list:
Item.get_or_create(embedding=np.array([4, 5, 6]))

I don't see a way to make it work with lists at the moment.

It looks like AsIs(value) and Item.embedding.to_value(value) work as well, but think that might be the best we can do for now.


Should this be deprecated in favor of puppet-hub?

/cc @jingweno

Yup. Just updated the README: https://github.com/boxen/puppet-gh/commit/15d7ead01299a09938dc9104217e6f1980800a01


left only one  proceed-to-checkout Btn and deleted the rest

There were one "proceed to checkout" button for each booking, but there should be only one, which leads to payment page, so I fixed that.
Loom https://www.loom.com/share/dd41e2b7e7a3464193cf64143231c527

Excellent job isolating and cleaning up redundancy 👍 :)


Add changeset for plugin-catalog-backend

Adds the missing changeset for @backstage/plugin-catalog-backend

https://github.com/backstage/backstage/pull/17125 is building, let's hope it all passes! 🤞

It worked! Marked as ready for re-review.


fix(jell): fix equality bug

Summary of this PR
#21 introduced another bug. If types of values were different then it is expected to be false but gets true.

Thanks!


Get unassigned IPs

SendGrid returns a list of all IP addresses on your account. It also returns a list of assigned IP addresses.
What it doesn't do is return a list of unassigned IPs.
Please create a method that will get the IPs available and return any that do not have a subuser assigned to them.
See GET /ips for more information.

Where do I create the method for it?

What is the idea behind this?
Create a sub package for each section of the API? #497 #499 #501
Create a helper that uses @ sengrid-nodejs / client? or extend the client's methods?

@thinkingserious I would like to work on one the issues @jlopezxs has referenced above, but I have the same questions. Please advise :)

@jlopezxs @HeroProtagonist -
For this issue, it would be a helper method for IPs that grabs all the current IP data and returns a list of the IPs with no subuser assigned.
This can be done as a helper method here.
This would be the same for #497, #499, and #501

@mbernier would we want to use @sendgrid/client to make these requests? If thats the case would it be ok to have that as a dependency for @sendgrid/helpers. I'm just a little confused because the readme said that helpers was for internal use, but these new methods are for developer usage

Since there has been no activity on this issue since March 1, 2020, we are closing this issue. Please feel free to reopen or create a new issue if you still require assistance. Thank you!


[BUG] Update deprecated label of beta.kubernetes.io/os to kubernetes.io/os

Describe the bug
Warning:
spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead
deployment.apps/harvester edited

Expected behavior
change desired label to
Related to:

https://github.com/harvester/harvester/search?q=beta.kubernetes.io%2Fos
https://github.com/harvester/charts/search?q=beta.kubernetes.io%2Fos
other harvester dependency charts/repos where applicable.

Make sure those changes will not break the upgrade case.
Support bundle

Environment

Harvester ISO version: v1.1.0-rc2
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): all

Additional context
Add any other context about the problem here.

Upgrade path: https://github.com/harvester/harvester/blob/master/package/upgrade/upgrade_node.sh#L497

@guangbochen are we going to remove label beta.kubernetes.io/os on ondes?  it looks fresh new cluster will still have it.

@guangbochen are we going to remove label beta.kubernetes.io/os on ondes?  it looks fresh new cluster will still have it.

Yep, this label is deprecated but has yet to be removed; it was also shipped by the k8s out-of-the-box. For the testing scope, we only need to ensure that the Harvester component didn't use this label as the node selector terms.
$ kubectl get pod -n harvester-system -oyaml | grep "beta.kubernetes.io/os" # should not exist


Update evaluating-models.rst - Confussion matrix

In Section "Intent Classification" there was this note:
.. note::
A confusion matrix will only be created if you are evaluating a model on a test set.
In cross-validation mode, the confusion matrix will not be generated.
This is incorrect. If you run a test in cross-validation mode, a confusion matrix IS generated.
Proposed changes:

Remove this note.

Status (please check what you already did):

[ ] added some tests for the functionality
[x] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[ ] reformat files using black (please check Readme for instructions)

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR! We'll give it a review as soon as possible.

Do I have to do something else?
I ask you this because of the "Travis CI - Pull Request Faling"
Sorry, is my first time doing it.

Build failing independent of this PR, we're working on the solution.

Ok!

@Ghostvv this is good to merge?

yes


new feature request: rkv update with current latest revision number

Currently rkv update op updates the value of the specified key; each key keeps the history of values in list of revisions.
Taking an imaginary scenario that increase the request-counter (key named as "count") on receiving requests:

client reads the latest revision of count, say n;
client update count with a new value n+1;

There exist multiple components (e.g. server handler go-routines) updating the count. We need a mechanism to ensure the correctness of count update. One simple approach is updating with comparison of latest revision number.

will provide impl after 930

good chat with @h-w-chen about this today. one of the use case of this is in case of multiple schedulers updating the same resource concurrently. both the schedulers (client) and rkv (server) sides can and should implement checking mechanism for attempting to update based on an older version. Such check on the client side can help reduce the possibilities of bad attempts from reaching  the db (server), but the final say is on the rkv side.


Rock Paper Scissor Game

Rock Paper Scissor and today we will make this Rock Paper Scissor Game Using Python Tkinter.

This is my contribution.


updated HaxeCBridge to fix windows compilation errors

This gets the build to pass and generate the DLL. But, it doesn't seem to work with the integration.

Thanks for this @skylerparr, life is getting the better of me at the moment but this is still on my mind and I plan to make headway when I get free moments

Hey @skylerparr, thanks for your help here, finally got to this over 6 months later! Windows is working now after some thread handling tweaks


Enable vectorized reader #536

What changes were proposed in this pull request?
1、add Option[VectorizedContext] to DataFile Constructor which contain vectorized read infomation(partitionColumns\partitionValues\returningBatch)
2、add SpecificOapRecordReaderBase\VectorizedOapRecordReader\IndexedVectorizedOapRecordReader to implement parquet data file vectorized read, include
indexed read & full table scan.
3、copy ColumnarBatch.java from spark and add a method named "boolean isFiltered(int rowId)" provide FileSourceScanExec.doProduceVectorized method to know which rowid should be write to outbuffer when SupportBatchReturn is true
4、extract static factory method  named "IndexedParquetMetadata.from" to produce IndexedParquetMetadata with parquet footer & index rowIdList
5、add FilterHelper wap parquet filter push down logic and use pushed filter when full table scan
Corresponding doc: #536
How was this patch tested?
1、exiting test case
next step I will try to optimize ColumnarBatch.filteredRows markup process & add more new case to  test this issue.

Looks Good To Me
Thanks @LuciferYang   👍
We would consider merging this after 0.3.0 release, during this time you might add some unit test cases for parquet vectorized reader or some comments for key functions in IndexedVectorizedOapRecordReader .

@linhong-intel  optimized import content by intellij :( , fix ix....

tried a simple test
the performance is as fast as native parquet reader

@linhong-intel as which parquet reader? VectorizedParquetRecordReader ?

Thanks @LuciferYang to split this PR into small ones.
So this is used to understand the overall design. We'll merge the small PRs.

@linhong-intel yeah~ this is a panorama ~ as #536 said, split this pr into 7 small ones~

All Code Already merged into master~


Re-order of file search results

Is this a bug report or a feature request?
Feature request
Version Info

Version of Majestic: alpha
Version of Jest: 2.1.1
Version of Node: 11.4
Operating System: Windows 10

Reproduction Repo
Using the file search, I think it would make more sense to have the file with a name matching the search be at the top. I assume the other search results are files containing what I typed?

The rewrite should show the correct order. Please have a look. If not, feel free to reopen.


Upgrade to arrow2 v0.17

Hi Kyle,
I used this crate but required a more current version of arrow2, so I did the migration and decided a PR may be helpful.
The main changes are related to the slice method now modifying the array itself instead of returning a cloned array (https://github.com/jorgecarleitao/arrow2/pull/1396), and the newly introduced Offset::len_proxy method (https://github.com/jorgecarleitao/arrow2/pull/1330).
Please review carefully - I tried to adapt all doc-strings - hopefully I missed none.

@kylebarron I just saw this is awaiting approval to run CI - any reasons for this or did it just go unnoticed?

oh whoops I did not see this PR, sorry!

No worries ;)


Check whether Interstitial, Reward ads are loaded

After loading any ad we have a callback event. But if want to check a specific ad at any time that if it is available/loaded or not how we can do it?
Do we have isLoaded function to check for Reward, Interstitial, RewardInterstitial ads. How to do it?

@mjapps-games the is ".isLoaded()" for all ad types, no?

closed due to inactivity


Yosemite “Android Design Preview” is damaged and can’t be opened.

I'm getting: “Android Design Preview” is damaged and can’t be opened. You should move it to the Trash; when I attempt to run design preview in Yosemite (not sure what this is doing in other versions). I'm not sure if this is known or unknown but I thought I'd drop in the notification.

This is a dup of #1


Error downloading resource over https when IE settings in place

I am trying to download an exe over https in my own domain. I am using the download dialog component to achieve this.
Getting an error that the specified download has failed. Error line from the log file is
2018-02-16 18:14:49	*** Download ERROR: 0x800c0008 - Error downloading "https://hello.world.com/Resources/Dotnet4.6AllOS.exe" to "C:\Users\SACHAT~1\AppData\Local\Temp\Dotnet4.6AllOS.exe.tmp": The download of the specified resource has failed.
Searching through forums found that the culprit is an IE Setting. In Internet Explorer, in Internet Options, under Advanced tab, under Security section if the setting "Do not save encrypted pages to disk" is checked then the download fails.
However if I hit the same URL in the browser, the download happens fine.
I am trying to distribute pieces of software through the dotnetinstaller bootstrapper and there can be can be scenarios when the user workstation has this setting.
Any way this can be fixed?
Posted same to Google Group Topic

Hi.
This is an issue with dotNetInstaller using URLDownloadToFile to download files, which uses IE's settings.
One work-around is to just use HTTP.
Is the server returning "Pragma: no-cache" in the header?
If so, do you have the ability to make changes to the server?
As another work-around, see the following links:
IIS ASP.NET MVC: https://juristr.com/blog/2012/07/strange-error-when-downloading-file-in/
Apache Tomcat<EMAIL_ADDRESS>I think to solve this issue, dotNetInstaller would have to use something else other than URLDownloadToFile, like CInternetSession or CHTTPClient.
I have not tested any of these possible work-arounds or solutions as when I encountered this issue, I was able to use HTTP instead; the data retrieved when downloading the file didn't need to be encrypted.


  It looks like I can do so using a dynamic object but I'd like to be able to select from multiple tables and get back strongly typed Row objects.
Also is there an example of how I can use SqlQuery object to generate a query with multiple joins, select from multiple tables?
Thanks

https://github.com/volkanceylan/Serenity/blob/master/Serenity.Data/Join/Join.cs


UI

I can improve the UI of the website.Please label it.

already many people are working on the ui so i am putting this issue in hold

this issue has been solved, so we are closing this issue.


AttributeError: 'tuple' object has no attribute 'getChain'

Getting this attribute error.
AttributeError: 'tuple' object has no attribute 'getChain'

Environment: Ubuntu 18.04 with ROS Melodic
Robot: UR10e
Script:
import PyKDL as kdl
import kdl_parser_py.urdf as kdl_parser
base_link = 'base_link'
ee_link = 'tool0'
tree = kdl_parser.treeFromParam('/robot_description')
chain = tree.getChain("base_link", "tool0")

The treeFromParam method returns a tuple, so you need:
import PyKDL as kdl
import kdl_parser_py.urdf as kdl_parser
base_link = 'base_link'
ee_link = 'tool0'
ok, tree = kdl_parser.treeFromParam('/robot_description')
chain = tree.getChain("base_link", "tool0")

In the future, please ask questions like this on https://answers.ros.org, which is our centralized place for questions and answers.  Closing this issue.


svelte-routing support

It would be nice if you guys could add support for svelte-routing.

Hey @Alfagun74, given it's Hacktoberfest again, maybe you would like to try implementing svelte-routing support? PRs are truly welcome :heart:


Add init container to the gateway to wait for node readiness

See https://github.com/submariner-io/submariner/pull/3222

I won’t object to this to let the bug fix in quickly, but I think the security context should be reworked, and perhaps we could even have a specific “wait for node readiness” binary.

I agree - it's not ideal for the init container. As you surmised, I added it b/c the entry script failed here:
/usr/local/bin/submariner.sh: line 17: /proc/sys/net/ipv4/conf/all/send_redirects: Read-only file system
Perhaps all we need is ReadOnlyRootFilesystem: ptr.To(false).
Longer term, we could add a “wait for node readiness” binary to the image as you suggest and specify that for the init container command.


TCP server implementation

This implements an event-based tcp server for easier use. This could be a solution for #45
In this commit I only implemented it for the ScriptSender, but it could also
be used (probably with modifications) inside the ReverseInterface.

This implements an event-based tcp server for easier use. This could be a solution for #45

In general I think this is a really good solution and I think the event-based tcp is a good approach. I have tested that it works with the ScriptSender, it works very well and it solves #45.

In this commit I only implemented it for the ScriptSender, but it could also be used (probably with modifications) inside the ReverseInterface.

As you mention I also think that it should be used inside the ReverseInterface. I could look into implementing it in the reverse interface if needed?

As you mention I also think that it should be used inside the ReverseInterface. I could look into implementing it in the reverse interface if needed?

I went ahead and implemented it, but you could test it a bit more, if you'd like.
Currently, stopping the ROS driver with CTRL-C results in a RTDE pipeline producer overflow that I still need to hunt down

I went ahead and implemented it, but you could test it a bit more, if you'd like.

I will test that it works with the reverse interface as well.

Currently, stopping the ROS driver with CTRL-C results in a RTDE pipeline producer overflow that I still need to hunt down

It is related to the pipeline running in the RTDEClient stopping the pipeline, when the object is destroyed, should fix that issue. Below example could be a solution:
RTDEClient::~RTDEClient()
{
  pipeline_.stop();
}

It is related to the pipeline running in the RTDEClient stopping the pipeline, when the object is destroyed, should fix that issue. Below example could be a solution:
RTDEClient::~RTDEClient()
{
  pipeline_.stop();
}

Yep, that does the trick :-)

@urmahp I'm done with implementing this ATM, please go ahead and test it as much as you can :-)
Before merging, I'd like to also refactor the tcp_client a bit more so it is more understandable and introduce unit tests for the server and client. Let me know, if you'd like to participate in one of these.

@urmahp I'm done with implementing this ATM, please go ahead and test it as much as you can :-)

I will be happy to test it.

Before merging, I'd like to also refactor the tcp_client a bit more so it is more understandable and introduce unit tests for the server and client. Let me know, if you'd like to participate in one of these.

I can work on some unit test for the server and client, while testing it.

I have tested that it works with both the ROS driver and the Isaac driver and overall it is working very well.
However I see one issue once in a while, it is not occuring every time, only once in a while.
When stopping the urcap program running on the robot, it seems like the client is not correctly disconnected from the server, because we keep sending data, but there is no client connected. Also the handle_program_state function isn't called.
When playing the program again I get the error that the client is already connected, so that also points towards the client not being disconnected correctly. I have inserted the log output below:
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 73: New client connected at FD 12.
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 85: Robot requested program
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 123: Sent program to robot
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 78: Client at FD 12 disconnected.
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/reverse_interface.h 155: Robot connected to reverse interface. Ready to receive control commands.
Program running: true

ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 305: Sending data through socket failed.
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/reverse_interface.h 168: Connection to reverse interface dropped.
Program running: false

INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 73: New client connected at FD 12.
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 85: Robot requested program
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 123: Sent program to robot
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/script_sender.h 78: Client at FD 12 disconnected.
INFO /home/mahp/git/github/forks/Universal_Robots_Client_Library/include/ur_client_library/comm/reverse_interface.h 155: Robot connected to reverse interface. Ready to receive control commands.
Program running: true

ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 267: recv() failed
ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 305: Sending data through socket failed.
ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 305: Sending data through socket failed.
ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 305: Sending data through socket failed.

Unfortunately I haven't been able to track down the issue completely, but I believe it might have something to do with that the disconnect callback functions isn't called, because the server maybe is in a specific state at the point of disconnect. The error message ERROR /home/mahp/git/github/forks/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 267: recv() failed is only printed once the error occurs.

I'll try to look into it tonight.

Hm, I once hit
[ INFO] [1615925511.466963882]: Client at FD 23 disconnected.
[ INFO] [1615925511.491965322]: Robot connected to reverse interface. Ready to receive control commands.
[ WARN] [1615925514.072904746]: Connection attempt on port 50001 while maximum number of clients (1) is already connected. Closing connection.
[ERROR] [1615925514.225187393]: recv() failed
[ERROR] [1615925514.225742741]: Sending data through socket failed.
[ERROR] [1615925514.233970460]: Sending data through socket failed.
[... more of those]

I finally found a way to reproduce this:

Play the program on the TP
Pause the program on the TP -> Wireshark shows me that the PCs stop exchanging [PSH, ACK] messages, the robot sends two [ACK] packages.
Stop the program on the TP -> ´recv() failed` on the reverse interface. -> This will close the socket connection.
Wireshark shows me that the robot sends a [RST, ACK] package on tcp level.
Play the program on the TP -> Sending data fails. The connection attempt from the robot is declined (closed again immediately) leaving us with no active socket on both ends. I guess, the script hangs in this line as we didn't see the log message "ExternalControl: External control active" on the TP)

Open questions as for now:

Is this different with the current master branch (I assume, the answer is "yes")
Why is it that way?
Where does that [RST, ACK] message come from?
How do we handle this?

Thank you very much @fmauch for looking into the issue and fixing it.
I apologize that I haven't time to look into the unit test yet, but I can look into it today if needed. What did you have in mind with the unit test?
Was it something similar to the test_rtde_client test, testing that a UrDriver object can be created and testing that connection can be established between a robot and the client library or was it to test the tcp_server class you have implemented?

I apologize that I haven't time to look into the unit test yet, but I can look into it today if needed. What did you have in mind with the unit test?

Nothing to apologize.
I'd like to test the complete server structure. Do connects / disconnects get handled correctly? Do the correct callbacks get called? Are messages correctly transmitted? Are all error cases handled properly?
Additionally, the current keepalive implementation is not really satisfying. If we connect to the reverse interface, it will be happy as long as we don't disconnect. We should check whether we actually receive a keepalive signal. We should get a keepalive signal (basically any message currently) from the robot before we send the next message. I'd like to implement this using a unit test that should trigger a disconnect event when the keepalive signal is missing. @urmahp would you like to implement this?

I will start developing some unit test to the server now, I will create a pr to your branch once I have some test. I will look into the keepalive implementation as well.

@urmahp I'll have some time to work on this today and tomorrow. If you didn't start with the keepalive implementation, I'll start doing that.

@urmahp I'll have some time to work on this today and tomorrow. If you didn't start with the keepalive implementation, I'll start doing that.

I haven't started the keepalive implementation.
I have added a PR to your branch on some unit test for the tcp server.

I've created a draft implementation of the keepalive handling here. Let's keep discussions on this there.

@urmahp If you could take another review over the PR that would be really nice.

I will test how it is working and I will also look into the sigpipe error which made one of the tcp server test fail on this build.

I will test how it is working and I will also look into the sigpipe error which made one of the tcp server test fail on this build.

I think, I found the error:
When running the test standalone with output in rare cases (I needed to run it up to  2500 times to trigger) I get this failure:
[ RUN      ] TCPServerTest.client_connections
/home/mauch/robot_folders/checkout/ur_robot_driver_split/catkin_ws/src/Universal_Robots_Client_Library/tests/test_tcp_server.cpp:319: Failure
Value of: server.write(client1_fd, data, len, written)
  Actual: true
Expected: false

I think, that this is the problematic code block:
void TCPServer::handleDisconnect(const int fd)
{
  URCL_LOG_DEBUG("%d disconnected.", fd);
  close(fd);
  if (disconnect_callback_)
  {
    disconnect_callback_(fd);
  }
  FD_CLR(fd, &masterfds_);

 [...]
}

Calling the disconnect_callback before closing the socket might lead to a situation where an application thinks that the socket is closed when it is actually not. Therefore, this check returns true, while it should return false. The actual send command seems to be happily feeding things in and returning success, but this actually results in a SIGPIPE event.
I'll leave the test looping over night and it should not have failed tomorrow morning.

95000 successful tests later I would say that this was indeed the problem.

95000 successful tests later I would say that this was indeed the problem.

Nice thanks for solving the issue.
I have tested that it works, and it is working very well :smiley:
I believe these three variable declaration could be deleted as they aren't used anymore in the UrDriver.
I think that when merging this line should be removed from the ROS driver, else it would log a warning every control cycle, because the ROS driver is still using the script from the resource folder in the ROS driver.

95000 successful tests later I would say that this was indeed the problem.

Nice thanks for solving the issue.

It was me introducing the issue, anyway ;-) Thanks for writing the tests that showed that :-)

I believe these three variable declaration could be deleted as they aren't used anymore in the UrDriver.

Addressed in 587a584

I think that when merging this line should be removed from the ROS driver, else it would log a warning every control cycle, because the ROS driver is still using the script from the resource folder in the ROS driver.

Addressed in https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/pull/346

I cleaned up the branch, from my side this is ready to merge.

I cleaned up the branch, from my side this is ready to merge.

I agree.


Filter by Deceased cases (Feature request)

Hi,
Would be possible to add also deceased cases to show the countries bubbles ?
Congrats for the work done, quite nice especially the plot section

It sure is! I will add it as soon as I get to it :) thanks for the input.

Done!


When excluding .gov and .mil suffixes, look into excluding other countries' equivalents

For example, www.gov.uk. From #79.
See also: #80

Adding .gov.?? and .mil.?? to the comma-separated --exclude string should get most of non-US .gov and .mil equivalents.


Added supabase edge function guides: basic and database webhooks

This has a ton of conflicts from a main merge


XCode 10 incremental build system

The XCode 10 incremental build system can have problems with the R.swift script phase.
So in my case, I have a project in which the R.generated.swift is in the .gitignore.
When the CI build tool checks out the project, the R.generated.swift file does not exist (which is fine).
But as the new build system is incremental, the build might fail, even though the R.swift shell script phase actually runs before the compile phase, as the incremental system doesn't know, that the file will still be generated by the R.swift shell script.
This can be fixed by adding the generated file to the Output Files list in Xcode 10.
The Output Files section should include "${SRCROOT}/R.generated.swift".
If this is added, XCode 10 builds correctly again.
I vote for adding this information to the README, to prevent others from running into the same issue!

Thanks for your comment.
Unfortunately, adding an output file isn't sufficient. With this, subsequent incremental builds won't run the R.swift build step, and the R.generated.swift file won't be updated again until the next clean build.
Further details here: https://github.com/mac-cain13/R.swift/issues/456


[feat] fixed agent_repl

I don't want to create any breaking changes, so I'm creating this PR with my current changes that attempt to fix agent_repl.py. There is still one small bug that prevents it from runnning but in the interest of time this is submitted now.

Hi Kai, I put aios_config.json support back. However, I still think it's very important to support command line args as they are much easier to use for new users.


remove xctool

I’ve had it commented out in the build script for months. Time to make it official.

I can't remember why we used xctool... I this we chose to use it for Travis because it worked better for headless systems. Yeah I think that was it. See #2021. Is it OK that we're using two different testing tools for CI and for builds?
Why did you have it commented out?

I can't remember why we used xctool...

I thought the reason was that the Quicksilver tests involving the GUI would never pass under xcodebuild (even locally).

Is it OK that we're using two different testing tools for CI and for builds?

Actually, I wasn’t thinking about Travis, just the local release builds. I should probably update that file to use a newer Xcode and a different test command. Agree?

Why did you have it commented out?

Because the default on my system is Xcode 8, so xctool would always die. I’d switch to Xcode 7 and re-enable it for actual releases.


cb=gapi.loaded_0 error in IE11

Hi,
i have this error "cb=gapi.loaded_0" in IE11 when i try to sign in with google in my page.
Someone can help me please?
my script:
$("#customBtn").on('click', function() {
gapi.auth2.getAuthInstance().signIn().then(
function(success) {
alert('success')
}
);

Calik here to whatshapp call


No way to determine alias of column in CTE

Hi all, we are trying to determine how to connect the dots between output columns and columns they reference in a CTE that are aliased using the Java version of ZetaSQL
Here's an example query:
WITH
  test_cte AS (
  SELECT
    user_id AS uid
  FROM
    my_table)
SELECT
  uid
FROM
  test_cte

The parsed AST can be seen in this gist: https://gist.github.com/tha23rd/7ac2737cfca9a2580a3ce4726e88c6b0
My question is how we connect the output column "uid" to the column "user_id" in the CTE? Looking at the AST, there's no field for the alias like there is in the high level "outputColumnsList" field.
Thanks!

Short answer is, there is no direct representation of the alias name in the resolved AST.
Follow up question, what is your actual use case?  Why do you want this alias?
Long answer:
Googlesql doesn't guarantee that it preserves intermediate names during resolution.  This will usually be preserved in a referencing column (if it is referenced) as part of a ResolvedColumn.getName(). Howevever, this is considered debugging information, and is not guaranteed to be preserved/stable over time.  On the c++ side, this field is labeled to have no guaranteed value or meaning, but usually contains some useful information.  Only the 'id' is guaranteed to be meaningful, but less so in the specific case of a ResolvedWithRefScan it relies on aligning the column_list of the refercing and referenced scans:
bazel run //zetasql/tools/execute_query -- --mode=resolve  '
WITH
  my_table as (select 1 as user_id),
  test_cte AS (SELECT user_id AS uid, 5 as unused FROM my_table)
SELECT uid FROM test_cte;

Prints out:
QueryStmt
+-output_column_list=
| +-test_cte.uid#4 AS uid [INT64]
+-query=
  +-WithScan
    +-column_list=[test_cte.uid#4]
    +-with_entry_list=
    | +-WithEntry
    | | +-with_query_name="my_table"
    | | +-with_subquery=
    | |   +-ProjectScan
    | |     +-column_list=[my_table.user_id#1]
    | |     +-expr_list=
    | |     | +-user_id#1 := Literal(type=INT64, value=1)
    | |     +-input_scan=
    | |       +-SingleRowScan
    | +-WithEntry
    |   +-with_query_name="test_cte"
    |   +-with_subquery=
    |     +-ProjectScan
    |       +-column_list=[my_table.user_id#2, test_cte.unused#3]
    |       +-expr_list=
    |       | +-unused#3 := Literal(type=INT64, value=5)
    |       +-input_scan=
    |         +-WithRefScan(column_list=[my_table.user_id#2], with_query_name="my_table")
    +-query=
      +-ProjectScan
        +-column_list=[test_cte.uid#4]
        +-input_scan=
          +-WithRefScan(column_list=test_cte.[uid#4, unused#5], with_query_name="test_cte")

So, in WithRefScan we align the column_list with test_cte's (output) column_list we get:
WithEntry.ProjectScan: column_list=[my_table.user_id#2, test_cte.unused#3]
WithRefScan: column_list=test_cte.[uid#4, unused#5]
Thus, we can link together uid#4 -> my_table.user_id#2 because they are both at offset 0 in the two arrays.  Normally ids can be used for such linkage (such as if you rewrite this to use sub-queries rather than WITH).
While you can extract the mapping of the alias name here, it isn't recommended, and cannot be relied on in general.
Documentation of ResolvedWithRefScan
Documentation of c++ ResolvedColumn::name

Hey Matthew!
Thanks so much for the detailed response. To answer your initial question, our goal is to create column level lineage for our tables in BigQuery.
The solution you outlined is exactly what we ended up doing, someone on my team just happened to notice that the indices in the column list were the same :)
With this, we more or less have a working column level lineage solution by traversing the tree and creating an adjacency list for the main set of columns and for each CTE that's present. We then merge these adjacency lists together using the index mentioned above.
The only thing we aren't 100% sure about is how to map our UDFs to Functions in zetaSQL, but I'll open another issue for that. Thanks again for taking the time to respond!!!

@tha23rd Any chance you could share an example?


Add annotation functionality

It would be nice, if it would be possible to add annotations to an image and visualize them similar to here: example stackoverflow. Not sure what the best abstraction for this use-case would be though ✌

This sounds like fun. I will look into it soon!

Features interesting would be: one or more annotation points per frame and size, linewidth and color of the rectangle.

I have implemented an annotation feature in #16 . Do you mind checking it out?
You can find some examples in the examples notebook, but basically it boils down to:
from cvloop import cvloop

annotations = []
for frame in range(20, 51):
    annotations.append([300, 250, frame, {
        'shape': 'RECT',
        'color': (0.3, 0.2, 0.8),
        'line': 4,
        'size': (30, 80)
    }])

cvloop('768x576.avi', annotations=annotations)

Closed with #16 and #17.


0.3.0 release

What does this pull request implement/fix? Explain your changes.
Setup for 0.2.1 release

Decided there are enough changes here to bump the release to 0.3.0 instead of 0.2.1


Tasker support plans?

This app is awesome, and I use it all the time now.
Are there any plans to support Tasker in the near future?

Hi, unfortunately I don't really have time to build new features for it anymore. PRs are welcome though :).

Alrighty, well I'm sure I'll have to learn the Android SDK at some point. Expect a PR then. ;)
If I figure out another way, I'll come back here and post for those who find this.


1.3.3 binary is actually 1.3.1

Hi,
I am having trouble getting the binary for 1.3.3. I have some boards currently running 1.3.3, but when i flash some new boards with the 1.3.3 binary downalod from Github it is actully 1.3.1.
1.3.1 does not seemt to connect to my wifi (and i am not sure about MQTT). I have tried 1.3.7 and this works but drops wifi all the time.
I was hoping sombody here could let me know where to get a cpy of the 1.3.3 binary.
Cheers

hey @nicholh sorry for the delay here, the v1 is outdated and we are working towards releasing a v2.
Meanwhile, you can get the last build from here: https://github.com/esprfid/esp-rfid/actions/runs/3303810816 at the bottom of the page


Industrial Grinder is not able to capture reagents.

Description

When you give the industrial grinder any kind of plant with chemicals, it eats the plant or food but does not capture the chemicals within the plant.
Reproduction

Link Industrial Grinder to level
Flip on
Feed stuff with chemicals.
Be sad you can't easily harvest the 1000x of .5omni within the ambrosia deus.

Screenshots

https://github.com/user-attachments/assets/868c6b71-8c48-4168-8f89-fefcb5d891b5
Additional context

I'm not sure how long this has been broken, but the only recent change to "recyclers" is in #30802 but I'm not really familiar if the Industrial Grinder shares some of the same code.

hmm, this is odd. Let me look into how I made it again

got fixed


Rename early years routes to match the rest of DfE

The names of some of our early years routes don't align well with the rest of DfE - this has caused some confusion for users.

 Prototype: rename early years routes


Change the YAML header logic

Every file has to contain a YAML header in order to be able to be recognized by pico.
---
Title: abc
---

Pico only sees it as a header, and doesn't render it in the webpage.
But almost all markdown editors don't hide the YAML header. When I try to edit my pico .md file in my macbook, the header gets rendered. When I try to preview it, the first few lines get wasted by YAML header, instead of the actual content. And it's so annoying. I thought the purpose of using plain file instead of database is that my data and files don't get limited by one program.
Maybe make the header into Markdown Comment like this:
<!--
Title: abc
-->

Or make the YAML header into the Markdown Comment like this:
<!--
---
Title: abc
---
-->

Or offer an option to not use header while also being able to be recognized by pico. Just let the file name be the Title

YAML Front Matters are a very wide-spread concept, if a Markdown editor isn't capable of at least ignoring it, I would consider this an issue with the Markdown editor. Anyway, you can use the C-style block comment syntax as an alternative:
/*
Title: abc
*/