Live Tweet Text Validation (character count)

When the user enters a new tweet, every key-down must cause that a javascript function is triggered to evaluate if the tweet is valid. A tweet must comply with twitters character counting rules as defined in https://dev.twitter.com/overview/api/counting-characters
According to https://dev.twitter.com/overview/t.co every link is 20 characters long.
The validation process must:

identify all links within a text
count all characters in a text without link texts
compute the characters without links plus number of links times 20

After the computation of user characters, the input modal displays in green font the remaining number of available characters or in red colour the number of characters that exceed 140 - with preceded minus sign.

This is a nice package that could help us for this:
https://www.npmjs.com/package/twitter-text


Powering way too much damn redstone at once in quick secession crashes the game

why the hell would you do this?
crash-2021-02-15_19.49.33-client.txt

latest.log
69? that's hot.

Not funny past me, nor did I laugh also this is not a SU problem, leave that to the Mojang Developers.


force removal of aodh and ceilometer conf files

exits 0 when the file is not found, which is just fine here
Fixes https://github.com/rcbops/rpc-openstack/issues/842
(cherry picked from commit 0dd4f9ff80fe3fa93deb5c98f8fad1fb29bcb6a3)

recheck - jenkins needs a kick for PRs to branches...

A simple fix. :+1:

Passes my tests...

fixes #842

-1;
Not sure we actually need this - if the conf.d files/groups are not defined, they shouldn't be created. So removing these files actually creates drift between rpc-openstack/OSA that's not actually needed.

+1 for this backport.

soo, I'm not hitting the merge button because it's my commit.  This has two :+1: is anyone going to hit it?

Merged.
--
Tom Cameron

From: Matthew Thode<EMAIL_ADDRESS>Sent: Thursday, February 25, 2016 14:46
To: rcbops/rpc-openstack
Cc: Tom Cameron
Subject: Re: [rpc-openstack] force removal of aodh and ceilometer conf files (#844)
soo, I'm not hitting the merge button because it's my commit. This has two [:+1:]  is anyone going to hit it?

Reply to this email directly or view it on GitHubhttps://github.com/rcbops/rpc-openstack/pull/844#issuecomment-188948801.


Update Child Records: How to use the actual record as value to be set

Hi Damian,
please help me on #47: I want to walk through all sub accounts and set the customized lookup field [new_companygroupid] with the actual account which in this case is the parent account.
In Update Child Records some things are very clear:

Parent Record URL = {Record URL (Dynamic)(Account)}
Relationship Name = account_parent_account
Child Field Name to Update = new_companygroupid

But how can I use the "actual account" as value to be set? All I tried went wrong.
I use Dynamics 2016  / <IP_ADDRESS>5, Workflow Tools <IP_ADDRESS>

I think I didn't test it with lookups fields.
maybe you can:

try to pass the account in the value to set.
create a string field on children, where you change any field, and then create another workflow in ths child on update of this field, and there you can update this custom lookup

thanks

Hi Demian,
many thanks for your reply.
To pass the account in the value to set doesn't work, I tried it. And the workaround with an additional field to trigger workflows is not the way I want.
Perhaps you will test the function with lookups in the next days? That would be great.
Best regards, Thomas

Running into same issue.  Can't cast a string as an entityreference.  Any progress on getting this to work?

Hi Demian,
These are the parameters that I'm passing:
Parent Record URL |  {Record URL(Dynamic)(Property/Account)} |
Relationship Name | lead_parent_record
Parent Field Name |
Value to Set | Test
Child Field Name to Update | Address1_City
Update only Active |True
I am getting the following message;
"The requested record was not found or you do not have sufficient permissions to view it."
Could not find attribute for entity with objecttypecode: 4 , entity id: dc6574cb-92ce-446c-a5d6-885a75107d52
Plugin Trace:
[msdyncrmWorkflowTools: msdyncrmWorkflowTools.UpdateChildRecords]
[msdyncrmWorkflowTools (<IP_ADDRESS>): Update Child Records]
Load CRM Service from context --- OK
ObjectTypeCode=1--ParentId=3518a12b-b95d-490b-89f7-e28c268c1074
RelationshipName=lead_parent_account--_ParentFieldNameToUpdate=
_ValueToSet=Test--_ChildFieldNameToUpdate=Address1_City
Error Message:
Unhandled Exception: Microsoft.Crm.CrmException: Could not find attribute for entity with objecttypecode: 4 , entity id: dc6574cb-92ce-446c-a5d6-885a75107d52
at Microsoft.Crm.Sandbox.SandboxCodeUnit.ProcessException(Exception originalException, IExecutionContext context, SandboxClient client, SandboxCallTracker callTracker, Boolean isSafeToRetry, DateTime performanceExecutionStartTime, SandboxTracker tracker, Guid parentExecutionId, CrmException& crmException, String& assemblyContents)
at Microsoft.Crm.Sandbox.SandboxCodeUnit.Execute(IExecutionContext context)
at Microsoft.Crm.Sandbox.SandboxCustomActivity.Execute(IServiceProvider serviceProvider)
at Microsoft.Xrm.RemotePlugin.CrmProvider.RemotePlugin.Execute(IServiceProvider serviceProvider)
at Microsoft.Crm.Workflow.Services.ProxyCustomActivity.Execute(CodeActivityContext executionContext)
I have tried a number of different options, but I can't get this to work. Any idea what would cause this?

I hope Demien does not mind me suggesting this solution for lookups.
I was unable to ever populate lookups via a string until I found another solution called TCS Tools.
This works brilliantly with Dynamics 365 Workflow Tools.

Hi all, I'll add this to my backlog to include a string field on parent to fill a child lookups records.
thanks for the idea...

Hi Demian,
do you have an idea until when you can provide a working solution for this? I Need it :-)
Many thanks in advance, Thomas


Revert PR #980 temporarily, while we do further work on it

Description
We're seeing an elevated number of 5XX errors in production due to the auth disable that was added in #980.

Motivation and Context
Going to disable this temporarily while we work out how we want to move this forward.
I did a git revert the PR and then modified it to keep the migration and new models in the code base, since they have already been rolled out to production. This just reverts the code that actually records and processes the auth failures.
How Has This Been Tested?

Running unit tests locally.

Checklist

[X] I have updated the documentation accordingly.
[X] All new and existing tests passed.

@RishiDiwanTT I'll wait for you to take a look at this, then get it rolled out tomorrow if it looks okay to you.

While this looks fine as a code commit, do we want to keep recording the errors in the DB as a form of downtime analysis of the third party APIs, while keeping the threshold number high (like 100k errors) so it never truly goes down?
This way we can run some statistical analysis on the recorded numbers to know what the right numbers are.

I think we can pull the data we need for analysis from our existing logs, so I'm going to merge this one and make a new ticket to do some analysis and revisit.


Search in BSD-style terminfo databases

On certain platforms, the terminfo database doesn't use the ASCII first character for the lookup, but instead the hexadecimal representation of its ordinal number.
This checks first for the ASCII character (as it originally did) and then for the hex-version if the ASCII lookup fails.

@Qix- It looks good and thankyou for the PR. I'm a little busy atm but I'll review and try to fix the build by tomorrow :)

Waiting for some input on - https://github.com/mesonbuild/meson/issues/1690


Automatically set journal entries permissions based on the permissions of the kanka entity

If the kanka entity is set to public or player read, then set the permission of the journal entries to "observer" for all players.

I'll have to look into this, I like the idea, though I'd probably hide the feature behind an optional setting (as I'd rather err on the side that hides info from a player than show them anything they shouldn't see by accident).


testing E2E

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Describe your test plan
Write there any instructions and details that should be tested during the QA.

It seems that this PR was opened only to trigger a test CI job but didn’t aim at being merged.


Wrong address size populated for win32 x86 process

Hello!
Using memlow-ffi and reading x32 process inside Win10x64 VM, so every pointer is an actually a DWORD(uint). So reading a c++ structure object with pointers, which are being read by memflow read_raw as x32 pointers (ulong) so it is impossible to normally read a structure data after any pointer inside a structure.
Could someone please add a fix or feature for supporting reading pointers as x86? I saw there is a feature for original Rust implementation for reading x32 addresses like "read_addr32", but probably it is only for an address or it supports the structures too, nit sure.
Please add possibility for reading pointers as x32 for a pointer type if reading into a structure.
Or at least please point me to the place where it could be added/updated, maybe I could contribute and add this.
Thanks!

