feat(gitlab): added gitlab repository support

👋
Support for gitlab.com or self-hosted instances:
# self-hosted
docker run --rm -it gitopscli:latest deploy --file values.yaml --values "{ app.image.tag: 2.5.0 }" --username GitOps --password 1GdNwR2QDit6xjwGxkjC --organisation "not needed" --repository-name 301 --git-provider-url "https://gitlab.yourorg.com" --create-pr --auto-merge

# gitlab.com
docker run --rm -it gitopscli:latest deploy --file values.yaml --values "{ app.image.tag: 2.5.0 }" --username GitOps --password JzKPDUmNvbvmohNypmb4 --organisation "not needed" --repository-name 24029565 --git-provider gitlab --create-pr --auto-merge

To authenticate you have to create a  personal access token. Username and password then correspond to the token name and the access token itself.
As repository name I decided to use the Gitlab Project ID which is unique and immutable for a repository on the whole gitlab server and the organization name is not really needed.
Happy for any feedback ❤

Thanks for the contribution! :heart:
Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Thanks for the contribution! :heart:
Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Sounds reasonable. I will try to propose a solution where both is possible, because with Gitlab it is also possible to search a repository via organization (aka group) and repository name.

Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Sounds reasonable. I will try to propose a solution where both is possible, because with Gitlab it is also possible to search a repository via organization (aka group) and repository name.

Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Sounds reasonable. I will try to propose a solution where both is possible, because with Gitlab it is also possible to search a repository via organization (aka group) and repository name.