Hey there, thanks for your first issue! Im not sure if i understood the request correctly though. The read_addr32 and read_addr64 as well as read_addr_arch functions are still present. However they are not exported to the C layer due to constraints in the implementation. You can easily re-implement them in your C code however by reading a uint32_t or uint64_t respectively and then put this into an address.
They are currently implemented like this: https://github.com/memflow/memflow/blob/99889b649f9c71120fa99561acce21b0a7414e93/memflow/src/mem/memory_view/mod.rs#L222
In case you want to read into a struct directly then of course pointers will not be sufficient as they the struct will have the pointer widths of the architecture you compile it for. To circumvent that you could for example either replace the pointers in the structs with uint32_t values or uint64_t values respectively and then read the struct they are pointing to.
Having raw points in a struct that you read with memflow will point to invalid memory anyways (in the context of your application). Currently there is no way to resolve raw pointers in a way that would work for this use case.
However in Rust we support 2 distinct pointer types that you can use in structs, here is an example:
#[repr(C)]
#[derive(Copy, Clone, Pod)]
pub struct Prop {
    pub table: Pointer64<Table>, // table_t *
    pub name: Pointer64<ReprCString>, // const char *
}

#[repr(C)]
#[derive(Default, Copy, Clone, Pod)]
pub struct Table {
    //
}

// ...

let virt_mem = &mut process.forward_mut();
let prop_name = prop.name.read_string(virt_mem)?.to_string();

// ...

let mut table = Table::default();
prop.table.read_into(virt_mem, &mut table)?;

Hope that helped.

@ko1N Thank you for the clarification!
Unfortunately I have to stick to the C implementation of memflow because I don't want to rewrite all the C structures, which are provided by the app SDK, which is written in C++ and there are a lot of classes/structures/types....
"In case you want to read into a struct directly then of course pointers will not be sufficient as they the struct will have the pointer widths of the architecture you compile it for" I have thought about that, but this is what I have got where there was a try to build with the x32 arch ("-m32" flag in Cmake file):
/usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(serde_json-33b935d647617e68.serde_json.efd370de48e8361e-cgu.04.rcgu.o)' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(serde_json-33b935d647617e68.serde_json.efd370de48e8361e-cgu.11.rcgu.o)' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(coarsetime-be883958c8d90051.coarsetime.2930bd6dd2e35a34-cgu.0.rcgu.o)' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(coarsetime-be883958c8d90051.coarsetime.2930bd6dd2e35a34-cgu.1.rcgu.o)' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(compiler_builtins-1088ecd7666b60f4.compiler_builtins.3b448df83059ed2c-cgu.007.rcgu.o)' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file /home/alex/repo/dma/lib/memflow/target/release/libmemflow_ffi.a(time-e8f3324299bc6e2b.time.d1c83796c831e0dd-cgu.03.rcgu.o)' is incompatible with i386 output
Is it possible to have x32 memflow-ffi build?

The current solution would be to manually build memflow-ffi as a 32bit target.
You could try compiling the main repo for i686. Something like this could work:
rustup target add i686-pc-windows-msvc
cargo build --target i686-pc-windows-msvc --release --all-features --workspace

It showed this error:
alex@fedora:~/repo/memflow$ cargo build --target i686-pc-windows-msvc --release --all-features --workspace
warning: unused #[macro_use] import
--> memflow/src/lib.rs:232:1
|
232 | #[macro_use]
| ^^^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default
warning: memflow (lib) generated 1 warning
Compiling memflow-ffi v0.2.0 (/home/alex/repo/memflow/memflow-ffi)
error: linker link.exe not found
|
= note: No such file or directory (os error 2)
note: the msvc targets depend on the msvc linker but link.exe was not found
note: please ensure that Visual Studio 2017 or later, or Build Tools for Visual Studio were installed with the Visual C++ option.
note: VS Code is a different product, and is not sufficient.
error: could not compile memflow-ffi (lib) due to 1 previous error
Does this build expects WinOS to be running on? I am using Fedora as host Os and Win10 as guest Os
I have also tried to run with target "stable-i686-pc-windows-gnu", but it showed even more compilation errors

Then you probably want to use something like i686-unknown-linux-gnu instead. Please refer to the rustup docs on how to setup different targets: https://rust-lang.github.io/rustup/cross-compilation.html

Since this issue is quite old im gonna close it. Feel free to re-open if you still have questions.


Add tsapi Au test.  Initially just testing TSHttpTxnEffectiveUrlStringGet() function.

No, I did time it, Jenkins times he completion of every job, it’s part of the job results

Does that mean you owe Jenkins sushi?


Add html reporter

Alternative approach would be to allow extensible reporters similar to rulesets.
Addresses #45

@mcassiano let me know what you think. One question I have though is if this will require anyone applying this plugin to their gradle build to add jitpack to their buildscript repositories 🤔

Looks good! I didn't know you'd need to use it directly like this. I think I can arrange publication to jcenter!

Excited to see this merged and the next version of kotlinter-gradle published! Thanks, guys :)

I requested for ktlint-html-reporter to be included in jCenter! Now we wait

Perfect, thank you!
I didn't need to use it directly this way. I could have made it extensible, but I think this will be easier for most users. Might still go the other way in the future if there's demand for it.


Changed SDK to support Java 8

Related Issues
Fixes https://github.com/descope/etc/issues/4871
Description
Added support for Java8 by moving to Apache HttpComponents HttpClient.
Must

[ ] Tests
[ ] Documentation (if applicable)

@slavikm build fails on 8 ...


kubectl simple rolling update fails

kubectl rolling-update frontend --dry-run=true --image=eu.gcr.io/<project>/<image> fails with error: may not update fields other than container.image
Full Error:
Error updating pod (Pod "frontend-q23wc" is invalid: spec: invalid value '{Volumes:[{Name ... ... ... HostNetwork:false ImagePullSecrets:<nil>}': may not update fields other than container.image), retrying after 3 seconds

Item 5 on this list looks like other people have encountered this too: https://github.com/GoogleCloudPlatform/kubernetes/issues/10992

I will look into this today.

Ok, this appears to be a problem in version skew.
kubectl 0.20.1 doesn't work with rolling-update and version = v1.
The work around is adding --api-version=v1beta3
e.g.
kubectl rolling-update --api-version=v1beta3 nginx --image=redis


Git glow finish feature delete branch without confirmation

Reproduction :
Create a branch 123
Git flow finish feature 123
Branch is lost

It's the purpose of this command


Helios: get uplc

littercoin minting module
when called via cli, passing parameters (see here), it returns a Json object with a status message and a cborHex (L142)

Details

img source

script.hl
helios.Program.new
Program.compile
uplc

Originally posted by @aleeusgr in https://github.com/aleeusgr/potential-robot/issues/2#issuecomment-1475710597

https://github.com/aleeusgr/potential-robot/blob/refactor/tests/helios-compile.test.ts


DBZ-2795 Document CDB vs non-CDB configuration nuances

https://issues.redhat.com/browse/DBZ-2795

Ah, that's perfect, I had meant to ask about this for some time. Do we have tests for both modes? When working on this long time ago, I was under the impression you only can work with the CDB model nowadays?

Do we have tests for both modes?

Unfortunately at the moment, our test suite explicitly uses the CDB mode; however, we could look at adding a Maven profile that we could use similar to the logminer one to toggle non-CDB mode for when we build the connector configs.
As for Oracle installation itself, Oracle 12 will always install PDB support (CDB mode).  I wouldn't think that necessarily would impact the connector as its really about where objects get created.  In theory, a profile, perhaps some documentation updates about configuration for non-CDB, followed with some test tweaks should be all that's needed.
I logged DBZ-3154.


KAFKA-9541:Flaky Test DescribeConsumerGroupTest#testDescribeGroupMembersWithShortInitializationTimeout

https://issues.apache.org/jira/browse/KAFKA-9541
Occasionally the captured exception is DisconnectedException instead of TimeoutException. That might be due to an unexpected long pause that caused the node disconnection.
More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@hachikuji  Please review the patch. Thanks.

Could we catch the disconnected exception and retry for timeout exception, so that the test could fail on timeout eventually?

Thanks for the PR. We fixed this with a different approach here: https://github.com/apache/kafka/commit/2df7ea5a4a43920ae1ac8a259f6f69846011eda7. Basically we changed KafkaAdminClient so that it raises TimeoutException consistently. I will go ahead and close this. Please reopen if this was a mistake.


Is the plan to support fabric1.21 ？

Is the plan to support fabric1.21 ？

I wasnt planning on it, but I can port this to Fabric fairly easily.

thanks

I have ported this to fabric, forge, and updated neoforge.


Add another Xbox One controller mapping for macOS

This PR adds a controller mapping for the Xbox One controller that I'm using on macOS as it was not recognized without this change.

Thanks. I actually pull the mappings from https://github.com/gabomdq/SDL_GameControllerDB, which I noticed you created a PR there too.


[Unsupported] Installing node-sass 3.13.1 with Node 8

03:31:13 + node -v
03:31:13 v8.16.2
03:31:13 + npm -v
03:31:13 6.4.1
Always failing when i run ionic app in jenkins server
03:35:21 + npm i
03:35:38 npm WARN deprecated<EMAIL_ADDRESS>angular-cli has been renamed to @angular/cli. Please update your dependencies.
03:35:39 npm WARN deprecated<EMAIL_ADDRESS>Possible security and integrity issues resolved in version 0.4.0
03:35:43 npm WARN deprecated<EMAIL_ADDRESS>One of your dependencies needs to upgrade to fsevents v2: 1) Proper nodejs v10+ support 2) No more fetching binaries from AWS, smaller package size
03:35:46 npm WARN deprecated<EMAIL_ADDRESS>Use uuid module instead
03:35:46 npm WARN deprecated<EMAIL_ADDRESS>ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
03:35:46 npm WARN deprecated<EMAIL_ADDRESS>Please replace with usage of fs.existsSync
03:35:47 npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
03:35:48 npm WARN deprecated<EMAIL_ADDRESS>This module relies on Node.js's internals and will break at some point. Do not use it, and update to<EMAIL_ADDRESS>03:35:48 npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
03:35:52 npm WARN deprecated<EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
03:36:01 npm WARN deprecated<EMAIL_ADDRESS>Please replace with usage of fs.existsSync
03:36:04 npm WARN deprecated<EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
03:36:10 npm WARN deprecated<EMAIL_ADDRESS>This module is no longer maintained, try this instead:
03:36:10 npm WARN deprecated   npm i nyc
03:36:10 npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
03:36:12 npm WARN deprecated<EMAIL_ADDRESS>This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
03:36:12 npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
03:36:12 npm WARN deprecated<EMAIL_ADDRESS>This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
03:36:12 npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
03:36:12 npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
03:36:13 npm WARN deprecated<EMAIL_ADDRESS>This module is no longer maintained, try this instead:
03:36:13 npm WARN deprecated   npm i nyc
03:36:13 npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
03:36:13 npm WARN deprecated<EMAIL_ADDRESS>gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
03:36:14 npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
03:36:29
03:36:29 ><EMAIL_ADDRESS>install /Users/iosapp_test1/jenkins/workspace/ProcurementAppFinalQABuild-IOS/node_modules/angular-cli/node_modules/node-sass
03:36:29 > node scripts/install.js
03:36:29
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 8 but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 8 but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 8 but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
03:36:31
03:36:31 npm ERR! file sh
03:36:31 npm ERR! path sh
03:36:31 npm ERR! code ELIFECYCLE
03:36:31 npm ERR! errno ENOENT
03:36:31 npm ERR! syscall spawn sh
03:36:31 npm ERR<EMAIL_ADDRESS>install: node scripts/install.js
03:36:31 npm ERR! spawn sh ENOENT
03:36:31 npm ERR!
03:36:31 npm ERR! Failed at the<EMAIL_ADDRESS>install script.

Node-sass 3.13.1 is too old to run on Node 8, upgrade your node-sass or downgrade Node if you need to use that version


ivr module support?

i installed the ivr module and uploaded a custom recording, but i can't get it to play.  when asterisk answers the call, it just goes to silence and the ivr doesn't actually work...is there any way to get the ivr module working with this image?

Hi Matt,
I haven't experienced such an issue. In fact on Friday was as recent that I had used the IVR module on our production system. This goes a bit out of the scope of the Docker image and more so of the FreePBX support, but I can give a few hints or assumptions as I'm just guessing here as I'm not sure exactly what has been configured.

Try using WAV or SLN for the uploaded file
Try reading the asterisk full logfile when making an incoming call to see whats actually happening, it should in detail list out what announcement it is playing - and if an error, should let you know.
Try using a different SIP client to test your incoming call (7777)
Could it be something with your networking causing the error?

Good luck!

what confused me though is that if i look in the web gui under system recordings, i can play the recording just fine...so it is in the system and doesn't appear to be corrupted.  i just can't get it to play when asterisk actually answers the call and tries to go thru the IVR...it also doesn't seem to accept any of the IVR inputs.  i only have one (press 1 to go to the main extension), but nothing happens no matter how many times i press 1...

[2018-10-29 15:46:46] DEBUG[5085][C-00000002]: media_cache.c:252 ast_media_cache_retrieve: Failed to obtain media at 'custom/no-solicitors'
the file is there, though.  i can see it...and like i said, it plays through the GUI.

it's not just custom recordings, it seems it won't play ANY recordings. even system ones.
unless i'm doing something wrong, this makes no sense to me.  i have it set up exactly the same as i did in my vm, but it worked there and i can't for the life of me get it working with the docker image.

@tiredofit  any ideas based on my additional info?  i appreciate you trying to assist, i don't see how this can be a freepbx issue though unless i just have something configured wrong...but then i'm just using your default config.  this worked when i created a vm with the latest freepbx distro image, but does not work in the docker image.

Take a peek inside the container in /var/lib/asterisk/sounds/en/custom just to make sure you have the file in there. I wonder if it may help if you convert to a different format. What was your source format for uploading?
The thing that looks a bit off is that there is no extension on your file.

Just thinking a bit more about this, how are you accessing the system? By an internet trunk via a POTS / Mobile phone? Through a soft phone? I spoke to one of my systems guys and he has not seen any issues recently with bad updates from FreePBX for their IVR module. We are seeing issues with the Pinsets module in the past month, but IVR has been good.

POTS, connected via an obi110.
On Tue, Oct 30, 2018, at 12:45 PM, Dave Conroy wrote:

Just thinking a bit more about this, how are you accessing the system?
By an internet trunk via a POTS / Mobile phone? Through a soft phone?
I spoke to one of my systems guys and he has not seen any issues
recently with bad updates from FreePBX for their IVR module. We are
seeing issues with the Pinsets module in the past month, but IVR has
been good.> — You are receiving this because you authored the thread. Reply to
this email directly, view it on GitHub[1], or mute the thread[2].

Links:

https://github.com/tiredofit/docker-freepbx/issues/30#issuecomment-434442825
https://github.com/notifications/unsubscribe-auth/AARonw2HTgWKZxJfYwiGb6h7ovb8CWsdks5uqKxagaJpZM4X-qjt

also of note: 1) the files are there, i can see them in the directory.  and 2) this also seems to happen even with the default system sounds.

That is strange. So it cancels out any weirdness with NAT that I was sort of hoping to uncover.
Any possibility you can roll back your IVR version to a previous version? I believe you can in Module Admin select IVR and try a previous version.
We are using: IVR 14.04, Announcements (which I believe also is suspect) <IP_ADDRESS>


New version: LyX.LyX version <IP_ADDRESS>

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.
Resolves: https://github.com/microsoft/winget-pkgs/issues/145500

Automatic Validation ended with:
(Automated response - build 870.)

@stephengillie, any ideas of what can be done here?

It does say this on the website next to the download section "NOTE: Before you install LyX on Windows, you need to install a TeX distribution. For more information on how to do this, please see this page on the LyX wiki."

I tried with TeXstudio as a dependency, which doesn't install LaTeX, but also depends on it. It hinted to use MiKTeX. Unfortunately, this didn't let the install complete, only changed errors:

Did you try with TeXLive?

Automatic Validation ended with:

2024-03-22 09:13:43.390 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFAC2A4C11F: (caller: 00007FFAC27D8D6F) LogHr(1) tid(16e8) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFAC2952B08: (caller: 00007FFAC29FBC20) Exception(1) tid(16e8) 8A15005E ]
2024-03-22 09:13:43.390 [REPO] Failed to open available source: msstore
2024-03-22 09:13:51.201 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFAA445C11F: (caller: 00007FFAA41E8D6F) LogHr(1) tid(15cc) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFAA4362B08: (caller: 00007FFAA440BC20) Exception(1) tid(15cc) 8A15005E ]
2024-03-22 09:13:51.201 [REPO] Failed to open available source: msstore
2024-03-22 09:13:15.530 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!6974535B: (caller: 69641A80) LogHr(1) tid(1df0) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!6978B5DD: (caller: 698212BF) Exception(1) tid(1df0) 8A15005E ]
2024-03-22 09:13:15.530 [REPO] Failed to open available source: msstore
2024-03-22 09:13:22.985 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!548C535B: (caller: 547C1A80) LogHr(1) tid(4b0) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!5490B5DD: (caller: 549A12BF) Exception(1) tid(4b0) 8A15005E ]
2024-03-22 09:13:22.985 [REPO] Failed to open available source: msstore
2024-03-22 09:13:24.182 [CLI ] No suitable installer found for manifest MiKTeX.MiKTeX with version 24.1