I found a way to change it easily to the same organization/repository-name way the other git adapters are using. The information is easily visible from the url (e.g. https://gitlab.com/inkscape/inkscape) while the project id is somehow more hidden (and many people are asking how to find it 😅)
Also, I found in the codebase that organisation and repository_name are passed around in many places and I didn't felt safe enough to add a third option everywhere.

Maybe it would make sense to add a --project-id parameter as alternative to --organisation and --repository-name for Gitlab? I guess this would require to make both --organisation and --repository-name optional in cliparser.py. Instead, there could be a simple check that either org/repo or project-id parameters are given on this level (like here: https://github.com/baloise/gitopscli/blob/master/gitopscli/cliparser.py#L268). And finally an additional check in GitRepoApiFactory just before passing it to your adapter.

Sounds reasonable. I will try to propose a solution where both is possible, because with Gitlab it is also possible to search a repository via organization (aka group) and repository name.

I found a way to change it easily to the same organization/repository-name way the other git adapters are using. The information is easily visible from the url (e.g. https://gitlab.com/inkscape/inkscape) while the project id is somehow more hidden (and many people are asking how to find it 😅)
Also, I found in the codebase that organisation and repository_name are passed around in many places and I didn't felt safe enough to add a third option everywhere.

:tada: This PR is included in version 4.5.0 :tada:
The release is available on:

v4.5.0
GitHub release

Your semantic-release bot :package::rocket:


features format

I have some question about what is the feature format for x, tx, and allx in Cora dataset?
Are these sparse matrix?
Also, what is the meaning of the node feature? One hot? Edges the node connects?
How can I feed my feature in this model?
Thanks!

Hey @brian7685, one way to do so is to read the files using pickle module and inspect the content directly.


STORM-3301: Fix case where KafkaSpout could emit tuples that were alr…

…eady committed
https://issues.apache.org/jira/browse/STORM-3301
I removed an unnecessary contains check in KafkaSpout during init, it would always return false. I made a slight change to log compaction handling, the spout will now commit an acked offset after a gap, even if it's the only one. Previously there had to be at least 2 acked offsets after the gap before commit.

The test failure is due to broken stubbing, I'll fix it soon


doc: Remove dev mode, add guide on celowallet.app

Removes references to developer mode when setting up the Ledger Nano and also has a section on celowallet.app
Fixes this issue

@jmrossy updated the doc with all your feedback implemented


Support for HiDes UT-100C

Hi,
The current version of TSDuck has support for Dektec modulator devices.
One cheap DVB-T modulator is the HiDes UT-100C device, based on the ITE IT-9507 chip:
http://www.hides.com.tw/product_cg74469_eng.html
You can found the official SDK for Linux & Windows here:
https://www.dropbox.com/sh/zcrqdf5xrvfa4wz/AACib5Z7EBErqk35N-DZGt5Pa?dl=0
(See the page http://www.hides.com.tw/downloads_eng.html)
And some opensource Linux driver here:
https://github.com/linuxstb/it9507
The suggestion is if anyone is interested in adding support to this kind of device.
Regards.

Interesting device. $169 for a DVB-T modulator. It seems too good to be true. And it looks quite small for a modulator. Did anybody try it ?
They have only DVB-T for now. Any plan for DVB-T2 or -S/S2 ?
What is the target market? According to the sample use case on the site, they seem to target hospitality or very local redistribution. I would have assumed that for such a usage, IP streaming would be preferred. Any details ?
Supporting it in TSDuck could be done through some new hides plugin, equivalent to the dektec plugin. But this needs of course devices to test. I can review code contributions.

Hi @lelegard ,

It seems too good to be true. Did anybody try it ?

Yes, I have one! And a lot of users around the world (almost in DVB areas) are using it.

They have only DVB-T for now. Any plan for DVB-T2 or -S/S2 ?

I don't know. It's not a new device (6 years in the market). But the ISDB-T version is available now.

What is the target market? Any details ?

The target is testing/development, also local distribution with server devices, and home-made environments. I don't do personal tests of 24/7 runs, but the devices seems very stable.
Regarding the software, regular users are using it with:

Linux, with basic tools like tsrfsend or mpts2dvbt (opensource tools).
Astra-SM in Windows (opensource version of the Astra Cesbo).
Other custom tools based on the SDK.

Supporting it in TSDuck could be done through some new hides plugin, equivalent to the dektec plugin. But this needs of course devices to test. I can review code contributions.

If you prepare some skeleton of the hides plugin (using the headers in the SDK) then I can do some basic testing/coding.
Regards.

the surrounding software ecosystem isn't great

Sure! And this is the reason for requesting to support it with TSDuck.
@lelegard, what we can do to help you with this enhancement?

Just for your information, piping tsduck to https://github.com/F5OEO/it950x_cmd is working well (Linux only). UT-100C is so working properly. The best should of course shoud be to include it in tsuduck plugin. Will maybe manage to do that later.

Hi @F5OEO ,

Just for your information, piping tsduck to https://github.com/F5OEO/it950x_cmd is working well (Linux only).

Good to point it. Thank you!
However, the idea is to have multiplatform support (as TSDuck runs on Mac, Linux & Windows).
Until the plugin support is added, perhaps you like to add some Mac and/or Windows support to the tool it950x_cmd_tx.

As Hides API is the same (Windows/Linux) it should be not so difficult.

As Hides API is the same (Windows/Linux) it should be not so difficult.

So I hope to see soon a multiplatform (Linux/Windows at minimum) of the tool it950x_cmd_tx. It will simplifies the work using notebooks with the UT-100C.
Regards.

@lelegard, what we can do to help you with this enhancement?

Write an output plugin of course :)
More seriously, when I have time (ie. not now), I can write a plugin skeleton based on the vendor API.  Then you would have to test it and modify the code when it does not work. However, since I do not have any Hides device, I won't be able to support this plugin, analyze and fix issues. So, in case of problem, you would also have to provide support.

Hi @lelegard ,

when I have time (ie. not now), I can write a plugin skeleton based on the vendor API.

Just to know: a plugin skeleton for HiDes devices, or for generic devices?

Then you would have to test it and modify the code when it does not work.
...
So, in case of problem, you would also have to provide support.

Sure! :smile:

Just to know: a plugin skeleton for HiDes devices, or for generic devices?

By experience, there is no such thing as a generic device. Even with a professional and portable API such as the Dektec DTAPI, some devices need specific workflows. For instance, do we need to fill a buffer and up to which volume before starting transmission or not? In which order should the configuration values be set for the device to work correctly? Etc.
The best example of generic device is the Linux DVB API which handles all tuners in a uniform way.
The worst example is the Windows way of handling DVB tuners through DirectShow and BDA drivers.

I just had a look at the software environment. What a mess! This is amateurish work, really. I do not know if the code itself is clean or not. But these guys never worked in a professional software delivery environment.

No real distribution channel, no deterministic URL to check. Just a page with unclear tables and links. Then a link to dropbox, pointing to a structure of files.
No way to automatically detect and integrate new version. Only manual checking, search and download.
No software packaging for the development environment.
Different integration approaches on Linux and Windows (although the API itself is similar).
The API based on Win32 types, using types such as WORD on Linux. Clashing with PCSC which uses the same ugly trick on Linux.
On Linux, the makefile is common to the API and the driver. But we need to deploy the driver on execution hosts while the API shall be built on development hosts.
No proper packaging of Linux driver, no DMKS package (no DKMS package either for Dektec but better versioning and packaging).
The only clean installation is the Windows drivers. (But still through dropbox, without proper distribution channel).

This may be fine to build a dedicated test application. But it creates a mess to integrate with a larger application with multiple dependencies such as TSDuck. I cannot just drop the HiDes source code into the TSDuck source tree. But there is no clean software environment to install either. My concern is to keep TSDuck easily buildable on all systems. I need to think about it and probably recreate a brand new separate software packaging for HiDes SDK and drivers.
The modulator is extremely cheap, compared to Dektec, which is in turn extremely cheap compared to standard production equipment. This may explain the absence of investment in proper software packaging and delivery. But most free open source applications are still better packaged.
I have always been concerned with software quality and high quality product management. So, that kind of software delivery drives me crazy !

I understand the suggestion. But that means that the transport stream would also go through a pipe. It will work. But the architecture of tsp was precisely designed to avoid this. There is a large circular buffer inside tsp, possibly locked in physical memory if the process has the appropriate privilege. A TS packet is written at one place in the buffer by the input plugin and is never moved until it is read from the same place by the output plugin to be emitted somehow. The various plugins inspect or modify this packet, one after the other, without moving it.
In practice, the TS packets don't move. The various plugins move their sliding view of the buffer. That is better for performances.

Hi @lelegard ,
Your opinion is very professional and I agree with all your statements.
However, regarding the idea of supporting the HiDes DVB-T modulator let me to comment some ideas that you can consider:

TSDuck has three types of "modules": input, output and processing. The target in this case is only for the "output" type. And perhaps too for the "input" if you consider it for different hardware (Dectek, HiDes, etc.). So that's only for I/O modules.
For these I/O modules, like current file-input and file-output the code reads/writes from/to the circular buffer. No more, no less. So adding new pipe-input and pipe-output modules will be useful from a multiplatform point of view (in Windows it's hard to use "mkfifo" for simulate pipes with files!).
Based on these PIPE modules, will be easy to create a simple API for external (aka plugins) modules. The API can be a simple PIPE for the Transport Plane, and a set of calls for the Control Plane.
Then current dektec-input and dektec-output can be ported to this new API for I/O modules. And futhermore, it could perhaps be compiled from outside the TSDuck in a independent module: "TSDuck-IO-dektec".
And based on this "TSDuck-IO-dektec" module new modules can be developed: "TSDuck-IO-hides", "TSDuck-IO-BDA", "TSDuck-IO-LinuxDVB", "TSDuck-IO-SDR", etc.

Perhaps a bit code rewriting, but with this new I/O API the TSDuck core will continue to be clean every time. And the development of plugins (IO modules) will be external.
What you think about this way?

Well, this is reinventing plugins. Plugin can always be developed outside the TSDuck source tree. Plugins or sets of plugins can be developed on top of TSDuck without being as part of TSDuck.
I have done this several times for plugins manipulating company-confidential data or concepts. In that cases, the plugins never went to open source, but they used TSDuck as a framework (just like proprietary applications running on top of the open-source Linux kernel and libraries). The license and technical architecture of TSDuck make this possible.
So, we could develop some open-source hides plugin outside TSDuck, in a separate tsduck-hides project. I am just a bit reluctant to it.

https://github.com/linuxstb/it9507
Dave Chapman - linuxstb (who also worked on TV Headend) was working on a different driver for the UT100C at one point. That might be of interest.

Hi @skunge2000 ,
Thank you for commenting it. However, all people that has the UT-100C and uses it in Linux are in fact using some of the alternative drivers.
The objective here is have an opensouce tool that targets too the Windwos platform. So, as the TSDuck is Linux/MacOS/Windows compatible, and as one SDK for Windows & Linux exists, then it will be interesting to support it.
However, @lelegard has discovered that the SDK has sirious memory leaks. I hope, in any case, that someone will prepare a dirty plugin for supporting it in Windows for pure testing.
Regards.

Hi,
Did anyone manage to write a portable application using the UTC-100C ? By "portable", I mean a single application source code which can be compiled indifferently on Windows and Linux.
The API is similar but in fact very different in many details between Windows and Linux.
@F5OEO, you mentioned:

As Hides API is the same (Windows/Linux) it should be not so difficult.

Did you manage to produce a single source code version of your application which runs on Windows and Linux (without excessive #ifdef) ?
Moreover, the implementation of the API source code is available on Linux while it is not on Windows (binary DLL's only). So we, as external developers, cannot merge them.
Why bother defining and developing an API layer if it is different between operating systems?
The provided "test application" is functionally equivalent but has different source code between Windows and Linux. This is a strange interpretation of the concept of portability....

Hi @lelegard ,
I try to explain some issues based on my (very) limited understanding of this device:

The company that manufactures this device seems that has few resources for software development.
No one has created any open source tools for this device other than for the Linux platform.
I feel the Windows and Linux API are different, because only one SDK has created at start. And after a lot of time some other person has developed the SDK for the other platform.

So, if you feel it's impossible to support this device, then don't waste your time. And thank you in any case. Your TSDuck project is impresive!

OK, probably the best solution would be to obtain that the Windows API becomes open-source. Then, independent software developers could merge the two into a portable solution. No need to open the source code of the Windows driver, just the API.

Hi @lelegard ,
Regarding the "API", you're talking about the ITEAPIEXTest_TX.h/cpp files in the "SDK_Windows"?

Hi @lelegard ,
The reputed developer CrazyCat has implemented Windows support for this device in his fork of the Astra-SM tool:
http://gitlab.com/crazycat69/astra-sm/tree/event_monitor/src/hwdev/it95x
I feel you can use the API files from this directory to implement support for it.
So, you don't need nothing more, and you can avoid the ugly SDK!
Regards! :smile:

Hi @lars18th

Regarding the "API", you're talking about the ITEAPIEXTest_TX.h/cpp files in the "SDK_Windows"?

Yes for the .h and no for the .cpp.  This is where we understand that, despite some effort in the code presentation, the developer has absolutely zero understanding of basic software engineering.  You may find me a bit harsh but this is the kind of thing that makes me mad.
It is an established practice to write modular software. A module (object, class, package, you name it depending on your implementation language) has a public interface and a private implementation. In C or C++, the implementation is in a file foo.c[pp] and the corresponding interface is in foo.h.
But in the so-called SDK_Windows, ITEAPIEXTest_TX.cpp is a test application program (with a main()) and ITEAPIEXTest_TX.h is the declaration of the API in the DLL. I cannot believe it!
In proper software:

A .h declares what is in the corresponding .cpp.
The source file containing the main is probably the only .cpp without a .h.
A generic and reusable API is not in a file named *Test*.
A generic and reusable API is not mixed with an application, especially a test application.
The interface of a generic and reusable API is system-agnostic.

On the contrary, the other pointer you mentioned from CrazyCat fully complies with these requirements and seems to be good software. We may do something with it. My only concern is : Is it compatible with the HiDes drivers (closed source on Windows, open source on Linux). If the answer is yes, then this is the most promising track (and it will also preserves my nerve, which I tend to lose when looking at the HiDes SDK :angry: )

Hi @lelegard ,
First of all, thank you for your effort with this (good) hardware and (poor) SDK!
Regarding the official SDK I feel you don't need to waste much more effort. Instead of it, use the code from CrazyCat. I confirm that it works in Windows with the closed source driver. I check it before write here about it. However, I don't know if it's works with the Linux open source driver.
In any case, please keep calm. :smile:

Since nothing is simple in this world, the code from CrazyCat is only implemented for Windows, there is no Linux implementation. The file api.h defines a system-agnostic API to IT95x devices. The file api-win32.c is a Windows implementation for api.h. But I did not find any Linux implementation. Note that the file api.c contains only a few portable bitrate computation routines. It is not a Linux counterpart of api-win32.c.
There is an open source implementation for Linux in the HiDes software. But the API is different. So, based on these two incompatible implementations, I suppose we can derive a new API that we can re-implement on Windows and Linux. Just more work...
BTW, the original author seems to be Artem Kharitonov from the Astra project, in the branch event_monitor of his Astra project.
I do not have any HiDes device to test. Before starting any work in this, I need the commitments of at least two testers, one for Windows and one for Linux, who can debug and update the code. @lars18th ? @F5OEO ?

@lelegard No problem if you want some tester / contributor : my favorite environment is Linux (particularly on Raspberry) but have also dev environment on Windows. Sorry about confusion on common Hides API between Linux and Windows. In conclusion, Hides is an integrator who deal with ITE (chip manufacturer). Hides market is mainly amator radio and hospitalities. They sell a reference design from ITE and use SDK and driver provided by ITE. There software skills are not very good as you noticed. Wonder if we can't rewrite driver on userland using libusb and rewrite a common API in order to be OS compatible.

Hi @lelegard ,

I need the commitments of at least two testers, one for Windows and one for Linux, who can debug and update the code.

I'll try it!
Hi @F5OEO ,

Wonder if we can't rewrite driver on userland using libusb and rewrite a common API in order to be OS compatible.

This will be a third API! And, yes libusb is portable. However, at time no drivers for this device exists using it. Instead of this option, an statand Windows driver and a Linux driver are available. So, why not use them? I feel much more complex to rewrite a libusb driver and an API, than only an API. Do you see it as well?

Wonder if we can't rewrite driver on userland using libusb

One of the most important software engineering rules is "if it ain't broken, don't fix it". If we have working drivers on Windows and Linux, just keep them as they are. I can write a DKMS package for the Linux driver. I have already done this for Dektec drivers.

and rewrite a common API in order to be OS compatible.

Yes, definitely, this is the goal. The implementation of the API hides the system-specific ioctl's.
Volunteers, please contact me directly at contact @ tsduck.io. No need to add too many more messages in this thread.

@lars18th , I think we cross-posted the same thing at the same time. Let's continue offline.

Hi @lars18th, please send a mail to contact @ tsduck.io if you would like to participate in test and debug of a HiDes plugin for TSDuck.

Hi @lars18th, please send a mail to contact @ tsduck.io if you would like to participate in test and debug of a HiDes plugin for TSDuck.

Sorry! Very busy at time... I need to complete some internal project. :disappointed:

Hi,
I pushed a preliminary version of HiDes support in commit 8f93107bf7393df140bf7265c140174ed4f7792e. It is not final. A few stuff are known to not work correctly. But testing is possible. Please provide feeedback here.
You need to pull and rebuild first. Windows users without development environment can download versions for Win32 and Win64. An updated documentation is also available.
Requirements: The HiDes drivers are available here.
Note that everything was coded without direct test since I have no HiDes device. Making this work was made possible only because a couple of users made intensive testing and provided valuable feedback. Thanks a lot, guys.
However, a couple of things do not work correctly yet and need direct testing. I am expecting a UT-100C as a loan from a TSDuck user. I expect to finalize the plugin before returning the device to its legitimate owner.
Notably:

The output regulation on Linux is not very efficient.
There is probably a driver interaction problem with 32-bit TSDuck running on a 64-bit Windows.

About the software architecture: I kept the two drivers, Linux and Windows, as they are and completely threw away the pseudo-SDK. I set up the project hides-drivers to keep a reference copy of the drivers. The Linux driver has been repackaged as a DKMS package to make kernel upgrades fully transparent. The pseudo-SDK has been replaced by a C++ class named HiDesDevice. The API of this class is system-agnostic. The utility tshides lists installed HiDes devices and their characteristics. The output plugin hides drives the modulator.
About the HiDes / ITE software: After having been driven crazy by the pseudo-SDK (see previous posts), I realized that the Linux driver was no better. See the (angry) comments in the Linux implementation of HiDesDevice in the TSDuck library.

Hi @lelegard ,
Thank you for provide this pre-release!
I'll test the Windows versions this weekend and I provide some feedback.
Regards.

Hi @lelegard ,
Very fast & dirty test:

Windows 7 64bit.
UT-100C with stock windows driver.
Installed "TSDuck-Win64-3.13-803" & "TSDuck-Win32-3.13-803".
Source: One network DVB-T streamer (HDHomeRun), with pid filtering activated for only catch one service (4~7Mbps). Target streaming to multicast <IP_ADDRESS>:10000.
Execute: tsp.exe -I ip <IP_ADDRESS>:10000 -O hides -b 8 -c QPSK -f 474000000 -g 1/32 -h 3/4 -t 8K.
PERFECT reception with both versions, 32 & 64 bit (the 32bit is a little more CPU time consuming).

So, congratulations! It works. :smile:

Thanks @lars18th.
What is the average CPU consumption with the 32 and 64 bits versions ?
Could you post the output of tshides and tshides -v with the 32 and 64 versions ? In case of failure, retry with --debug=2.

Hi @lelegard ,
Feedback:

What is the average CPU consumption with the 32 and 64 bits versions ?

Insignificant. Around 1-4% CPU time. But 32bit is usually 3-4%, and 64bit 1%.

Could you post the output of tshides and tshides -v with the 32 and 64 versions ? In case of failure, retry with --debug=2.

(64bit)
$ tshides.exe
0: "IT9507 TX Filter"

$ tshides.exe -v --debug=2
debug level set to 2
HiDes: CLSID_Proxy: 17cca71becd711d0b90800a0c9223196
HiDes: checking "IT9507 TX Filter", CLSID {17CCA71B-ECD7-11D0-B908-00A0C9223196}
HiDes: found device "IT9507 TX Filter"
HiDesDevice: getting device information
HiDesDevice: get filter instance
HiDesDevice: calling GetHandleFromObject
WinUtils.GetHandleFromObject: getting IKsObject interface
WinUtils.GetHandleFromObject: IKsObject found, calling KsGetObjectHandle
WinUtils.GetHandleFromObject: handle: 0x00000000000001CC
HiDesDevice: GetHandleFromObject successful
HiDesDevice: creating event for overlapped
HiDesDevice: checking support for property 0, index 0
HiDesDevice: checking support for property 0, index 1
HiDesDevice: checking support for property 1, index 2
HiDesDevice: checking support for property 1, index 3
HiDesDevice: checking support for property 5, index 4
HiDesDevice: getting USB mode
HiDesDevice: getting driver information
HiDesDevice: getting chip type
HiDesDevice: getting device type
Found 1 HiDes devices

Index: 0
Name: "IT9507 TX Filter"
Device: \\?\usb#vid_048d&pid_9507#ut100cv5201801150904#{fbf6f530-07b9-11d2-a71e-0000f8004788}\{9963cc0e-ee70-11e0-ba8f-92d34824019b}
USB mode: 0x0200
Vendor id: 0x048D
Product id: 0x9507
Chip type: 0x9507
Device type: 11
Driver version: <IP_ADDRESS>
Link-level firmware version: <IP_ADDRESS>
OFDM firmware version: <IP_ADDRESS>

(32bit)
$ tshides.exe
0: "IT9507 TX Filter"

$ tshides.exe -v --debug=2
debug level set to 2
HiDes: CLSID_Proxy: 17cca71becd711d0b90800a0c9223196
HiDes: checking "IT9507 TX Filter", CLSID {17CCA71B-ECD7-11D0-B908-00A0C9223196}
HiDes: found device "IT9507 TX Filter"
HiDesDevice: getting device information
HiDesDevice: get filter instance
HiDesDevice: calling GetHandleFromObject
WinUtils.GetHandleFromObject: getting IKsObject interface
WinUtils.GetHandleFromObject: IKsObject found, calling KsGetObjectHandle
WinUtils.GetHandleFromObject: handle: 0x000001D8
HiDesDevice: GetHandleFromObject successful
HiDesDevice: creating event for overlapped
HiDesDevice: checking support for property 0, index 0
HiDesDevice: checking support for property 0, index 1
HiDesDevice: checking support for property 1, index 2
HiDesDevice: checking support for property 1, index 3
HiDesDevice: checking support for property 5, index 4
HiDesDevice: getting USB mode
HiDesDevice: getting driver information
HiDesDevice: getting chip type
HiDesDevice: getting device type
Found 1 HiDes devices

Index: 0
Name: "IT9507 TX Filter"
Device: \\?\usb#vid_048d&pid_9507#ut100cv5201801150904#{fbf6f530-07b9-11d2-a71e-0000f8004788}\{9963cc0e-ee70-11e0-ba8f-92d34824019b}
USB mode: 0x0200
Vendor id: 0x048D
Product id: 0x9507
Chip type: 0x9507
Device type: 11
Driver version: <IP_ADDRESS>
Link-level firmware version: <IP_ADDRESS>
OFDM firmware version: <IP_ADDRESS>

However, please help me with a trouble with PCR values and this device...
The Hides UT-100C doesn't reestamp the PCR values before broadcasting the stream. So, with my current muxer tool (mptsd) I'm generting a slower bitrate for the MPTS. And the PCR stamp values with this tool are correct (checked it with an external tool for validation). But the problem is when injesting this TS with the tsp tool. The result when capturing the RF signal with a tuner has incorrect timing PCR values. Any idea about how to solve this problem?
For sure, I prefer to generate a slower MPTS. This assures no overflow with the modulator device. And futhermore, solves the problem of the writes with the Hides buggy driver. As you write less data, the internal buffer never goes full. :smile:
I hope you can help.
Thank you, and you do a very good job! :+1:

Thanks for the feedback.
I worried a bit about the 32 bit version on Windows 64 bits. But it is working, so it seems ok.
I worry a little bit more on Linux about the CPU load because of the insane polling architecture of the driver.
I will try to adjust the details when I receive one device.
The problem with PCR maybe also linked to the insertion of null packets. On a modulator, the output bitrate is fixed and only depends on the modulation parameters. When you provide more that this, the device will slow you down. But if you provide less, it should insert null packets. I have no idea of the HiDes behavior in this case.

Hi @lelegard ,

The problem with PCR maybe also linked to the insertion of null packets. On a modulator, the output bitrate is fixed and only depends on the modulation parameters. When you provide more that this, the device will slow you down. But if you provide less, it should insert null packets. I have no idea of the HiDes behavior in this case.

As I see, when the bitrate is less, the HiDes modulator just insert null packets to complete the bitrate. And in fact, I prefer to push a slower TS, because is more safe. However, in this case I need a method for adapting the PCR values. Any idea about how to achieve it using the tsp tool when doing the -O hides?

If the modulator inserts null packets but does not fix PCR's, then they are impossible to fix in theory.
We could easily fix the PCR in the hides plugin. We know the precise bitrate from the modulation parameters and we can fix PCR's based on the total number of TS packets between two PCR's in the same PID. The plugin merge already does this (based on a less precise bitrate however).
However, if the modulator inserts one or more null packets between the two, the PCR becomes incorrect again. And this time, we have no way to fix this in software because it is too late.
I think that a reasonable approach could be to fix PCR's in hides, which will give an acceptable value if the input stream is not too low and not too many null packets are added.
What do you think ?

What do you think ?

Well, I'm not sure... I suspose that the other modulator plugin (dektec) doesn't need it, as the driver or hardware fixes the values. Right? In this case, for compatibility then will be interesting to do it inside the hides plugin. However, I feel for other scenarios the same functionality (PCR fixing) will be interesting.
In any case: If I like to do it without the hides plugin... I can do it?
If not, why not create first an specific plugin for it; and after include the same code (class) inside the 'hides' plugin for automatically apply it?

Hi @lelegard ,
I really need a solution for PCR and bitrate adaptation. I'm using a tool (mptsd) that generates one output stream with a bitrate that isn't the exact value of the DVB-T modulation bitrate. So, I'm trying to use it with a lower bitrate (around less than 10Kbps of difference). This tool generates the correct PCR values for the target bitrate (checked with an external tool). But, when I like to input this stream to the hides plugin I can't obtain a good signal.
At time I'm using this line:
tsp.exe -r -b 16076256 -I ip <IP_ADDRESS>:10000 --buffer-size 8388608 -O hides -b 8 -c 16-QAM -f 474000000 -g 1/32 -h 2/3 -t 8K
An the input stream has a bitrate of 16,076,256 bps; and the modulation has 16,085,561 b/s (in fact, with a half bit more).
Any idea of the best method for adapting the bitrate?

Hello happy TSDuck users,
It seems that the support for HiDes modulators is working fine now. Please test and report feedback here. Next week, if all tests are satisfactory, I will release version 3.13 with HiDes support.
The HiDes / ITE device drivers can be found at https://tsduck.io, then Download -> HiDes drivers (direct link).
Windows
Install the driver. If you already had it, there is no change, no need to reinstall.
Pre-built test installers are available here:

https://tsduck.io/download/test/TSDuck-Win64-3.13-817.exe
https://tsduck.io/download/test/TSDuck-Win32-3.13-817.exe
https://tsduck.io/download/test/TSDuck-Win64-3.13-817-Portable.zip
https://tsduck.io/download/test/TSDuck-Win32-3.13-817-Portable.zip

Linux
The original driver from HiDes / ITE was hopeless, with an insane "polling design". I had to modify it (and consequently create a fork of the driver). You must upgrade the DKMS package of the driver. This is version <IP_ADDRESS>w with w for "waiting write", as opposed to the original "polling write".
Then, pull and rebuild TSDuck.
The modified driver is compatible with the previous version. So, if you have legacy applications using the old it950x driver, they should still work. They should even work better since all write operations will succeed at once and no polling / retry is necessary.

Hi,
In Windows it works like a charm! :open_mouth:
Also with the HTTP input plugin... so reading from HTTP and modulating with one UT-100C.
It seems a very powerfull tool for demos using a notebook and a cheap USB modulator.
Perhaps you like to include a simple tool tsmodulate that has simple options for setting the DVB-T parameters, select Hides or Dektec (or any future module), and read from HTTP or Multicast.
Regards!
Note: For the HTTP input in Windows I need to allways use --max-queue as the default value (1000) is quite small. Perhaps you like to increment it in the source, or comment about it in the documentation.

Perhaps you like to include a simple tool tsmodulate that has simple options for setting the DVB-T parameters, select Hides or Dektec (or any future module), and read from HTTP or Multicast.

Can't you write a simple one-line script to do this ?
TSDuck is all about scripting. It is a set of basic tools. A small number of tools giving the opportunity to write an infinite number of scripts.

It seems a very powerfull tool for demos using a notebook and a cheap USB modulator.

TSDuck was already used for such demos using a Dektec DTU-315 USB modulator.
The DTU-315 is more expensive than a UT-100C (although way much cheaper than a professional / production modulator) but it has the advantage to support all types of modulation (not only DVB-T like UT-100C).

TSDuck was already used for such demos using a Dektec DTU-315 USB modulator.
The DTU-315 is more expensive than a UT-100C  but it has the advantage to support all types of modulation (not only DVB-T like UT-100C).

:laughing: In the order of 30 or 40 times more!!! You can adquire one new UTC-100C as lower as €120!
Seriously, Dektec products are PRO devices, even with things for testing and development. For home or entusiats the HiDes is the only affordable solution. The only thing I miss with it is the DVB-S modulation!

Keep an eye out for DTA-111s on eBay.  They were selling for <£100 in the UK recently. I think they were from DVB-T ring-main modulators used in shops to play a promotional loop.
PCI not PCI-E - but they work very nicely with TSDuck - and allow for DVB-C modulation (which is useful if you are trying to encode 40Mbs HEVC streams that are too high bitrate for DVB-T)

Hi @skunge2000 ,
Thank you for sharing this info! :+1:
We have now some different low cost options.
In any case, personally I prefer to use only USB devices (I hate internal devices). And the only advantage of the DTA-111s over the UT-100C is the DVB-C modulation (as you mentioned). If you know about a low cost DVB-S or DVB-S2 device, please advise us.
Regards. :smile:

Any other feedback or problem with HiDes support in TSDuck?
If there is none, I will release version 3.13 next week.

Any other feedback or problem with HiDes support in TSDuck?

My only problem with it is how to achieve a perfect bitrate with PCR marks. However, I feel this isn't a problem to do a release.
Thank you!

I just published TSDuck version 3.13-834 with first official HiDes support.
I close this issue which was the original request for this. Please open new individual issues in case of problem with HiDes devices.
Thanks again Evariste and Steve.

Small question.. what about UT100A ? is it just an UT100C + demodulator or is better to get an UT100C because it is somehow optimized?


more functions/drake

@bpbond
I'm having trouble with some targets in my drake plan. I am trying to make scatterplots with p-values, TukeyHSD letters included.
But I keep getting errors:
https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2e-fticr_drake_plan.R#L106-L107

x fail gg_totalcounts
Error: target gg_totalcounts failed.
diagnose(gg_totalcounts)$error$message:
object 'peakcounts_core' not found

https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2e-fticr_drake_plan.R#L156

x fail relabund_coresrelabund_scatterplots
Error: target relabund_coresrelabund_scatterplots failed.
diagnose(relabund_coresrelabund_scatterplots)$error$message:
object 'relabund_cores_complex' not found

^^^
These targets are linked to functions in the 2f-fticr-pipeline_plotting.R script (links below). If I run the functions outside of drake, they work fine. But when I run the drake plan, it breaks. It may be because of the way I have written the functions? Also, the do_gg_totalcounts function is the final step in a line of functions, maybe that causes it to break in drake?
https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2f-fticr-pipeline_plotting.R#L293
https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2f-fticr-pipeline_plotting.R#L414

Wow, you've really got a namespace problem. Something is using the plyr package, but you're also using dplyr throughout, and I'm getting namespace collisions (e.g. summarize() calls are using plyr in some circumstances, which is not what you want and generates errors). That's one problem, and it's causing a lot of others.
To your question: the gg_totalcounts target calls do_gg_totalcounts, and here's the beginning of that routine:
do_gg_totalcounts <- function(peakcounts_core) {
  browser()
  totalcounts_label <-
    peakcounts_core %>%
    do_labels_totalcounts_intact(.$counts, .$Moisture, .$Amendments)

This is already looking weird and bad, but look at do_label_totalcounts_intact:
do_labels_totalcounts_intact = function(depvar, Moisture, Amendments, Wetting){
  # 1. p-values for moisture ----
  moisture_label =
    peakcounts_core %>%

The parameters don't match up, and the function is calling peakcounts_core which doesn't exist in this function. So yeah at this point the code throws up its hand and says wtf.

I'm opening a PR with fixes for some of the above. In particular look at my changes to 2f-fticr-pipeline_plotting.R. The pipeline now makes it through the R Markdown targets.

That makes sense, I think. I assumed I didn't have to add the file name in the function structure, because that isn't changing. I guess not.
Thanks!

Question for you: how to you get those very nice looking file references in your comments?
I mean these:

I get the permalink from the code file, and then add a line range
example:
https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2f-fticr-pipeline_plotting.R #L414-L416
I added the space before the # so you can see the link
https://github.com/kaizadp/tes_spatial_access/blob/5f34b22e8bf9d72448d70f224ba426224896f850/code/2f-fticr-pipeline_plotting.R#L414-L416

Oh cool, thanks.


Trading Outpost now has half buy-only and half sell-only pallets

About the PR
I added two new entity types, a buy and sell only cargo pallet, and added them to the trading outpost in place of the old pallets.
Why / Balance
Since the day this was added, every single shift, at some point I'll hear someone in cargo yelling about how "You sold stuff I just bought!"
This seemed like the easiest way to fix the problem.
Technical details
Added a variable to the cargo pallet component for labeling which type it is, added two new varieties of the cargo pallet to the yml, and adjusted all the calls for GetCargoPallets() to have boolean variables for buyOnly and sellOnly to tell the function what kind of call you're looking for.
If you don't give it any specifics it'll still treat any pallet as a two-way one, but this function is only called 2 or 3 times and I've adjusted them all and commented the function itself for anyone looking to change/add it in the future.
The old pallet is still in the game and is set to "both" by default, so it should work just fine for backwards compatibility.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
Shouldn't break anything, I've left the old pallets fully in, and updated them to work with the new GetCargoPallets() function just like they used to. Not sure if/where you'd still need them, but better safe than sorry.
Changelog
:cl:

tweak: The trading outpost now has dedicated buy-only and sell-only pallets. No more accidentally selling orders you just bought. Cargonians rejoice!

I feel like the spriting could use some work, but otherwise, yeah, good stuff.

I feel like the spriting could use some work, but otherwise, yeah, good stuff.

I'm very much an amateur at it but I think it gets the point across at least. What would you tweak?

Great change but the sprites are, as a maintainer would put it, horrendous. But that's what the review process is for.
Instead of crates, you might want to use the more culturally-familiar shopping cart. Or replace the closed crate with an open crate.

Also, having the icon on every single pallet is way too noisy, so I would suggest making the icon low-contrast and putting a high-contrast icon as a decal on the trading post floor.
Alternatively just keep the old sprites because the pallets can be examined. Some color-coding would still be nice.
Keep accessibility in mind (colorblindness)

Great change but the sprites are, as a maintainer would put it, horrendous. But that's what the review process is for.
Instead of crates, you might want to use the more culturally-familiar shopping cart. Or replace the closed crate with an open crate.
Also, having the icon on every single pallet is way too noisy, so I would suggest making the icon low-contrast and putting a high-contrast icon as a decal on the trading post floor.
Alternatively just keep the old sprites because the pallets can be examined. Some color-coding would still be nice.
Keep accessibility in mind (colorblindness)

Cargo isn't usually hauling shopping carts full of things around. I'll admit it's a bit bright and bold but c'mon.
I do agree on it being too noisy for each tile, Not sure how to do big decals but I'm sure I can figure it out. A decal of a big open crate with an arrow going in/out of it would work pretty well.

good pr

Honestly I think they look fine! I'm no expert so I wont make suggestions but overall 👍 👍

I quickly drew sprites, which in my opinion would be better suited

Oh I REALLY like that. The little arrows in the corner takes care of the colorblind issue too. I can integrate those and credit you if you'd like?

yeah, sure

Alrighty! I updated the textures and the meta credit, and changed the checker from using a string to using an enum. Fixed the meta janky spacing as well.
Went back in and tested it and we've got it working flawlessly. I can't think of anything else that needs fixing.

Maybe add icon smoothing? 🤔

Maybe add icon smoothing? 🤔

i kind of like it without

Maybe add icon smoothing? 🤔

Man you made the icons
Can we please just merge this someone sold my steel crates today
How did this trade station get approved like this and this is under so much scrutiny lol

That's the fun of PRs: you never know if you're going to get a blind merge or excruciating nitpicking!
I think they look fine as-is, but I'd be curious to see how they look with icon smoothing. Maybe someone familiar with how to set that up could try it out as a follow-up PR?

The sprite looks fine as is.

this is a 3 day old pr that got a first round of review literally two days ago. there are 250-odd PRs on the repo that need reviewing and there's always more. There's no need to sit around begging for merges. it's gonna get reviewed again once someone has time.

Changed enum to flags and bitmask-friendly format,
Moved enum outside of the class,
Used bitmasks for more compact if checks
Done, done, and done.
Tested and working.


find_pid broken

silly me, adding the config option broke my find_pid method and I'm not supposed to script while tired


Add project-archived banner

Contributes to https://github.com/brigadecore/brigade/issues/1983
Preview:

Screenshots
Desktop:

Mobile:

/cc @jorgearteiro


Dodging Panache Bug

Not tested but I made the same mistake once lol
willSpend should be wrapped into a component data, or it will apply to all iinstances of the component
eg. one character trigger Dodging Panache, then his willSpend will affect another person's Dodging Panache

Also it should be RuleAttackRoll, not RuleAttackWithWeapon?

should be fine since willSpend is set back to false right after the triggering event right?

and RuleAttackWithWeapon was because i only wanted it to work against weapon attacks, i think

Yeah on second thought, it should be fine (only buggy in purely theoretical cases that won't ever materialize)
Thanks so much for your mod!


[CAS-1458] @Transaction annotations generate database calls during authentication

Background information on this issue can be found in the following cas-user mailing list thread: https://lists.wisc.edu/read/messages?id=33283543
If a JPA service registry is configured, a database outage should not cause CAS authentication to fail. However, due to @Transaction annotations placed on methods in the class CentralAuthenticationServiceImpl, database transactions are used for non-service-registry methods. Specifically, createTicketGrantingTicket() is called during authentication, which causes the transaction manager to call "SET autocommit=0; commit; SET autocommit=1" against the database. When the service registry database is offline, all authentication attempts cause a "CAS is unavailable" error page to be displayed.
I worked around this by disabling @Transaction annotations and using declarative XML to put transactions on only a few methods. I'll attach the changes I made for this in case other CAS implementers want this workaround.
Perhaps the @Transaction annotations can be removed from the CentralAuthenticationServiceImpl class or the service registry can be reworked somehow.
Environment: JPA ticket registry
Reported by: Andrew Morgan, id: protag
Created: Fri, 30 May 2014 10:57:24 -0700
Updated: Fri, 30 May 2014 11:00:12 -0700
JIRA: https://issues.jasig.org/browse/CAS-1458
Diff of changes to deployerConfigContext.xml to remove the annotation-driven transaction manager and use declarative XML instead.

Thanks for this, I was just looking into this issue myself and will be using this method. I'd love a more "supported" solution as, obviously, if the service manager gets refactored, this'll silently disable transactionality in the service manager.

Handled via #1003


[ART-3110] Add assembly parameters to promote job

Support promoting releases by specifying the name of assemblies instead of nightlies. To keep backward compatibility, promoting releases for stream assembliy still requires specifying nightlies.
Releases names are derived from assembly names. For standard releases, release name is the assembly name; For custom releases, release name is X.Y.0-assembly.ASSEMBLY_NAME.
If nightlies are not defined in assembly config basis.reference_releases, release images will be created by oc adm release new --from-image-stream X.Y-art-assembly-ASSEMBLY_NAME[-ARCH].
Don't create Cincinnati PRs for custom releases.
Don't check for blocker bugs for FCs, RCs, and custom releases.
Update multi_promote job to accommodate the promote job change.
Update multi_promote job to eliminate the hardcoded arch list. The arch list should be retrieved from commonlib.ocpReleaseState.

Test builds:

custom release x86_64 (without reference_releases): https://saml.buildvm.openshift.eng.bos.redhat.com:8888/job/hack/job/yuxzhu/job/build_promote/61/
custom release s390x (without reference_releases): https://saml.buildvm.openshift.eng.bos.redhat.com:8888/job/hack/job/yuxzhu/job/build_promote/64/
custom release ppc64le (without reference_releases): https://saml.buildvm.openshift.eng.bos.redhat.com:8888/job/hack/job/yuxzhu/job/build_promote/60/
4.7.21 ppc64le (with reference_releases, dry run): https://saml.buildvm.openshift.eng.bos.redhat.com:8888/job/hack/job/yuxzhu/job/build_promote/57/

Note: Promoting FC or RC releases using assemblies is not supported.

PR rebased.


muted not seen as boolean

muted need to be set as property, and boolean value.

@Kflash I remember you had long list for boolean properties back then? Mind sharing?

Added muted to the list.


675 UI tweeks plus unit tests

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes #[issue number]
Type
Choose one: (Bug fix | Feature | Documentation | Testing | Code health | Release | Other)
Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[x] I have built and run the fhircore app to verify my change fixes the issue and/or does not break the app

@AbdulWahabMemon  please resolve these above.
Fixes #[issue number]
Type
Choose one: (Bug fix | Feature | Documentation | Testing | Code health | Release | Other)


CCheckBox icon not rendering correctly

Bug report
Describe the bug
The checkbox renders the raw function instead of the "checked" icon.

There are also 99+ errors in the console
To reproduce

Go to https://chakra-ui-vue-next-playground-2zajhe2uw-chakra-ui.vercel.app/c-checkbox/examples/simple-checkbox
Select the checkbox
If you're under Firefox, no icon is shown. If you're under Chromium based browser, you'll see a weird text. In both cases, inspecting the DOM show a rendered string instead of an icon.

Expected behavior
For the icon to show instead of the function text to print.
Screenshots
System information

OS: All. ( Tested on Mac, Windows and Linux )
Browser (if applies): Chromium based/FF

Additional context
Since we see the raw function string, it's probably just a double call somewhere to the render function. Instead of returning the render function, we probably return a function that return the render function which causes the string render instead of what is expected.
The errors in the console are probably unrelated, they probably come from null objects trying to access property before the component finished mounting or something like that. (It's a lead to confirm)

Fixed


Concurrent bug of gaia compiler in fetching snapshot

as titled

Explanation of the issue:
public class VineyardGraphStore extends GraphStoreService {
...
@Override
public long getLabelId(String label) {
try {
GraphSchema graphSchema = this.schemaFetcher.getSchemaSnapshotPair().getLeft();
return graphSchema.getElement(label).getLabelId();
} catch (Exception e) {
logger.error("label " + label + " is invalid, please check schema");
throw new SchemaNotFoundException("label " + label + " is invalid, please check schema");
}
}
@Override
public int getPropertyId(String propertyName) {
try {
GraphSchema graphSchema = this.schemaFetcher.getSchemaSnapshotPair().getLeft();
return graphSchema.getPropertyId(propertyName);
} catch (Exception e) {
logger.error("property " + propertyName + " is invalid, please check schema");
throw new SchemaNotFoundException("property " + propertyName + " is invalid, please check schema");
}
}
...
}
getXXX always returns data with the latest snapshot and compiler will invoke the functions in different points, which will lead inconsistency data within a query in concurrent read/write context.
It will be fixed when we have some concurrent scenarios.


[EWT-361] Fix broken regex pattern for extracting dataflow job id

Make sure you have checked all steps below.
JIRA

[ ] My PR addresses the following [EWT JIRA]

https://jira.twitter.biz/browse/EWT-361

Description

[ ] The airflow 1.10.4 regex for extracting job id from the dataflow monitoring job url is out of date causing it to extract the location instead. Thus the task fails even though the dataflow job runs successfully.

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[ ] Passes flake8

I suggest using a different regullar expression.. This is recommended by the Dataflow team. Thanks to this, we have a chance that this problem will not happen again.
https://github.com/apache/airflow/commits/master

Thank you @mik-laj for your suggestions. Updated the regex.


Move BLE sample apps from core to nimble repo

We could have sample apps in nimble instead of core repo.
Since sample applications are OS specific we probably need to keep them per os eg  apps/mynewt/ apps/freertos etc.

Cloning the sample apps for each platform isn't really scalable.  The btshell app for example would require copying of a lot of code.  Better would be to make the sample apps use NPL so they are portable across the various platforms.

apps like btshell are not really portable since they have dependencies on mynewt-core (e.g. console, shell) which are out of scope of NPL.
apps like bleprph or blecent (or we can add new apps) could be refactored in a way that it is easy to grab ble-related code and use in port for other OS easily. we may also add an ootb configuration to build on Linux in addition to Mynewt.
but in general I agree we can keep apps for NimBLE in mynewt-nimble instead of mynewt-core to make maintenance easier.

note that sample application will be OS specific even if it will reside in nimble repo

Completed


SAKIII-4050 Revive drag and drop upload

https://jira.sakaiproject.org/browse/SAKIII-4050
Pushing a pull request for initial work that started at the conference in LA!

New pull request against master at https://github.com/sakaiproject/3akai-ux/pull/1188


[#3014] Improved ThreadLocal performance

#3014

Reduce ThreadLocal access
Reduce ThreadLocalMap#Entry creation

Codecov Report

Merging #3015 into master will increase coverage by 0.04%.
The diff coverage is 72.22%.

@@            Coverage Diff             @@
##           master    #3015      +/-   ##
==========================================
+ Coverage   38.19%   38.23%   +0.04%
==========================================
  Files        1917     1919       +2
  Lines       64639    64726      +87
  Branches     9029     9035       +6
==========================================
+ Hits        24691    24751      +60
- Misses      37425    37449      +24
- Partials     2523     2526       +3

Impacted Files
Coverage Δ

...vercorp/pinpoint/test/MockTraceContextFactory.java
65.62% <100%> (ø)
:arrow_up:

...p/pinpoint/profiler/context/ThreadLocalBinder.java
100% <100%> (ø)
:arrow_up:

...nt/profiler/context/ThreadLocalTraceReference.java
100% <100%> (ø)

.../profiler/context/ThreadLocalReferenceFactory.java
66.66% <66.66%> (ø)

...oint/profiler/context/ThreadLocalTraceFactory.java
55% <66.66%> (-7.07%)
:arrow_down:

...rofiler/context/provider/TraceFactoryProvider.java
86.66% <75%> (-4.64%)
:arrow_down:

...m/navercorp/pinpoint/test/OrderedSpanRecorder.java
72.11% <0%> (-1.93%)
:arrow_down:

.../com/navercorp/pinpoint/profiler/context/Span.java
48.14% <0%> (-1.86%)
:arrow_down:

...orp/pinpoint/rpc/server/DefaultPinpointServer.java
75% <0%> (-1.14%)
:arrow_down:

... and 7 more

Continue to review full report at Codecov.

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


Form Field Missing ID or Name Attribute

Issue Description
The issue is related to form fields that lack both an ID and a name attribute, which could potentially prevent browsers from correctly autofilling the form.
Steps to Reproduce

Locally run excalidraw.
See the issues tab in inspect mode.

Expected Behavior
Issues tab in inspect mode should not show id or name attribute related problem.
Screens

Environment

Operating System: Apple M2 pro, macos
Browser (if web-related): chrome
Any other relevant environment details: vs code text editor

Labels
bug
Related Issues
There is another issue which might pertain to the issue mentioned here which is Duplicate form field id in the same which can be noticed above in the screenshot.

Hey, I would like to work on this issue. Can you please assign it to me?

Comes from the <input> checkboxes we use for buttons (toolbar, Library button...). The plan is to migrate them to <button> instead.


Linux-ARM support (Raspberry Pi) for .net core

Whilst SDK supports UWP on ARM atm, is .net core on Linux-ARM support on the roadmap?

There is no definite schedule yet, but Linux-ARM32 is something we will be probably working on in the coming months. Linux-ARM64 (with .NET Core 3.0) has not been discussed yet.

Thanks @pankopon.  How about .net core on Windows 10 IoT Core (ARM)?

It is not on the roadmap at the moment, but I added a backlog item about this and we will consider it at some point.

#https://github.com/MicrosoftDocs/azure-docs/issues/52932

When targeting Linux ARM64, and using C# - the .NET Core 3.x (dotnet-sdk-3.x package) is required. If you're targeting ARM32 or ARM64, Python is not supported.

(from the docs https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-sdk?tabs=linux%2Cubuntu%2Cios-xcode%2Cmac-xcode%2Candroid-studio#get-the-speech-sdk
????

also on the release notes page for 1.11 Linux:

Added support for .NET Core C# on Linux ARM32 and ARM64.
https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/releasenotes


Reference other variables in values.yaml.gotmpl

Hi,
I would like to achieve something like the below.
values.yaml.gotmpl
customer: xxxxx
domain: {{ .Values.customer }}.example.com

This obviously does not work. Is there another way to reference a previous variable in values.yaml.gotmpl that I'm missing?
Thanks!

Try to use the recommendation from this document: https://github.com/roboll/helmfile/blob/master/docs/writing-helmfile.md#layering-state-template-files

Hi @mumoshu, Hi @MurzNN
I would like to add my question here, I hope that's fine.
Is this also possible with environment values? Can I use Go templating and the state layering there? What I'm trying to do is something like:
org:
  keyvault:
    kv1: org-kv1.vault.azure.net
---
org:
  database:
    postgres96:
      host: ref+azurekeyvault://{{ .Values.company.keyvault.kv1 }}/azure-postgresql-96-host
      user: ref+azurekeyvault://{{ .Values.company.keyvault.kv1 }}/azure-postgresql-96-user
      ...
    postgres11:
      host: ref+azurekeyvault://{{ .Values.company.keyvault.kv1 }}/azure-postgresql-11-host
      user: ref+azurekeyvault://{{ .Values.company.keyvault.kv1 }}/azure-postgresql-11-user
      ...

But it does not work. I get something like:
err: failed to read helmfile.yaml: failed to load environment values file "environments/dev.yaml.gotmpl": failed to render [environments/dev.yaml.gotmpl], because of template: stringTemplate:17:42: executing "stringTemplate" at <.Values.org.keyvault.kv1>: map has no entry for key "org"

Any help would be very appreciated. Thank you!

Hi,
Currently I have the same problem like @pathob
helmfile.yaml
releases:
- name: myservice
  namespace: test
  chart: chart/parent
  values:
  - values.yaml.gotmpl

values.yaml.gotmpl
customer: xxxxx
---
domain: {{ .Values.customer }}.example.com

this leads to the following errors @MurzNN
helmfile write-values
> ... in ./helmfile.yaml: failed to render values files "values.yaml.gotmpl": failed to render [values.yaml.gotmpl], because of template: stringTemplate:3:18:
executing "stringTemplate" at <.Values.customer>: map has no entry for key "customer"

Thanks for your support.

@pathob @Ro-Fo Hey! As far as I remember, I don't think --- was supported in values file templates.
It's supported in helmfile.yaml templates so all I can say is that you'd better handle such "layering" in helmfile yamls, not values templates.
You could also try combining dict, merge, readFile, and fromYaml to merge objects, and finally outputting yaml by piping the result to toYaml in your values template.

Same issue here. I'm trying to migrate an existing chart over to helmfile. The original chart used named templates and did a bunch of stuff that can be simplified by templating out a values file w/ helmfile.
So I thought I'd be able to do something like this:
# helmfile
releases:
- name: mychart
  namespace: test
  chart: mychart
  values:
  - values.yaml
  - custom-thing.gotmpl

# values.yaml
trueThing: true

# custom-thing.gotmpl
{{- if .Values.trueThing }}
do it
{{- else }}
don't do it
{{- end }}

How can I achieve this?


Feature: Removed number of open tabs from the app title

Resolved / Related Issues
To prevent extra work, all changes to the Files codebase must link to an approved issue marked as Ready to build. Please insert the issue number following the hashtag with the issue number that this Pull Request resolves.

Closes #16517

Steps used to test these changes
Stability is a top priority for Files and all changes are required to go through testing before being merged into the repo. Please include a list of steps that you used to test this PR.

Opened Files ...
...

We should remove "- Files" alternatively

Notepad and Terminal don't display the number of tabs, but Microsoft Edge does. In any case, it's a minor change and we can bring it back if there is user demand.

We should remove "- Files" alternatively

@0x5bfa I think it's important for the app name to always be included in the title.


quit job if one of submodel's executables is not found.

Situation:
one of the submodel's executables in config.yaml contains a typo, is not found.
Current behaviour:
executable is excluded from manifest, but other submodels are started. They wait for the missing submodel's data until the walltime runs out.
Expected behaviour:
payu refuses to submit run, or exits run early with informative error message.

Seems reasonable. I thought payu checked if there was an executable. Which (sub)model was this @HoWol76?

In my case, it was CICE


Add gnéchlár for feature for irish

Gnéchlár is a more correct word for a software feature in irish.

Hello!
I've seen you created the same Pull Request in the official cucumber/gherkin3 repo (where I think it belongs), so I'm closing this one ! :smiley:

Yes I did. Sorry for the pull request in the wrong repo :) Thanks
On 19 November 2015 at 16:32, Nicolas Moreau<EMAIL_ADDRESS>wrote:

Hello!
I've seen you created the same Pull Request in the official
cucumber/gherkin3 repo (where I think it belongs), so I'm closing this one
! [image: :smiley:]
—
Reply to this email directly or view it on GitHub
https://github.com/moreau-nicolas/gherkin3/pull/1#issuecomment-158110220
.

--
If you need a language teacher try here. http://www.italki.com/?ref=1177632


Correction: copyright fix

Summary of the changes / Why this is an improvement

Copyright update as part of copyright review

Checklist

[ ] CLA is signed

Hi Mathijs,
I don't know why this fails, but on GHA everything is fine, see [1]. We might want to migrate away from Travis CI anyway, see #98.
With kind regards,
Andreas.
[1] https://github.com/crate/crate-dbal/actions/runs/479381905

Hi Mathijs,
I don't know why this fails, but on GHA everything is fine, see [1]. We might want to migrate away from Travis CI anyway, see #98.
With kind regards,
Andreas.
[1] https://github.com/crate/crate-dbal/actions/runs/479381905

A new inspection was created.

A new inspection was created.

Pull Request Test Coverage Report for Build 501205930

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.651%

Totals

Change from base Build 497233606:
0.0%

Covered Lines:
291

Relevant Lines:
332

💛  - Coveralls

Pull Request Test Coverage Report for Build 501205930

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.651%

Totals

Change from base Build 497233606:
0.0%

Covered Lines:
291

Relevant Lines:
332

💛  - Coveralls

The inspection completed: No new issues

The inspection completed: No new issues


Can't flash send requests in atom-shell?

I'm trying to embed some Youku videos in atom-shell. Its flash player loaded successful, but I didn't see any  requests sent by the flash player in console. It throw an error after a while. Here is a screenshot.
My codes are following.
main.js:
var app = require('app');
var BrowserWindow = require('browser-window');
require('crash-reporter').start();
var mainWindow = null;

app.on('ready', function() {
  mainWindow = new BrowserWindow({width: 1200, height: 800, 'web-preferences': {'web-security': false, 'plugins': true, 'node-integration': false}});
  mainWindow.loadUrl('file://' + __dirname + '/index.html');
});

index.html:
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
    <embed src="http://player.youku.com/player.php/sid/XMzQ4NDg0OTUy/v.swf" width="600" height="480" quality="high" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true">
</body>
</html>

Thank you!

@zcbenz looks like we need to append this flag to the render process switches::kDisableDirectNPAPIRequests

Chrome will remove support for NPAPI plugins soon, so I'm merging this to #912.


Improve Support the file cache profile iin olap scan node and Update the profile

Proposed changes
Issue Number: close #xxx
Problem summary
We want to use file cache for caching cold data in S3. When reading them, we want to know where the data come from and the time taken to read the datas. So we support the metrics in olap scan node. And for clearing the information, i also update the fields about the metrics.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

Please hold until this PR #17586 merged, thank you

run buildall

run buildall

LGTM

run buildall


Run target function with no test harness

I'd like to use libtest-mimic to support MPI, which will involve running a function in the current executable with no test harness semantics. If I were to add such a thing to simple.rs, the new check_mpi() would involve running a Command that amounts to
mpiexec -n 2 target/debug/examples/simple-60c49fe0be82d931 --just-run-function-with-no-harness main_for_check_mpi

This creates multiple processes that communicate between themselves. The check_mpi() would check that they complete successfully and produce desired output. I want main_for_check_mpi() to be able to live in the same source file and executable as check_mpi(), but haven't found a way to do this with libtest-mimic.
Is this a use case that might be in scope for libtest-mimic? Either way, do you have implementation suggestions?

I'm afraid that I'm still not sure I understand what exactly you are describing. My understanding is:

You want the test executable, when no CLI arguments are given, or when only the currently supported CLI arguments are given, to just behave like it does now.
However, if a special CLI argument is given (you called it --just-run-function-with-no-harness), then the whole test running logic is skipped and main will just call a specific function and that's it.

In that case, this would be out of scope for this library IMO, but in particular because it is really easy to add that on top. You can just check std::env::args() yourself to see if this special CLI argument is given. And if it is, call the function yourself. If not, then just do the other stuff, i.e. call libtest_mimic::Arguments::from_args() and later libtest_mimic::run(). If you want to be a little more fancy about it, I guess you can also use clap with some special attributes to inline libtests_mimic::Arguments into your struct or something like that.
Is my understanding correct?

Yeah, that's right. I wanted to be able to define the entry point where I register Trial::test and it felt too clumsy to do outside. I've been caught on other things this past month, but will try using this construction and I think it'll be able to meet my needs.


Introduce compose lint

Is your feature request related to a problem? Please describe.
Introduce compose lint to scan through code and keep the coding style consistent

Hey @hieuwu , I want to take on this. But, can you please elaborate this a little bit. Should I add ktlint?

Hey @hieuwu , I want to take on this. But, can you please elaborate this a little bit. Should I add ktlint?

Could you please try https://slackhq.github.io/compose-lints/ ?


fix:removed bug in front end lib random quote project (#35459)

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #35459

Changed <codea> int line #17 to a
Removed the extra space between #tweet-quote and  a in line #22 as @RandellDawson did.

These were responsible for issue #35459 and have been resolved.

@RandellDawson , I accidentally closed the previous PR while trying to update the local repository. I am sorry about it and will be careful next time.
I have made the required changes including removing the extra space which you added to previous PR. Please review it once and sorry for the inconvenience caused. Thank you.

Thank you @moT01 .... Looking forward to contribute more.


Enhancement: each month a slightly different color

I'd like each month to be a slightly different "gray" color. Like striping in an excel data. For blocks with no info to report make odd months dark gray, and even months a slightly lighter dark gray, just so visibly it is a little easier to see at a glance.

it would be cool if each field had class like monthname, so we could set styles to the 12 month separately imho

I created a pull request to allow this exact behavior.
The code updates would require additional custom CSS code like the following
/* Alters the color of every second month */
.theme-dark .heatmap-calendar-boxes .month-feb.isEmpty,
.theme-dark .heatmap-calendar-boxes .month-apr.isEmpty,
.theme-dark .heatmap-calendar-boxes .month-jun.isEmpty,
.theme-dark .heatmap-calendar-boxes .month-aug.isEmpty,
.theme-dark .heatmap-calendar-boxes .month-oct.isEmpty,
.theme-dark .heatmap-calendar-boxes .month-dec.isEmpty {
	background: #414141;
	/* border: 1px solid #414141;*/
}

And lead to the following result:


Date Picker: Fix resetView() reset range state

Please make sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
[ ] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

Please add unit test.

inactive


Custom file search patterns

Allow file name patterns to be configurable. package.json is unlikely to change but Dockerfile or others might.

Waiting on #939

Duplicate of #799


reopen breadcrumb to the position where I left.

In a really long code file, I always use the new breadcrumb in vscode to navigate within the file like this:

When I find the wanted property or function, I click the item in this list and the popup menu list would be closed.
But I reopen that breadcrumb menu, I wish it should be in the position where I left, not just the top.
You know, the reason behind the scene is locality. I always code in a little area, not whole through the file, wish the feature could be implemented in future release.

Not sure that I understand. Selecting a breadcrumb item always reveals that item, that also means selecting the last item (rhs) reveals your current position. So, that should do what you are wishing for

I mean within a single file.


changed markdown that should be markup

Fixes markdown/markdown issue called out by @levimoore in issue #34

Thank you!


Fix intermittent pgsql wallet unittest issues, add logs

…s, add err logs

Where functions signatures specified arg of type '*const c_char', the data is
sent here everywhere as CString, while "options_json" was passed as '*const i8',
causing that sometime, a random character were added to end of this string, making
it invalid JSON and eventually throwing serde_json::Error then converted into
WalletStorageError::ConfigError.
Sometimes when running tests with DatabasePerWallet strategy, one test expects
that a wallet with name 'walle1' doeos not exist before it's supposedly destroyed
at cleanup, but when the test attempts to create this wallet, it fails on
"WalletAlreadyExists". Adding 1ms delay at the end of testing _cleanup()
method solved this issue.
Add some error logging on failures before a specific error is mapped into
a more generic error such as "WalletStorageError".

Signed-off-by: Patrik Stas<EMAIL_ADDRESS>

Hi @ianco , as you pointed out in my other PR failing unit tests, I started fixing that issue and I found that many unit tests were failing intermittently on my system (on the v1.14.1 release).
So this should fix it, getting all 180 tests passed on both strategies with these changes. On master branch I typically get randomly 5 to 10 failing unit tests.


Add release automation

This makes it so making a release will automatically attach the *.exe files built via github actions.

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA


Hooks not working

Laravel Version: lastest
Voyager Version: lastest
PHP Version: 7
Database Driver & Version: Mysql

Description:
The Hooks link in the menu doesn't appear, into the menu builder it is there, but not in the actual menu, and I cannot access the hooks or exist other way to access them?
Steps To Reproduce:
Just fresh install of voyager
note: I dit add provider for larapack hooks and larapack voyager hook, and nothing changed.

This is a problem with the voyager-hooks package, not with voyager itself.  It's been reported a few times previously: https://github.com/the-control-group/voyager/issues/2251

@phillipesouza I added a PR #2402 for quick fix for this


Save & Load

Describe the solution you'd like
Save and Load functionality in localstorage

[ ] Save in local storage
[ ] Save as json


There is already a copyID check for the contents of a quickfix list (context, user data and callback function).  So there is no need to add it to the quickfix list also.


Set github token in travis-ci to enable it to build documentation

On develop branch...
In order to deploy documentation to github pages, need to set $GITHUB_TOKEN  in the Travis CI settings page of the repository as a secure variable per: https://docs.travis-ci.com/user/deployment/pages/
Can copy what was done for network_wrangler

Okay. I think it's set up. Please have a look and lemme know if it's working before closing.

Confirmed working as: https://wsp-sag.github.io/client_met_council_wrangler_utilities/


[SHOWS] Add internal podcasts to mobile, enable zapping

TODO: Figure out how to pass timestamp data via zap

add shows: https://github.com/wavlake/mobile/pull/101
timestamps on zaps: https://github.com/wavlake/mobile/pull/104


change pointer cursor to help cursor for values listings

From @samussiah's suggestion here

Expected Result: The cursor should display a pointer on the page until a user hovers over the values listing included underneath the variable header; that cursor turns into a help question mark.
Outcome: Pass


trainning script？

i pretented to use ur method and fine-tunein on other dataset，could u provide ur trainning script？

Dear ShmilyISCAS,
Thank you for your message.
Since you are interested in fine-tuning the model, I will provide to you the training script on FER+ where I fine-tuned ESR-9 (i.e., Ensemble with Shared Representations with nine convolutional branches) originally trained on AffectNet.
When are you planning to start your experiments?
I would have to clean/refactor the code before uploading it to the GitHub, but if you have a coming deadline I can send the current version to your email.
Best,
Henrique Siqueira

thx for ur reply,i am now doing my bachelor project,i prepare to start experiment next week,current version is ok,many thanks

Great!
I have sent it to you by email.
Best,
Henrique
p.s. I will close this issue and open a new issue for each training script that is missing.


Add Missing Subscribe Button and Implement Welcome Email Functionality

Description:
This PR addresses the issue of the missing "Subscribe" button and implements the functionality to send a welcome email to new subscribers.
Changes included:
1.Subscribe Button:

Added a "Subscribe" button to the [specific page/section] for users to subscribe to our service.
Styled the button to match the existing design and layout.

2.Welcome Email Functionality:

Integrated a welcome email system that sends a confirmation and greeting message once a user subscribes.
The email includes details about their subscription, features, and contact information.
The email content and structure can be easily modified in the future.

Screen recording  and screenshot:
Screencast from 2024-10-13 10-45-19.webm
and screenshot of email

Related Issues:
Fixes #73

@Saurabhchaudhary9799 Great Work!!
Happy Coding!

@Saurabhchaudhary9799 Great Work!! Happy Coding!

Thanks


Include the time (and the place?) of the action potential excitation in the results table

I just put our thoughts from the email here:
I thought it might be useful to also put the time at which the action potential is elicited into the results table.
I agree that also putting the time and location of the action potential in the results table would be very useful: this is indeed also possible with our SENN code (with ActivationTable=1 and SweepActI = 0, SENNfiberCP will calculate the location/position and also the speed with which the AP propagates in the orthodromic and antidromic directions). The activation table in G-SENN will list all locations/times at which action potentials are initiated (in most cases, this is only one location, but for some waveforms it is possible that action potentials start at multiple locations almost simultaneously).
We can make an additional table in the GUI or make the existing table scrollable, to include the information of the activation table. For example, the AP location and latency can be calculated after the threshold is determined for a current injection just above the threshold (e.g., 10% higher than the threshold value).
I think R-SENN provides the time at which the maximum voltage is reached and the node at which this happens. I think with the current parameters this is always the first or the last node if I’m not mistaken. I’ll try to extract that information so that we can put it in the EONS results table.

For G-SENN we could take the first action potential and put it in the results table - and omit the others.
One can still get the detailed results table for G-SENN by specifying an E-field value.


Plugin don't convert all images bug

When I run convert, it can handle most of the images up to the last 605 images (I have about 3600 images). In request is displayed converted_images:0  and so the whole process is looped

Hi @danielkoptak,
Unfortunately I can't reproduce this error.
I've tested with 3500 images in my environment - most of them converted to webp format.
Could You give me more info about:

PHP version
PHP settings (max_execution_time, max_input_time, memory_limit)
images format which You want to convert (remember that extension working with jpg, jpeg and png)

In case any problems with large amount of images to processing You can refresh page and click on the convert button again.
Regards

Grav v<IP_ADDRESS>
PHP Version 7.4.32
max_execution_time 90
max_input_time 60
memory_limit 2048M
if i refresh the page then i see: Converted 0/605 image - but nothing happens. It looks like one of the images is causing problems when converting. Is there a way to find out the name of the image that is being converted? (console output...)

Hello @danielkoptak,
PHP config looks fine.
You can preview the image data by adding code fragment at the beginning of the convert function, before this line: https://github.com/greenrivers/grav-plugin-webp/blob/master/classes/Helper/Converter.php#L34.

View image data & stop conversion - preview available from browser console.

        var_dump($image);
        exit();

When you start conversion, the process will stop at the first image, so You can preview its data.
It should be the image that blocks the conversion of the other files.
E.g. for Chrome → Network tab, convert request:

Logging for each image.

        $log = \Grav\Common\Grav::instance()['log'];
        $log->info('Image: ' . json_encode($image));

Logs available in logs/grav.log
Example log:
[2022-10-18 17:55:56] grav.INFO: Image: {"extension":"jpg","pathname":"user\/themes\/greenrivers\/images\/desktop_home.jpg","pathinfo":{"pathname":"user\/themes\/greenrivers\/images"},"filenamewithoutextension":"desktop_home"} [] []

It has been over 2 months since last activity in this topic, so I close this issue.
Reopen or create new ticket if You need more explanations, please. :)


Removing override for color theme does not update theme after reload/restart

Testing #138075
Going from:
		"configurationDefaults": {
			"workbench.colorTheme": "Abyss"
		}

To:
		"configurationDefaults": {
		}

And reloading the target window keeps the Abyss color theme. I expected that to update on reload like other settings.

/duplicate
Seems to be duplicate of https://github.com/microsoft/vscode/issues/138160


Change cc_library library wrappers to cc_import

After adding gtest on macOS to my test library, I noticed the issue in #61 is wider than reported.
Running pretty much anything using BazelRIO libraries on macOS probably doesn't work.
I'm guessing this could be because we're using cc_library for precompiled libraries.
I would've written a PR, except cc_import accepts only a single .a or .so file, and we're using many for the cc_library. Any ideas?
@pjreiniger
@connorworley

Guess based on https://github.com/bazelbuild/bazel/issues/4794

Seems like we may need to explicitly name the libraries we want to import. Have you verified that this makes things work on macOS?


again

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

a

a


create class error

java client version: 4.9.0
jdk version: 1.8
java code：

and response result is null，result is true，but can not read this object.
and tail weaviate server logs show:

I'm sorry, this my mistake。the properties value is array in vectorizer。my value is string。


New feature: pretty print multiple files

Add a commandline option which would run the pretty printer on multiple files. This will allow you to reformat all your code at once.
abaplint -pretty_print [file_pattern](-format is already taken). , Take pattern from abaplint.json if not specified.

yea, would like to implement the feature
but on the other hand also keep the number of parameters small for the cli, a different approach could be adding multiple executeables, eg abaplint-pretty, but this is also not great

so this is --fix, closing


When staticFilesLoader loaded language returns 404, the translate directive shows locale key?

Maybe I'm doing something wrong. When you define a fallback language I expected it to be used not only if a translation string can't be found, but also if the entire preferred language file can't be loaded (404). Instead it seems that the locale itself is returned for every translation on the page that's using the translate directive. Note that filters work as expected.
I've demonstrated the issue here: http://plnkr.co/edit/E21fXRHnYbUDOjm5wsma
Is this a bug?

Thank you for reporting. Yes, that is a bug.

Remark for development:
Happens only when defining preferredLanguage first and then the fallbacks.
Other way around: works fine...

@filidorwiese Please follow #920 and confirm that this is exactly your issue. I've attached in this issue a patched plunkr. Thank you!

Thank you, it seems your patch did fix my issue.


Fix iota organization

... and updates outdated libs.

Blocked by https://github.com/47deg/sbt-org-policies/issues/655

This should not be blocked by #655 because plugins are allowed to have different dependencies that the "real" project, from my local test sample of 1. The cats 1.0 upgrade still needs to happen but this PR can just update %%("cats-core") to %%("cats-core", "0.9.0"). Then, we can have a separate PR for the cats 1.0 upgrade.


Wiki Page Incorrect Command

the starting w/systemd wiki page says that to alias default.target to graphical.target using ln you should run ln -s /etc/systemd/system/default.target /usr/lib/systemd/system/graphical.target
this is wrong. it should instead be ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

Fixed. Thank you.


[Feature] Add test case for checking consistency of policy spec between CUE and Golang

For now we have some policy spec in golang stored in apis/core.oam.dev/v1alpha1. The corresponding CUE spec are stored in vela-templates/definitions/internal/policy.
Although these files are trying to describe the same specifications like apis/core.oam.dev/v1alpha1/readonly_policy_types.go and vela-templates/definitions/internal/policy/read-only.cue, there is no source of truth. None of them is generated from each other. So we need some test cases to check if they are consistent.

we need some test case to cover
Originally posted by @wonderflow in https://github.com/kubevela/kubevela/pull/5498#pullrequestreview-1296976654

@chivalryq can you please tell me the location to where the test case is to be made

Please provide some clues about how to verify the consistency between cue and go. Thank you.

Hi @rhzx3519 @swastik959 This is a kinda tricky problem. There are two ways to do that.

Make one is generated from another.
Use some mock data to test it fits both the Go struct and CUE schema.

Considering the generating problems I think it's easier take the second method to implement this. You can add test in apis/core.oam.dev/v1alpha1

Hi @rhzx3519 @swastik959 This is a kinda tricky problem. There are two ways to do that.

Make one is generated from another.
Use some mock data to test it fits both the Go struct and CUE schema.

Considering the generating problems I think it's easier take the second method to implement this. You can add test in apis/core.oam.dev/v1alpha1

Yep, I agree the second method would be an easy way to implement. I'll take this issue.

@rhzx3519 sorry but I have already started working on this issue

@chivalryq I have tried to make a example test case please check if this is what you want


windows service tutorial is not working now

in windows 2016 server
when I run this code
PS C:\python> C:\Python\python.exe C:\Python\py-kms\pykms_Server.py
SO_REUSEPORT not supported on this platform. Exiting...
I got above error,
but when I run it with parameters as below (I learned it from the png file that systemrage sent for implying color issues)
PS C:\Python> C:\Python\python.exe C:\Python\py-kms\pykms_Server.py connect -u

                                                            Client sending

Server received RPC Bind Request !!!                               <===============
Server parsing RPC Bind Request...
Server generating RPC Bind Response...
It is working
Now here my question:
I use the code below from tutorial to create a service but it is notworking as of now. I tried to add the "connect -u" parameter, but couldnt success in that either,  is it really necassary the "connect -u" parameter in order so start the server? or is there any other way that I am missing.
note that Old versions were working without any parameters so the code below was working.
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
import subprocess
class AppServerSvc (win32serviceutil.ServiceFramework):
svc_name = "py-kms"
svc_display_name = "py-kms"
_proc = None
_cmd = ["C:\Python\python.exe", "C:\Python\py-kms\pykms_Server.py"]
def __init__(self,args):
    win32serviceutil.ServiceFramework.__init__(self,args)
    self.hWaitStop = win32event.CreateEvent(None,0,0,None)
    socket.setdefaulttimeout(60)

def SvcStop(self):
    self.killproc()
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    win32event.SetEvent(self.hWaitStop)

def SvcDoRun(self):
    servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                          servicemanager.PYS_SERVICE_STARTED,
                          (self._svc_name_,''))
    self.main()

def main(self):
    self._proc = subprocess.Popen(self._cmd)
    self._proc.wait()

def killproc(self):
    self._proc.kill()

if name == 'main':
win32serviceutil.HandleCommandLine(AppServerSvc)

note that Old versions were

Could you be more specific on that?

I tried to add the "connect -u" parameter, but couldnt success in that either

Yesterday I added an overwrite, which enables this parameter always (disables the socket port reuse), when running inside an Windows Sandox Vm - I doubt it, but maybe thats broken?
        all_address = [(
                        srv_config['ip'], srv_config['port'],
                        (srv_config['backlog_main'] if 'backlog_main' in srv_config else srv_options['backlog']['def']),
                        (srv_config['reuse_main'] if 'reuse_main' in srv_config else False if getpass.getuser() == 'WDAGUtilityAccount' else srv_options['reuse']['def'])
                        )]
        log_address = "TCP server listening at %s on port %d" %(srv_config['ip'], srv_config['port'])

Normally this all should work fine - can anyone else reproduce this? As my testing systems had no problems with it (Linux, Windows Sandbox).
And maybe you could cleanup your issue a little bit?

Hi thanks for kind reply,
firstly my windows is not virtualised. it is bare windows server standard 2019  v1809 running on an old mac book pro mid 2012
I tried to add that "connect -u" parameter to the kms-winservice.py file in order to make it work. this file is decribed in windows services tutorial. I also added it in my first mail.
no doubt I use the latest version, I double checked it. and see the code you try to fix. but it is not working for me. I get this error
PS C:\python\py-kms> .\pykms_Server.py
SO_REUSEPORT not supported on this platform. Exiting...
we can fix this either with editing pykms_server.py or with kms-winservice.py. I prefer doing it in  pykms_server.py. this will be better for code reusability.
so I am open to any sugessions. thanks in advance

Okay. When you System does not support port reusing you'll need to add connect -u to pykms_Server.py. Just a quick check: Please insert the following code in place of the current fix (somewhere in pykms_Server.py) for such cases - does it work then?
        all_address = [(
                        srv_config['ip'], srv_config['port'],
                        (srv_config['backlog_main'] if 'backlog_main' in srv_config else srv_options['backlog']['def']),
                        (False)
                        )]

sorry for the late reply, yes with this fix now it is working.

but I belive I have to reapply this fix everytime a new version of this pykms_Server.py file will be committed.

Yes you have, because it just disabled the port reusing condition-less. But I have no idea, why the current version is not working, because... Well, it should!

@muhammetunal
you said that old versions were working, but you refer versions before 328dced ? (if yes you're right they work)
After that i kept SO_REUSEPORT always enabled.
class KeyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
        daemon_threads = True
        allow_reuse_address = True

@SystemRage Yes you are right working class is keyserver, and not keyserverhandler.  and It is working with the @Simonmicro 's fix so I can close the case. thank you for your helps :)
would it be possible that cause might be my server also has an windows linux subsystem (but I am running this application on native windows python subsystem.) because it enables virtualization somehow.


GetPathsOfAllDirectoriesAbove produces duplicate paths

Roslyn uses GetPathsOfAllDirectoriesAbove to produce a list of potential .editorconfig paths.
<PotentialEditorConfigFiles Include="@(Compile->GetPathsOfAllDirectoriesAbove()->Combine('.editorconfig'))" Condition="'$(DiscoverEditorConfigFiles)' != 'false'" />

When a project contains linked files that use relative paths this causes GetPathsOfAllDirectoriesAbove to produce multiple paths which are equivalent.

It is definitely not supposed to produce equivalent paths.

Closing this issue as fixed.


Add a callback function after adding a scene

Hey! Adding a scene to the game and then trying to get the scene immediately returns undefined.
game.scene.add('Dialogue', Dialogue);
game.scene.getScene('Dialogue');
// Returns undefined

If we could have a function that is called after the scene is done being added that would be nice.

Did you make sure the game is entirely booted at the time of the check?
Here is an example of the method you could use:
var game = new Phaser.Game({
	callbacks: {
		postBoot: function(game) {
			var upAndRunningScene = game.scene.getScene('Dialogue');
			//Should be OK here!
		}
	}
});

game.scene.add(
	'Dialogue',
	Dialogue,
	true
);

Oh my gosh I didn't know about that callback config. Thank you!