(Automated response - build 873.)

2024-03-22 09:13:24.182 [CLI ] No suitable installer found for manifest MiKTeX.MiKTeX with version 24.1

I believe this is from the x86 install, as our x86 validations are performed on 32-bit OSes, and MiKTeX.MiKTeX only has an x64 version.

Automatic Validation ended with:

2024-04-06 05:34:47.641 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFC8D99C11F: (caller: 00007FFC8D728D6F) LogHr(1) tid(1b94) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFC8D8A2B08: (caller: 00007FFC8D94BC20) Exception(1) tid(1b94) 8A15005E ]
2024-04-06 05:34:47.641 [REPO] Failed to open available source: msstore
2024-04-06 05:34:56.234 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFC76E2C11F: (caller: 00007FFC76BB8D6F) LogHr(1) tid(1534) 8A15005E     Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFC76D32B08: (caller: 00007FFC76DDBC20) Exception(1) tid(1534) 8A15005E ]
2024-04-06 05:34:56.234 [REPO] Failed to open available source: msstore

(Automated response - build 876.)

might have to forget about this package then


Centering in limits

Latex centers subscripts in displayed limits as, e.g.,

MathJax centers subscripts in limits somewhat to the right of where they should be

The examples come from
https://cdi2tp.math.tecnico.ulisboa.pt/texto/7

OK, I finally tracked this down.  It turns out to be a rather complex interaction between the fast preview, the assistive extensions, and some code that tries to handle special cases of MathML spacing when TeX spacing is being used.
The easiest fix for now is probably to add
MathJax.Hub.Register.StartupHook("mml Jax Ready", function() {
  MathJax.ElementJax.mml.mo.prototype.useMMLspacing = 0x03;
})

to your configuration script for MathJax.  That will disable the MathML spacing that is causing the issue.

Thanks! It works perfectly. Will a more permanent fix be in version 3?

The MathML spacing issue that is at the heart of the problem is handled differently in v3, and there is no fast preview, so it should not be something that will affect version 3.

Great! Closing...

I'm reopening the tracker.  I'd still like to fix it for v2.

==> In testsuite
MathMLToDisplay/issue1997.html


Cannot read properties of undefined (reading 'dragDisabled')

Go to https://addonsv23.flowingcode.com/twincolgrid or https://addonsv24.flowingcode.com/twincolgrid, and inspect browser console. Vaadin Grid error appears.

Demo seems to work fine despite the error.
Issue already reported at Vaadin https://github.com/vaadin/flow-components/issues/5177.

Seems that issue was fixed and released for Vaadin 24.2.0.alpha4 but not yet on 23.3.

The fix was released on Vaadin version 23.3.18 also.


Hashtables resulting from ConvertFrom-JSON -AsHashtable have case sensitive keys

Steps to reproduce
@{"test"=1}.containsKey("Test")
True

("{""test"":1}" | convertfrom-json -AsHashtable).containsKey("Test")
False

Expected behavior
both should return true and keys should not be case sensitive

Actual behavior
keys from convertfrom-json -ashashtable are case sensitive

Environment data

> $PSVersionTable
PSVersion                      6.1.0-preview.1
PSEdition                      Core
GitCommitId                    v6.1.0-preview.1
OS                             Microsoft Windows 10.0.17666
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

@strawgate Case sensitivity is by design to accommodate case sensitive key names:
{
  "key1": "value1",
  "KEY1": "value2"
}

This is documented in -AsHashtable fdocumentation:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-6#optional-parameters

If the JSON contains a list with keys that only differ in casing. Without the switch, those keys would be seen as identical keys and therefore only the last one would get used.

Case sensitive hashtables are not the norm elsewhere --
group-object -AsHashTable does not produce case sensitive hashtables and neither does @{} with group-object being the reference for justifying the behavior and flag that was used.
I guess i'll leave this as a fun warning to anyone else using this cmdlet
$test1 = @{"Test"=1} | convertto-json | convertfrom-json -ashashtable
$test1.containsKey("test") # False

$test2 = @{"Test"=1}
$test2.containskey("test") # True

Case sensitive hashtables are not the norm elsewhere

Yes, but -AsHashTable  on convertfrom-json was implemented specifically to address the issue of case sensitive key names among other issues. It's by design and documented as such.
It probably should have been implemented as case insensitive by default with an option for case sensitive.

Referencing the original PR: https://github.com/PowerShell/PowerShell/pull/5043


chore(main): release 0.0.45

:robot: I have created a release beep boop
0.0.45 (2024-11-22)
Miscellaneous Chores

allow  to return undefined (5c1b6a7)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.0.45
:sunflower:


image-based gadgets: Gadget testing considerations

Some gadgets implement unit tests. Those tests heavily rely on the Tracer (tracer.go) implementation of each gadget. Image-based gadgets don't have a tracer implementation, such logic is generalized and part of the core of Inspektor Gadget, hence implementing unit tests for them is not trivial. We should provide some helper functions to help gadgets developers with this task:

A package that runs a gadget and returns the events it captures. Probably the same (or very similar) to the one proposed in https://github.com/inspektor-gadget/inspektor-gadget/issues/2021.
Logic to emulate generation of events from containers: https://github.com/inspektor-gadget/inspektor-gadget/blob/v0.20.0/internal/test/runner.go
Logic to match events: https://github.com/inspektor-gadget/inspektor-gadget/blob/v0.20.0/internal/test/helpers.go

LFX

Hello, I am very interested in this project and would like to contribute in this season of LFX;)

Hi @mauriciovasquezbernal I'd love to contribute to this during this LFX term. Are there any resources to go through and any pre-tests for applying?


⚠ Bofrost.at has degraded performance

In c3de4d7, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1346 ms

Resolved: Bofrost.at performance has improved in 43f5996 after 56 minutes.


is there a API to printf vector?

Hi, I was finding a library to printf a vector, the cpp code like this:
Var v1(1), v2("aaa");
std::vector<Var> v = {v1, v2};
some_printf("%s %d", v);

I think the API can implement after modify some code in this repo, can you add this feature? or tell me where should I modify the code
thank you

Hello @esrrhs ,
Please note that this is a C language library, not C++. It does not recognize any C++ features. To print vectors or other C++ ranges, you can using C++'s std::print() function:
#include <vector>
#include <print>

int main() {
  auto v = std::vector<int>{1, 2, 3};
  std::print(std::cout, "{}", v);
}

or, if you compile your program with an older version of the  C++ standard, use the fmt library for the same effect:
#include <vector>
#include <fmt/ranges.h>

int main() {
  auto v = std::vector<int>{1, 2, 3};
  fmt::print("{}", v);
}


RuntimeError: can't start new thread

Well, it seems like there is an error and I don't know what I should do.
My os is centos7.9
[root@iZ2zedlcj4rmyxonj7ks6wZ django-cms-quickstart]# docker-compose build web
Building web
Step 1/6 : FROM python:3.9
---> 49d20c6af9a6
Step 2/6 : WORKDIR /app
---> Using cache
---> 462b8ea25057
Step 3/6 : COPY . /app
---> Using cache
---> 11c7a1963625
Step 4/6 : RUN pip install -r requirements.txt
---> Running in f3bda0017904
Collecting asgiref==3.7.2
Downloading asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting boto3==1.14.49
Downloading boto3-1.14.49-py2.py3-none-any.whl (129 kB)
ERROR: Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
return func(self, options, args)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 419, in run
requirement_set = resolver.resolve(
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
result = self._result = resolver.resolve(
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria
if not criterion.candidates:
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py", line 151, in bool
return bool(self._sequence)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in bool
return any(self)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
candidate = func()
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 297, in init
super().init(
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in init
self.dist = self._prepare()
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 231, in _prepare
dist = self._prepare_distribution()
File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 491, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 536, in _prepare_linked_requirement
local_file = unpack_url(
File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 166, in unpack_url
file = get_http_url(
File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 107, in get_http_url
from_path, content_type = download(link, temp_dir.path)
File "/usr/local/lib/python3.9/site-packages/pip/_internal/network/download.py", line 147, in call
for chunk in chunks:
File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py", line 52, in _rich_progress_bar
with progress:
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/progress.py", line 1169, in enter
self.start()
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/progress.py", line 1160, in start
self.live.start(refresh=True)
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/live.py", line 132, in start
self._refresh_thread.start()
File "/usr/local/lib/python3.9/threading.py", line 899, in start
_start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread
[notice] A new release of pip is available: 23.0.1 -> 23.2.1
[notice] To update, run: pip install --upgrade pip
ERROR: Service 'web' failed to build: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 2

Most likely your hardware is out of memory. It's likely an issue that is connected to docker, not to this project. Please reopen this issue once you have additional information that would help us to support you.


multi_gpu_model on wgan model problem

I'm trying to train a simple GAN on GPU with Keras. I verified that the code runs with CPU on my laptop. Then, I added multi_gpu_model as per below to enable it to run on a set of GPUs. However, I am getting the following error:
RuntimeError: ('The name "Discriminator" is used 2 times in the model. All layer names should be unique. Layer names: ', ['input_3', 'input_4', 'lambda_3', 'lambda_4', 'lambda_5', 'lambda_6', 'model_3', 'Discriminator', 'Discriminator'])
The error seems to suggest that because I'm calling the Discriminator model multiple times, the name of the layers overlap. However, it is unclear to me how I can get around this problem. For your convenience, the full code is provided below:
from __future__ import print_function, division

from keras.datasets import mnist
from keras.layers import Input, Dense, Reshape, Flatten, Dropout
from keras.layers import BatchNormalization, Activation, ZeroPadding2D
from keras.layers.merge import _Merge
from keras.layers.advanced_activations import LeakyReLU
from keras.layers.convolutional import UpSampling2D, Conv2D, Convolution2D, Conv2DTranspose
from keras.models import Sequential, Model
from keras.optimizers import Adam, RMSprop
from keras.utils import multi_gpu_model

import keras.backend as K
from optimizer import optimAdam
from functools import partial
# import inception_score

import _pickle as cPickle
import matplotlib.pyplot as plt
import os
import sys
import tensorflow as tf
import numpy as np
from PIL import Image

BATCH_SIZE = 128
GRADIENT_PENALTY_WEIGHT = 10

class RandomWeightedAverage(_Merge):
    """Takes a randomly-weighted average of two tensors. In geometric terms, this outputs a random point on the line
    between each pair of input points.
    Inheriting from _Merge is a little messy but it was the quickest solution I could think of.
    Improvements appreciated."""

    def _merge_function(self, inputs):
        weights = K.random_uniform((BATCH_SIZE, 1, 1, 1))
        return (weights * inputs[0]) + ((1 - weights) * inputs[1])

class GANGPU():

    def __init__(self,gan_type):

        assert gan_type in ['gan','wgan','improved_wgan','optim']
        print("GAN Type: " + gan_type)
        self.type = gan_type
        self.noise_shape = (100,)
        self.img_shape = (28, 28, 1)
        self.clip_value = 0.0001 # threshold for weight cliping (-c,c)
        self.d_losses = []
        real_img = Input(shape=self.img_shape)

        # set gan type specific parameters
        optimizer = self.select_optimizer()
        loss = self.select_loss()
        self.n_critic = self.select_n_critic()

        # Now we initialize the generator and discriminator.
        generator = self.make_generator()
        discriminator = self.make_discriminator()

        # The parallel_generator_model is used when we want to train the generator layers.
        # As such, we ensure that the discriminator layers are not trainable.
        for layer in discriminator.layers:
            layer.trainable = False
        discriminator.trainable = False
        generator_input = Input(shape=(100,))
        generator_layers = generator(generator_input)
        discriminator_layers_for_generator = discriminator(generator_layers)
        generator_model = Model(inputs=[generator_input], outputs=[discriminator_layers_for_generator])
        # We use the Adam paramaters from Gulrajani et al.
        parallel_generator_model = multi_gpu_model(generator_model, gpus=2)
        parallel_generator_model.compile(optimizer=optimizer, loss=loss)

        # Now that the parallel_generator_model is compiled, we can make the discriminator layers trainable.
        for layer in discriminator.layers:
            layer.trainable = True
        for layer in generator.layers:
            layer.trainable = False
        discriminator.trainable = True
        generator.trainable = False

        # The parallel_discriminator_model is more complex. It takes both real image samples and random noise seeds as input.
        # The noise seed is run through the generator model to get generated images. Both real and generated images
        # are then run through the discriminator.
        real_samples = Input(shape=self.img_shape)
        generator_input_for_discriminator = Input(shape=self.noise_shape)
        generated_samples_for_discriminator = generator(generator_input_for_discriminator)
        discriminator_output_from_generator = discriminator(generated_samples_for_discriminator)
        discriminator_output_from_real_samples = discriminator(real_samples)

        if self.type in ['gan','wgan']:
            discriminator_model = Model(inputs=[real_samples, generator_input_for_discriminator],
                                        outputs=[discriminator_output_from_real_samples,
                                                 discriminator_output_from_generator])
            parallel_discriminator_model = multi_gpu_model(discriminator_model, gpus=2)
            parallel_discriminator_model.compile(optimizer=optimizer,
                                        loss=[loss,
                                              loss])

        elif self.type in ['improved_wgan','optim']:
            print("Gradient Penalty Applied")

            # We also need to generate weighted-averages of real and generated samples, to use for the gradient norm penalty.
            averaged_samples = RandomWeightedAverage()([real_samples, generated_samples_for_discriminator])
            # We then run these samples through the discriminator as well. Note that we never really use the discriminator
            # output for these samples - we're only running them to get the gradient norm for the gradient penalty loss.
            averaged_samples_out = discriminator(averaged_samples)

            # The gradient penalty loss function requires the input averaged samples to get gradients. However,
            # Keras loss functions can only have two arguments, y_true and y_pred. We get around this by making a partial()
            # of the function with the averaged samples here.
            partial_gp_loss = partial(self.gradient_penalty_loss,
                                      averaged_samples=averaged_samples,
                                      gradient_penalty_weight=GRADIENT_PENALTY_WEIGHT)
            partial_gp_loss.__name__ = 'gradient_penalty'  # Functions need names or Keras will throw an error

            discriminator_model = Model(inputs=[real_samples, generator_input_for_discriminator],
                    outputs=[discriminator_output_from_real_samples,
                             discriminator_output_from_generator,
                             averaged_samples_out])
            parallel_discriminator_model = multi_gpu_model(discriminator_model, gpus=2)
            parallel_discriminator_model.compile(optimizer=optimizer,
                                        loss=[loss,
                                              loss,
                                              partial_gp_loss])

        self.parallel_generator_model, self.parallel_discriminator_model = parallel_generator_model, parallel_discriminator_model
        self.generator, self.discriminator = generator, discriminator

    def select_optimizer(self):
        if self.type == 'gan':
            print("Optimizer: Adam")
            return Adam(lr=0.0002, beta_1=0.5)
        elif self.type == 'wgan':
            print("Optimizer: RMSProp")
            return RMSprop(lr=0.00005)
        elif self.type == 'improved_wgan':
            print("Optimizer: Adam")
            return Adam(lr=0.0001, beta_1=0.5, beta_2=0.9)
        elif self.type == 'optim':
            print("Optimizer: OptimAdam")
            return optimAdam(lr=0.0001, beta_1=0.5, beta_2=0.9)

    def select_loss(self):
        if self.type == 'gan':
            print("Loss: Binary Cross Entropy")
            return 'binary_crossentropy'
        elif self.type in ['wgan','improved_wgan','optim']:
            print("Loss: Wasserstein")
            return self.wasserstein_loss

    def select_n_critic(self):
        if self.type == 'gan':
            print("Critics Ratio: 1")
            return 1
        elif self.type in ['wgan','improved_wgan','optim']:
            print("Critics Ratio: 5")
            return 5

    # for WGAN, Improved WGAN, Optim
    def wasserstein_loss(self, y_true, y_pred):
        return K.mean(y_true * y_pred)

    # for Improved WGAN, Optim
    def gradient_penalty_loss(self, y_true, y_pred, averaged_samples, gradient_penalty_weight):
        gradients = K.gradients(K.sum(y_pred), averaged_samples)
        gradient_l2_norm = K.sqrt(K.sum(K.square(gradients)))
        gradient_penalty = gradient_penalty_weight * K.square(1 - gradient_l2_norm)
        return gradient_penalty

    def make_generator(self):
        # 2-layer fully connected NN: 100 x 512 x 784
        model = Sequential(name='Generator')
        model.add(Dense(256, activation="relu", input_dim=100))
        model.add(Dense(np.prod(self.img_shape), activation='tanh'))
        model.add(Reshape(self.img_shape))
        return model

    def make_discriminator(self):
        # 2-layer fully connected NN: 784 x 512 x 1
        model = Sequential(name='Discriminator')
        model.add(Flatten(input_shape=self.img_shape))
        model.add(Dense(512, activation="relu"))
        model.add(Dense(1, activation='sigmoid'))
        return model

    def generate_images(self, output_dir, epoch):
        """Feeds random seeds into the generator and tiles and saves the output to a PNG file."""
        def tile_images(image_stack):
            """Given a stacked tensor of images, reshapes them into a horizontal tiling for display."""
            assert len(image_stack.shape) == 3
            image_list = [image_stack[i, :, :] for i in range(image_stack.shape[0])]
            tiled_images = np.concatenate(image_list, axis=1)
            return tiled_images

        test_image_stack = self.generator.predict(np.random.rand(100, 100))
        test_image_stack = (test_image_stack * 127.5) + 127.5
        test_image_stack = np.squeeze(np.round(test_image_stack).astype(np.uint8))
        tiled_output = tile_images(test_image_stack)
        tiled_output = Image.fromarray(tiled_output, mode='L')  # L specifies greyscale
        outfile = os.path.join(output_dir, 'epoch_{}.png'.format(epoch))
        tiled_output.save(outfile)
        outfile = os.path.join(output_dir, 'epoch_{}.pkl'.format(epoch))
        with open(outfile, 'wb') as f:
            cPickle.dump(test_image_stack, f)

    def train(self, epochs, batch_size=128, save_interval=50):
        # First we load the image data, reshape it and normalize it to the range [-1, 1]
        (X_train, y_train), (X_test, y_test) = mnist.load_data()
        X_train = np.concatenate((X_train, X_test), axis=0)
        if K.image_data_format() == 'channels_first':
            X_train = X_train.reshape((X_train.shape[0], 1, X_train.shape[1], X_train.shape[2]))
        else:
            X_train = X_train.reshape((X_train.shape[0], X_train.shape[1], X_train.shape[2], 1))
        X_train = (X_train.astype(np.float32) - 127.5) / 127.5

        # We make three label vectors for training. positive_y is the label vector for real samples, with value 1.
        # negative_y is the label vector for generated samples, with value -1. The dummy_y vector is passed to the
        # gradient_penalty loss function and is not used.
        positive_y = np.ones((batch_size, 1), dtype=np.float32)
        negative_y = -positive_y
        if self.type in ['improved_wgan','optim']:
            dummy_y = np.zeros((batch_size, 1), dtype=np.float32)

        self.discriminator_losses = []
        self.generator_losses = []
        output_dir = '../log_'+self.type

        for epoch in range(epochs):
            np.random.shuffle(X_train)
            print("Epoch: ", epoch)
            print("Number of batches: ", int(X_train.shape[0] // batch_size))
            discriminator_loss = []
            generator_loss = []
            minibatches_size = batch_size * self.n_critic

            for i in range(int(X_train.shape[0] // (batch_size * self.n_critic))):

                # ---------------------
                #  Train Discriminator
                # ---------------------
                discriminator_minibatches = X_train[i * minibatches_size:(i + 1) * minibatches_size]
                for j in range(self.n_critic):

                    image_batch = discriminator_minibatches[j * batch_size:(j + 1) * batch_size]
                    noise = np.random.rand(batch_size, 100).astype(np.float32)
                    if self.type in ['gan','wgan']:
                        discriminator_loss.append(self.parallel_discriminator_model.train_on_batch([image_batch, noise],
                                                  [positive_y, negative_y]))
                    elif self.type in ['improved_wgan','optim']:
                        discriminator_loss.append(self.parallel_discriminator_model.train_on_batch([image_batch, noise],
                                                  [positive_y, negative_y, dummy_y]))

                    if self.type == 'wgan':
                        # Clip discriminator weights
                        for l in self.parallel_discriminator_model.layers:
                            weights = l.get_weights()
                            weights = [np.clip(w, -self.clip_value, self.clip_value) for w in weights]
                            l.set_weights(weights)

                # ---------------------
                #  Train Generator
                # ---------------------
                noise = np.random.normal(0, 1, (batch_size, 100))
                generator_loss.append(self.parallel_generator_model.train_on_batch(noise, positive_y))

                # If at save interval => save generated image samples
                if epoch % save_interval == 0:
                    self.generate_images(output_dir, epoch)
                    self.generator.save_weights(os.path.join(output_dir, 'epoch_{}_g.h5'.format(epoch)))
                    self.discriminator.save_weights(os.path.join(output_dir, 'epoch_{}_d.h5'.format(epoch)))

            self.discriminator_losses.append(discriminator_loss)
            self.generator_losses.append(generator_loss)

if __name__ == '__main__':
    gan = GANGPU('gan')
    gan.train(100, batch_size=BATCH_SIZE, save_interval=1)

Here's the full traceback:
Traceback (most recent call last):
  File "gangpu.py", line 278, in <module>
    gan = GANGPU('gan')
  File "gangpu.py", line 96, in __init__
    parallel_discriminator_model = multi_gpu_model(discriminator_model, gpus=2)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/utils/multi_gpu_utils.py", line 189, in multi_gpu_model
    return Model(model.inputs, merged)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/engine/topology.py", line 1829, in __init__
    'Layer names: ', all_names)
RuntimeError: ('The name "Discriminator" is used 2 times in the model. All layer names should be unique. Layer names: ', ['input_3', 'input_4', 'lambda_3', 'lambda_4', 'lambda_5', 'lambda_6', 'model_3', 'Discriminator', 'Discriminator'])

I am facing a similar issue. Were you able to solve this?

I'm facing a similar issue, but with a single GPU. I look forward to receiving and advice.

I am facing a similar issue, do you have any solution now?

You could check this out: https://gist.github.com/BAXTER001/5b2bb9e65b587f893298f09102436ca1

I'm facing a similar issue, but with a single GPU. I look forward to receiving and advice.

I solved this problem by updating to the latest version of Keras.

I solved a similar problem by using multi_gpu_model on discriminator and generator instead of discriminator_model and generator_model


s390x: Move the value out of the casloop_val_reg with mov_preg

The casloop_emit function in the s390x backend was using the fixed non-allocatable register %r0 directly with move instructions, which produced a panic in the regalloc2 checker (#5425). This PR changes the casloop_result function to use mov_preg instead of copy_reg to fetch the result, as it's not viewed by regalloc2 as a move.
Fixes #5425

Looks like this isn't quite solved yet: the s390x tests that are failing are due to not recording an entry in the is_move map of the vcode table for the move that puts the result of the atomic_rmw instruction into %r2 before returning.
Attempting a local fix by recording Operand::fixed_nonallocatable constraints in is_move when appropriate instead of avoiding adding an entry at all hits a bug in regalloc2 where we're assuming that a fixed constraint returned by is_move must always be a pinned vreg, and not a fixed-nonallocatable register.

The last problem here was that moves weren't making it into the final output. The problem was that in the VCode::emit function we were skipping all instructions that satisfied MachInst::is_move, which includes the moves that we didn't report to regalloc2. The solution was to reuse the VCode::is_move map rather than calling MachInst::is_move, as presence in that map corresponds directly to whether or not we told regalloc2 about the move.

@uweigand I've reworked this a bit more to avoid the changes to VCode. The problem was that there was a move using a fixed non-allocatable register produced by the s390x backend in the casloop_emit function. I've reworked this to use MovPReg, which is designed to handle fixed non-allocatable sources, but this does introduce some additional indirection for the result.

Actually, reading your latest update: I think that what is actually needed here is for MachInst::is_move() to return a correct result with respect to real/virtual registers. Otherwise we have an inconsistency that may cause issues elsewhere (and are not addressed by papering over one callsite to MachInst::is_move with alternative logic).

The changes to VCode and MachInst ended up being a red-herring: the real problem as we discussed in a DM was that there were move instructions emitted that were using fixed non-allocatable registers at all. Switching to MInst.MovPreg instead in the s390x backend was the best fix.

@cfallin the assertions in collect_operands are failing, so I'll open a separate PR with that change and track them down there.

Will this be backported to the wasmtime-4.0.0 branch?

Will this be backported to the wasmtime-4.0.0 branch?

Just made the PR: #5442


Adding a CONTRIBUTING.md file

I would like to add a CONTRIBUTING.md file

I would like to add a CONTRIBUTING.md file

Sure.


Compound component usage

Hello:
I am trying to build a model for an accelerator. I defined my accelerator as a compound component and instantiated in my arch.yaml. I was able to constrain the mapspace correctly to my components (DRAM->GlobalBuffer->Accelerator Array) in arch.yaml. Once it hits the compound component, all the fanout converges to 1 (to the compound component) and throws a fanout error as shown below.
Fail reason: mapped fanoutX 65536 exceeds hardware fanoutX 1
My compound component also will slice the mapspace further. How do I achieve this?
thanks
Sreekanth

Will need to see your YAML to reproduce

Attached is the ZIP file. XYZ in the arch.yaml is my compound component.
timeloop_debug.zip

You have mapper diagnostics set to True, so the "error" that's being reported is not an error, but an example of an invalid mapping that Timeloop found.
Timeloop is still outputting valid mappings and successfully searching the mapspace. Your code ran OK on my machine and I got the following loop nest in timeloop-mapper.map.txt:
DRAM [ A:4096 (4096) B:4096 (4096) Z:4096 (4096) ]
--------------------------------------------------
| for N in [0:2)

GlobalBuffer [ A:4096 (4096) Z:2048 (2048) ]
--------------------------------------------
|   for K in [0:32)
|     for N in [0:32)
|       for M in [0:32)

inter_XYZ_spatial [ ]
---------------------
|         for K in [0:2) (Spatial-Y)
|           for M in [0:2) (Spatial-Y)
|             << Compute >>

Tanner: Do you have an example of creating nested compound components? Documentation says it is possible. Also how do you constrain the map space in compound components?

smartbuffer_metadata is a nested compound component in this repository.
Can you elaborate on your second question? Primitive and/or compound components are both instantiated in the architecture using the !Component key. There is no difference between them as far as mapping constraints are concerned.


Temporal Ground Revert implementation clarification

Hi, and thank you for open sourcing your algorithm.
By looking at the implementation of the temporal_ground_revert function it seems that the implemented version is a bit more complex than what is described in the paper.
I expected a simple threshold on this value
https://github.com/url-kaist/patchwork-plusplus/blob/11c189380b85db7f82f43e993f481aadce39b84f/patchworkpp/src/patchworkpp.cpp#L411
Could you elaborate on the implemented version and its advantages?
My guesses so far are as follows:

A flatness probability is computed, instead of applying a "hard threshold". How is it computed?
The flatness probability is manually set to 1 if the patch contains enough region-wise ground points and their flatness is below th_dist_ squared. (Is the squared value there to match units of measure or is it an empirical value?)
A line probability is also computed, which is set to 1 if the major eigenvalue is at least 8 times the mid eigenvalue. I'm guessing the reasoning here is that a lidar ring within a patch should be close to linear on (flat ground).
The two conditions are in a logical and: the ground must be linear and the flatness probability above 0.5

Hi, @lucamozza.
Thank you for having interest on our algorithm.
As you said, the detailed implementation of temporal_ground_revert function could be seemed to be slightly different from the paper. Well, those are remaining codes of our additional trial to improve reverting module's performance by considering additional geometrical values. Unfortunately, I thought other properties(e.g. linearity) except the flatness value are difficult to be concluded as useful geometric properties for estimating ground likelihood in general cases. Therefore, those are not stated in the paper.
By the way, I can answer your guesses as follows:

A flatness probability is computed, instead of applying a "hard threshold". How is it computed?

As I commented, I was trying to improve reverting function's performance by considering additional geometric properties. You can do hard thresholding instead of calculating a probability.

The flatness probability is manually set to 1 if the patch contains enough region-wise ground points and their flatness is below th_dist_ squared. (Is the squared value there to match units of measure or is it an empirical value?)

The flatness variable is the smallest eigenvalue from the result of PCA. Actually, the square root of eigenvalue is related to the standard deviation along the direction of eigenvector (corresponding normal vector of the surface). So, it is theoretically meaningful to compare flatness value to th_dist_squared.

A line probability is also computed, which is set to 1 if the major eigenvalue is at least 8 times the mid eigenvalue. I'm guessing the reasoning here is that a lidar ring within a patch should be close to linear on (flat ground).

Actually, as temporal_ground_revert module operates for close enough patches, I thought it is not expected to have ground points of a single LiDAR ring, which means it is not expected to have a high linearity. The ground points in a close-enough patch are usually planar enough and not linear much. It was the reason why I tried to utilize the line probability.

@seungjae24 thank you for your fast and exaustive response!
I definitely got confused while reading the line probability part. The conclusion is that we expect ground to be planar, so if we find it is more similar to a line we do NOT revert it.
I understand that the additional implemented checks do not improve the performance in general cases.
Do you suggest sticking to the paper version, or is there any difference in performance at all (in some specific cases maybe?) ?

@lucamozza

I definitely got confused while reading the line probability part. The conclusion is that we expect ground to be planar, so if we find it is more similar to a line we do NOT revert it.

Yes, the implemented part actually tried what you said. It was reasonable to revert not line-like points since reverting module is only applied for close enough patches which are containing ground points with multiple rings.

Do you suggest sticking to the paper version, or is there any difference in performance at all (in some specific cases maybe?) ?

Those parts don't lead a dramatic change of ground segmentation performance. However, I don't think that those parts are totally meaningless to segment ground points. It might be able to improve ground segmentation based on mulitple geometrical properties if those properties are considered without loss of generality.

Thank you very much for your support!


[Blocked] [P2] Implement State Dumps with Anvil

Description
State dumps are critical for various debugging, migration, and backup purposes. We need a feature within Anvil that allows users to request and manage state dumps, possibly on-demand or at periodic intervals. The state dumps should be in line with the TOML configurations provided and should include relevant information for both L1 and L2 chains.
Mocktimism TOML Configuration
# Global Configuration
[global]
state = '/path/to/my/persisted-state'
silent = false

# L1 Chain Configuration
[L1]
name = 'mainnet'

[[fork-config]]
fork_chain_id = 1
fork_url = "https://mainnet.alchemy.infura"
block_base_fee_per_gas = 420

[[environment]]
block_base_fee_per_gas = 420
chain_id = 10
gas_limit = 420

[[evm]]
accounts = 10
balance = 1000
steps-tracing = true

[[server]]
allow-origin = "*"
port = 8545
host = "<IP_ADDRESS>"
block_time = 12
prune_history = false

# L2 Chain Configuration
[L2]
name = "L2_Chain_1"

[[fork-config]]
fork_chain_id = 10
fork_url = "https://op.alchemy.infura"
block_base_fee_per_gas = 420

[[environment]]
# Optionally override the l1 or set it if not running an l1
l1_block_base_per_gas = 420
block_base_fee_per_gas = 420
chain_id = 10
gas_limit = 420

[[evm]]
accounts = 10
balance = 1000
steps-tracing = true

[[server]]
allow-origin = "*"
port = 8546
host = "<IP_ADDRESS>"
block_time = 2
prune_history = false

Tasks

[ ] Allow Anvil to initiate and manage state dumps.
[ ] Ensure state dumps adhere to the provided TOML configurations.
[ ] Provide options for periodic state dumps based on configuration triggers.
[ ] Include the rollup genesis configs in the stsate dumps as well as artifacts like addresse.json (see optimism devnet in monorepo)

Blocked by #9


403 Client Error

I tried to use but got error:

Current Time is 22:55
Getting https://www.showroom-live.com/api/live/upcoming?genre_id=102 failed: 403 Client Error: Forbidden for url: https://www.showroom-live.com/api/live/upcoming?genre_id=102
Retrying in 0.5 seconds...
Getting https://www.showroom-live.com/api/live/upcoming?genre_id=102 failed: 403 Client Error: Forbidden for url: https://www.showroom-live.com/api/live/upcoming?genre_id=102
Retrying in 1.0 seconds...
Getting https://www.showroom-live.com/api/live/upcoming?genre_id=102 failed: 403 Client Error: Forbidden for url: https://www.showroom-live.com/api/live/upcoming?genre_id=102

What is the reason?

Is it happening for all stream?
Can you try using a different IP address?

I tried.
My pc in China and Server in France. The same.

are you watching or having a specific list?
let me try with my server

emmm.
But I can open the site(https://www.showroom-live.com/api/live/upcoming?genre_id=102) in my browser.

The same IP......I can't use this py script.
Can only Japanese IP use this script?

paging @wlerin

Japanese IP is not required. I'm not sure what might be causing this.

Japanese IP is not required. I'm not sure what might be causing this.

I am guessing, he/she is using default branch, not development

Every branch but master (default) and hls-python is defunct, including development.

Every branch but master (default) and hls-python is defunct, including development.

ah right, I mistakenly referring to an old issue

But I can open the site(https://www.showroom-live.com/api/live/upcoming?genre_id=102) in my browser.

Are you logged in in the browser?

@wlerin
Yes, I logged in.
I did not make any changes to the code...

latest release.

Well there's your problem. The "latest release" is from 2017. It definitely doesn't work anymore.

New release 0.5.0 seems OK on my PC.
But using git clone on my server, it still failed.

But using git clone on my server, it still failed.

It's possible the server itself is blocked. Does the following command work there:
wget --user-agent= 'https://www.showroom-live.com/api/live/upcoming?genre_id=102' -O upcoming.json

If I only want the showroom of a certain group, can I delete the .jdex files of other groups in the index folder?

Yes. Though it would be better to create a separate index folder with only the files you want (or custom files) and point the script at that.

wget --user-agent= 'https://www.showroom-live.com/api/live/upcoming?genre_id=102' -O upcoming.json
--2020-11-26 00:52:39--  https://www.showroom-live.com/api/live/upcoming?genre_id=102
Resolving www.showroom-live.com (www.showroom-live.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>
Connecting to www.showroom-live.com (www.showroom-live.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2020-11-26 00:52:40 ERROR 403: Forbidden.

IP blocked. I gave up~
Thanks for your reply, wlerin and skeith.

There used to be a limit on how many rooms could record at once, priority was used to decide which ones to skip when there were too many already. After
I'm pretty sure Nogi 4th is already in the index, not sure about the other two groups (also I should rename Keyakizaka to Sakurazaka...). If Nogi 4th isn't in the index already, that's probably because I'm using (and updating) a different index instead of the one in this repo.

Nogi 4th first members (joined on 18.12.03) is included, but second members (joined on 20.03.25) is not.
New 2nd members of Sakura and new 3rd members of Hina (joined on 20.03.25) are the same.
I added it myself, so I have the question about "priority".

I believe this issue was resolved years ago, so I'm going to close it now.


user attended and unattended access

Capturing something from the chat to have better track on this conversation: https://gitter.im/solid/app-authorization-panel?at=5d79b986b9abfa4bd3923adc

@zenomt: the big difference i think with OIDC/POP is that the app public key (the "confirmation key") is bound up with the id_token and can only be used as long as the id_token is valid. Best Current Practice is for the validity period of id_tokens and access tokens to be on the short side (minutes-to-hours) rather than the days-to-weeks as currently issued by NSS. the user's (trusted) OpenID Provider serves as the periodic uncacheable validator of whatever public key is being used to demonstrate identity. the default thing that happens if i close my browser or turn off my terminal is that anyone who could be acting as me+app will eventually (and soon) not be able to do that anymore, whereas positive action would need to be taken to revoke any currently-valid public keys in (or linked to) my profile.
i have a shortcut in my browser's bookmark bar to immediately log me out of all sessions everywhere (across all browsers and devices) in my OpenID Provider with a single click, just in case i'm worried about any sessions running on a forgotten terminal somewhere. and i can view all current sessions and issued id_tokens in my OP, including to what IP addresses and redirect_uris they were issued.
my OP doesn't issue refresh tokens, and i'm not planning on adding that functionality because there's never a situation where i want something to be "me" when i'm not there.
if an automatic agent wants to do stuff for me, it can have its own webid, and then the problem just becomes one of permission.

Approach above sounds to me like focusing only on user attended use cases. Practically all remote clients running somewhere in the cloud will require unattended access. In addition Service Workers and proposed Background Sync may result in local clients running on device in web browser also using unattended access.

my OP doesn't issue refresh tokens, and i'm not planning on adding that functionality because there's never a situation where i want something to be "me" when i'm not there.

We can discuss requirements on refresh tokens in dedicated issue(s).

if an automatic agent wants to do stuff for me, it can have its own webid, and then the problem just becomes one of permission.

We discuss all software agents having their WebID, I think User should delegate access to them in the same way, no matter if software agent stays attended or unattended by the user.
I will close this issue for now, we can reopen it if we ever see need to distinguish when software agent acts attended by user or unattended. I think with refresh tokens in use we may actually not have straight forward way to make that distinction.


ModuleNotFound: pkg_resources when running safety check with Python 3.10

safety version: 1.10.3
Python version: 3.10rc1
Operating System: Linux

Description
Running safety check with safety installed via poetry and Python 3.10 raises ModuleNotFound: pkg_resources
What I Did
$ poetry run safety check
  File "/home/dmerej/.cache/pypoetry/virtualenvs/cli-ui-0yLFmGXZ-py3.9/bin/safety", line 8, in <module>
    sys.exit(cli())
  File "../lib/python3.9/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "../lib/python3.9/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "../lib/python3.9/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "../lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "../lib/python3.9/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "../lib/python3.9/site-packages/safety/cli.py", line 64, in check
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

Sorry - was using a corrupted virtual env. Closing


Fix for running tests with use= flags enabled

Prior to this commit, running make test after running make configure use=use_flag would fail because the Makefile would look for the test binaries in the wrong directory (i.e. in build/debug instead of build/debug-runtimestats).
This commit updates the Makefile to try and determine the use output directory from the CMake configure generated cmake_install.cmake file so that tests can be run successfully. It will fall back to the current behavior and use the default build directory if it the file doesn't exist or it is unable to extract the directory path.

I don't feel qualified to comment on CMake improvements, so I'm requesting review from @chalcolith.

@dipinhora can you rebase this against main?

@dipinhora can you rebase this against main?

done


Change App Icon for the app generated by App generator according to the icons provided by organiser

Allow the organizer to upload an icon of his choice.

[ ] Implement this in the web page
[ ] Use the uploaded image to compile the apk

As pointed out a number of times  - all event data including icons should be defined in the JSON files and zip provided by organizers.

Sure @mariobehling but this issue addresses the packaging of the icon in the apk generated by the app generator. So, I think this issue should be open (https://github.com/fossasia/open-event-android/issues/472 should be closed)

As you can see #472 is also closed. You can reopen this issue everyday, if you want, but we dont need it. (apart from that you already mentioned this issue will be solved yesterday).
If you need an icon for the app - get the data (the icon = logo), that is defined in the event.json. If there is no logo, define a neutral standard icon.


Error while running multiple_domains.py

Traceback (most recent call last):
  File "mtrand.pyx", line 1115, in mtrand.RandomState.choice
TypeError: 'dict_keys' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "multiple_domains.py", line 311, in <module>
    gen_bot.gen_corpus("test", rest_spec, complexity.CleanSpec, test_size)
  File "C:\Users\Mayank\Desktop\GithubProjects\SimDial\simdial\generator.py", line 146, in gen_corpus
    corpus = self.gen(domain, complex, num_sess=size)
  File "C:\Users\Mayank\Desktop\GithubProjects\SimDial\simdial\generator.py", line 108, in gen
    usr = User(domain, complexity)
  File "C:\Users\Mayank\Desktop\GithubProjects\SimDial\simdial\agent\user.py", line 76, in __init__
    self.goal_cnt = np.random.choice(complexity.multi_goals.keys(), p=complexity.multi_goals.values())
  File "mtrand.pyx", line 1117, in mtrand.RandomState.choice
ValueError: 'a' must be 1-dimensional or an integer

i had similar issues when using python2.7.
try running it in python3+  using this forked repo: https://github.com/ruinunca/SimDial
it worked for me.


Major unstability when waiting for the API socket to be available at VM level

called Result::unwrap()on anErr value: ApiError(ConnectionError(ApiRequestError(hyper_util::client::legacy::Error(Connect, Os { code: 111, kind: ConnectionRefused, message: "Connection refused" }))))
The current implementation of ensuring the socket file exists clearly has an unstability problem. The issue is severe and may warrant a backport to 0.5.
Potential solutions:

Try to use inotify for polling?
Poll whether the socket is connectable?
Make a connection pool lazily and retry a "/" GET request until it works

Generally, polling for this connectivity is quite difficult and is not made any easier by firecracker not exposing basically any means of waiting for the VM to start up.

Inotify maybe is the "proper" solution since it gives out fds which are extremely compatible with async, reading from the fds though is a whole another issue that might necessitate pulling in unwanted deps.

Doing inotify either via libc or inotify-sys is trivial, but this portion might need to be vendored in partly: https://github.com/hannobraun/inotify-rs/blob/main/src/stream.rs


Need an example for an image placeholder

An example for image placeHolder should be added to https://gitbrent.github.io/PptxGenJS/docs/masters.html
What is the proper way of doing it? This is what I've tried...
'placeholder': {
            options: {name: 'imagePlaceHolder', type: 'image', x: 0, y: 0, w: 6, h: 0.75, link: 'link/to/image.png'},
          }

slide.addImage({path: 'path/to/another/image.png', x: 1, y: 1, w: 2, h: 2}, {placeholder: 'imageCol0'})

Hi @chriswalz
Thanks for the issue. It appears that using images as placeholders on master slides has never worked. I've dropped a TODO with this issue # in the newest 3.0 code.

Hi @gitbrent any idea concerning this feature according to the roadmap ? Do you confirm that in 3.2.1 we are still unable to use type: "image" with placeholder ?
In #513 you said that we can use every type of shape to crop an image into one of the supported shapes type. Do you think it will be possible when the image placeholder will be fully functional ?

Hi @gitbrent , any feedback ?
thank you very much


⚠ Jenkins Plugins Artifactory has degraded performance

In 91c8bd1, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1326 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 465ba41 after 12 minutes.