Preliminary MidiPlayer implementation

Preliminary MidiPlayer implementation.
This is a complete impementation that also works in the export. Requires some more work integrating it but I am unfamiliar with Goost file structure. I did my best. I can fix other  smaller issues in later PRs but at this point is fully functional, imports and plays in the exported game too.
This PR adds two classes

MidiPlayer: Adds the ability to play .mid or .midi files or to manually play midi notes (to create your own instrument see below for more info). A soundfont + AudioStreamGenerator must exist for sound to play (see below).
MidiFIle: A generic imported midi container that has a PoolByteArray data which contains all the binary data. The data can be accessed in GDSCript but you can only get not set (you're not supposed to manipulate binary data this way). It loads any .mid .midi and .sf2 files. There is a built in Format enum but hasn't been implemented yet so all all the same type (for now).  I chose to not split it into two different resources and instead use one generic type since both had the exact same structure with data which contains binary data.

MidiPlayer has fully documented xml file but MidiFile does not at this time.
Playing the audio
There is no Inspector integration at this time. You need a script and use load_soundfont("res://soundfontname.sf2") and load_midi("midisong.mid") in any order in _ready(). You also need an AudioStreamGenerator and the entire MidiPlayer set to Playing or Autoplay to true.
The data is imported as a .mdf (MidiFile) format internally (see in .import) and is going to be saved in the pck. The MidiPlayer reads this data using ResourceLoader::load rather than FileAccess (which only works in the editor but not in the exported file). The data is then saved in memory and transfered to TinySoundFont player which does all the heavy lifting . Then finally there's an internal process buffer feeding mechanism that works automatically while there's a soundfont and an AudioStreamGenerator and MidiPlayer is playing.
Integration needs more work (IMPORTANT)
Unfortunately I am unfamiliar with Goost file structure so it probably needs more work integrating it properly. I tried my best.
You would also need to add the license . This is the thirdparty library used TinySoundFont.
Forgot to mention. credit need to be given to RodZill4 as well as I based my module implementation on his project https://github.com/RodZill4/godot-music though mine is heavily modified.
Creating your own piano
Totally possible to do but requires manually creating every single key then calling some function with note_on(instrument, note, volume). Instrument type is the built in SoundFont instrument (piano is 0), note is the actual note from 0 to 127 (60 is middle C4), volume 1.0 is max. This requires advanced understanding of how MIDI works in order to get it right but you can produce a fully functional Midi Keyboard and you can even send MIDI signals.
Note that you will get a big lag with default parameters. You need to lower the buffer size to something like 0.05 in order to get faster response so it plays right away. It really depends on the computer's ability to process audio buffers. Values below 0.04 for me crackle audio.
Some other thoughts
I opted for the name Midi (with capital M and everything else lowercase) to differentiate from MIDI events. The corret term is MIDI but Midi is also acceptable and in fact in this case preferable as it removes any confusion.

Note that checks may fail because it might not be properly implemented. I tried my best :)

It won't work unless you uncommend and implement set_data  otherwise data becomes disabled and it thinks is size 0. Very strange behavior. With both set_data and get_data it will work.

Requires some more work integrating it but I am unfamiliar with Goost file structure. I did my best.

For the future, you can refer to https://goost.readthedocs.io/en/latest/development/adding_new_features.html

For some reason, I couldn't get to play anything, even with you suggested changes.
But I know it should work, so lets merge this so I can push changes to integrate this feature.
Thanks!


Sequence and map types needed

I'm looking into serde support for my D-Bus bindings, but quickly ran into problems with trying to Serialize an empty array.
D-Bus allows typing of arrays, i e, all elements must be the same type. I could take that type from the first element, if it weren't for the fact that arrays can be empty. So, if I receive a serialize_seq_fixed_size with a size of 0 (or a serialize_seq directly followed by a serialize_seq_end), I have no idea if I need to append an empty D-Bus array of i32s, &strs or something else.
Edit: The same applies to maps, which are also strongly typed.

We could make serialize_seq generic over the type to be serialized, just like serialize_seq_elt. But we'd still need a way to use a Serialize type without an object. I think this is closely related to the tagging troubles we have with cbor

Yeah, given the current design of serde I'm not sure how to solve it either...


Power BI Desktop of microsoft store mandatory

Hello,
I have the problem to connect to my oracle database. Unfortunately, all the links to Power BI Desktop redirect to the microsoft store version (even this one :  https://powerbi.microsoft.com/desktop). I do the installation of the oracle client you put at the beginning of the page but nothing changes. Is there another way to have the "non microsoft store" version ?
Regards

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

ID: 382f269e-2072-ec03-7c88-335cbd5df919
Version Independent ID: 46a896f9-4707-adc3-72cd-5444a5d0f802
Content: Connect to an Oracle database - Power BI
Content Source: powerbi-docs/desktop-connect-oracle-database.md
Service: powerbi
Sub-service: powerbi-desktop
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Sorry for the confusion, @PoussinBleu. You can get the .exe version (the non-Microsoft Store version) at the following link:
https://www.microsoft.com/download/details.aspx?id=58494
You can use the "See download or language options" on the Download page to get to those options.

Thank you !


Keras backend package uses a print call at initialisation time.

The backend package uses a print call in its __init__.py file to inform about which backend is going to be used (the "Using X backend." messages).
This is bad design, keras is a library and libraries should never ever call a print function.
To reproduce just type:
import keras

A variant of this issue is #1406, where the nature of the problem has been misdiagnosed as directing that print function output to stdout, and the issue has been "fixed" in 83aaadaa9d69214880d20b1e2bd9715a6c37fbe6 by directing the output to stderr.
The state now, with that print output directed to stderr, is the worst behaviour ever: stderr is used by the Python logging module, and thereofore the "Using X backend." messages get mixed with the log messages of the application(s) using keras.
This is a major issue for a library: in complex applications it is common practice to aggregate logs on a central server or on online services, and having a line printed like this on stderr, without the same format as the other log messages (i.e. timestamp [severity] - module - message), is messing everything up.
I propose to either start using the Python logging module instead of the print function (which is the right approach, and for which I will shortly submit a pull request), or at least to move back to printing that line to stdout (not nice, but acceptable).

Added pull request #11333 as potential fix.

Closing as the PR was rejected.

If the pull request has been rejected (not sure about the reason though), why not reverting to printing to stdout instead of stderr, at least?


Fixing IZPACK-1469

This pull request finally fixes IZPACK-1469. It also works correctly with online and offline installation.

When can you merge this pull-request? It's needed that we can use izPack again.

Thanks for contributing.


containers crash directly after initializing

Describe the bug
I followed the installation guide from ceph here
The files csi-rbdplugin.yaml and csi-rbdplugin-provisioner.yaml are containing development release
....
          # for stable functionality replace canary with latest release version
          image: quay.io/cephcsi/cephcsi:canary
....

The documentation states tha the canary release should be replaced by a release version. I tried this by replacing
quay.io/cephcsi/cephcsi:canary
with
quay.io/cephcsi/cephcsi:3.1 or quay.io/cephcsi/cephcsi:canary:3.2
But this leads into a CrashLoopBackOff during deployment. Only the canary release seems to work.
Are you aware of this situation? And how can this be solved in a correct way?
Environment details

Image/version of Ceph CSI driver :cephcsi/cephcsi:canary
Ceph cluster version : octopus

Please replace the image tag with any one of the tags mentioned here in proper format.

check it here
quay.io/cephcsi/cephcsi:3.1 -> quay.io/cephcsi/cephcsi:3.1.0

yes - sorry this was a typo form me in this bug report.
I think I tried every version. It takes me some hours.
I am running my kuberentes cluster on Debian Buster. Can this be an issue?

Ok, now I understand that I should take all the kubernetes objects form the corresponding release path like
https://github.com/ceph/ceph-csi/tree/release-v3.2/deploy/rbd/kubernetes
Sorry, this is not clear form the documentation which seems to mean that I should change the container versions inside the latest plugin objecs form the dev path
The sentence of the documentation here
The provisioner and node plugin YAMLs will, by default, pull the development release of the ceph-csi container (quay.io/cephcsi/cephcsi:canary). The YAMLs should be updated to use a release version container for production workloads.
should be
The provisioner and node plugin YAMLs will, by default, be downloaded from the Github development release of the ceph-csi. For production you should switch to one of the release branches.

@yati1998 can you please add a note to replace canary with version tag when deploying in production. https://github.com/ceph/ceph-csi/blob/devel/docs/deploy-rbd.md#deployment-with-kubernetes and https://github.com/ceph/ceph-csi/blob/devel/docs/deploy-cephfs.md#deployment-with-kubernetes

Yes sure @Madhu-1

Ok, now I understand that I should take all the kubernetes objects form the corresponding release path like
https://github.com/ceph/ceph-csi/tree/release-v3.2/deploy/rbd/kubernetes
Sorry, this is not clear form the documentation which seems to mean that I should change the container versions inside the latest plugin objecs form the dev path
The sentence of the documentation here
The provisioner and node plugin YAMLs will, by default, pull the development release of the ceph-csi container (quay.io/cephcsi/cephcsi:canary). The YAMLs should be updated to use a release version container for production workloads.
should be
The provisioner and node plugin YAMLs will, by default, be downloaded from the Github development release of the ceph-csi. For production you should switch to one of the release branches.

Indeed, instead of just instructing to replace the release version for cephcsi image, one should take all the kubernetes objects form the corresponding release path.


implement dns service discovery, fix py_ipa_api_recreate script

Hi, me again.
i implemented DNS service discovery.
the old  behavior will not change, but now you can simply omit setting a host, and the client will automatically try to do DNS service discovery., if the host running the tool, has no domainname, you can pass it as the following argument: dns_discovery="example.com"
i also fixed some errors in the tool used to recreate the client_meta.py file:

version has to be set using "version = self.json_spec['result']['messages'][0]['data']['server_version']", using self.json_spec['version'] is simply wrong. the later one is the version number of the IPA server, the first one is the actual version of the API
some things got broken when adopting textwrap, i implemented a fallback to what has been done before, reason is that sometimes "spec['doc']" is None
i also moved the code completely to the contrib, because a second run, after creating a broken file, would prevent the tool from running a second time (import error, because of the broken ClientMeta class)

i also did some consistency cleanups in the doc strings.
ClientMeta uses ":type  $PARAM: str", as it has been requested by you.
but Client, and ClientLegacy used ":type  $PARAM: string"
, so i changed it, to also use "str" instead of "string".
Kind Regards

and update here?
could you please let me know what version of IPA/IdM you are using?
i just checked both, RedHat Idm and Freeipa 4.6.5, and both do not seem to have the documentation string "Retrieve data from a vault." in there API spec.

@schlitzered I'm using FreeIPA demo. Here's an example JSON response. As you can see it doesn't contain API version. Therefore I'd suggest to remove that line which fetches version from JSON,
https://gist.github.com/AmbientLighter/8ae2d0ed283eade9f1854305b4b77b54

Also I have fixed API version string in meta client.

interesting, the 4.6.5 version contains an attribute called "messages", which contains a message with the version number of the server.

more changes:
i enhanced the py_ipa_api_recreate script, to allow to fetch the version and api spec from a remote server.
this eliminates the need to manually download the api spec.
it is still possible to use a local json file, but now you also have to specify the API version that the file uses. since the is no reliable way to fetch it from the schema spec itself.
i also fixed the api doc,in case of "multivalue": true, which means that the methods parameter expects a list of strings.


withdraw record

Hope I can track my withdraw records on this website. When and How much I withdrew can be tracked by a button

fixed


Company details updated at

Bunch of fixes around displaying the timestamps on the admin panel.

@RuslanHamidullin would be great if you can take a look.

sure


PLEASE HELP; I can't log into my account!

I don't know where else to contact for help or support, I can't remember my password and everything I try is denied. At one point I had tried to change my password but it said it wasn't allowed and now my original password isn't working and I can't remember what I wrote as the new password. I have proof that the account is mine, please if there is any way to contact someone so I can show proof, I have discord twitter gmail please help me I don't know what to do 😞😞

I was able to log in after many many attempts but my friend is having the same issue so I'd still like to be able to help him 😢 Please respond if theres any way to contact for support properly about this!

Email<EMAIL_ADDRESS>


tcl: evaluate location of tcl installation dynamically

This avoids problems in some deployment scenarios, such as bazel hermetic builds.
https://github.com/flightaware/tclreadline/blob/be509a8c7cefcbf6881b103d9922e8845a1d0e45/tclreadline.c#L45
https://github.com/flightaware/tclreadline/blob/be509a8c7cefcbf6881b103d9922e8845a1d0e45/tclreadline.c#L605

@hovind FYI

needs work...


[QUESTION]Configuring Build directory fails

Could not complete the configuration of Build folder. Got error while I run cmake .. command. Below is the output
CMake Deprecation Warning at dependency/libkvscproducer/kvscproducer-src/dependency/libkvspic/kvspic-src/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument  value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)
CMake Error at dependency/libkvscproducer/kvscproducer-src/CMakeLists.txt:118 (message):
OpenSSL is not found.  Make sure to export PKG_CONFIG_PATH to where
OpenSSL's pc file is
-- Configuring incomplete, errors occurred!

Did you try to pull down the repo, then create a build folder.  Go into build folder and run cmake .. is that what you did?  If that's not working then can you try with a newer version of CMake (it seems like you're using a really old version from over 7 years ago ?).  If I'm reading that error wrong can you share what version of CMake you're using?

@hassanctech Thank you for replying to my question. I just checked the cmake version installed on my mac and it is:
cmake version 3.19.4
I got the build folder working after multiple attempts.
Next, I am trying to get the public ip camera live feed into the KVS. I am using below link as rtsp source url: https://webcams.nyctmc.org/google_popup.php?cid=166
(Is it a valid url? If not how does a valid url look like?)
And I used below command as mentioned in AWS documentation:
Stream Video from a network camera on macOS:
gst-launch-1.0 rtspsrc location="https://webcams.nyctmc.org/google_popup.php?cid=166" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="MyStreamName" storage-size=512  access-key="MyAccessKey" secret-key="MySecretKey" aws-region="us-east-1"
And keep getting below email:
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Resource not found.
Additional debug info:
../gst/rtsp/gstrtspsrc.c(8017): gst_rtspsrc_retrieve_sdp (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
No valid RTSP URL was provided
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
INFO - Freeing Kinesis Video Stream EdgeDemoLiveFeed
I am wondering if I am headed in the right direction? If yes, what am I doing wrong? Thank you in advance for your time and assistance.

Update:
I am able to run run the test bigbunny rtsp url using the command as follows:
gst-launch-1.0 rtspsrc location="rtsp://<IP_ADDRESS>/vod/mp4:BigBuckBunny_115k.mov" ! rtph264depay ! h264parse ! kvssink stream-name="xxx" storage-size=512 access-key="xxx" secret-key="xxx" aws-region="us-west-2"
My requirement is to be able to run a public ip camera url, for example this http://nyctmc.org/google_popup.php?cid=166
I am wondering whether we have to change such urls to an rtsp url? Or how do I find a public rtsp url of a traffic facing camera?
AWS documentation does not have clear information on rtsp url and its use with GStreamer library. Thank you in advance for your time and help


Override Display Text in Chinese character

Hi lindell, thanks for such a wonderful barcode generator. I'm trying to use the default Code128 with img tag and override the display text with some extra description in Chinese characters, however, the Chinese character display as empty. Would it possible to display Chinese or other character using the "text" parameter?
Thanks.

Hi.
This seems to be an issue with code128 removing characters that is not supported by the encoding itself. I will take a look at this.

Fixed the bug and released a patch in the form of v3.5.4

http://codepen.io/lindell/pen/YGJYLa

ha ha ha.... Thank you very much!


GitHub sign-in doesn't work with Cloudflare preview links.

GitHub sign-in doesn't work with Cloudflare preview links, so testing related functionality (like Share) is impossible until it is in production.
https://github.com/tarasglek/chatcraft.org/assets/6651168/357f0a5b-3ee3-415c-9c37-f1b2fce3efb9

The code to make that work landed in #217, is the branch you're trying to test properly rebased?
NOTE: once rebased, you can also do this in local development with pnpm dev-functions.

@iramykytyn is this still an issue?  I'm able to sign-in for a recent PR preview branch: https://dep-updates-sep-7-2023.console-overthinker-dev.pages.dev

Re-open if this appears again.


Syncing Vivofit 2: "error: unpack requires a string argument of length 16' (program.py:369)"

Hi,
uhm ... I just installed openant and antfs-cli following this instruction (sorry, it's in german). Basically it tells me to get git, python, openant and antfs-cli and how to compile the latter two. Up to this it worked without showing an error message.
Interestingly, I didn't see anything about "Vivofit 2", which I own, anywhere. Still tried it - and ended up with the error message given in the title. I'll attach the complete logfile also.
Is this model/data format something your software is not yet aware of or is this a beginners mistake? Is there something I can do to make it work?
20170112-001633-antfs-cli.log.txt

Thank you for reporting this. I'll try to look into this tonight!

It seems to fail on setting the time. For some reason it is not returning what I'm expecting. 24 bytes instead of 16, not sure what is correct - the ANT-FS documentation is somewhat lacking here.
Try prefixing the lines https://github.com/Tigge/antfs-cli/blob/master/antfs_cli/program.py#L196-L203 with a # and see if you can get any further.

For reference, I've asked for clarification in the ANT forums: https://www.thisisant.com/forum/viewthread/4618/.

Ok, so I tried what you suggested. Unfortunately there are two sets of program files:
./antfs-cli/antfs_cli
and
./antfs-cli/build/lib.linux-x86_64-2.7/antfs_cli
I have no idea which one will be called by the console command, so I tried adjusting either one - I don't have the impression that something changed:
1st try:
Resulting console output:
j@bb3-u:~$ antfs-cli
Driver available: [<class ant.base.driver.USB2Driver at 0x7fe5703604c8>, <class ant.base.driver.USB3Driver at 0x7fe570360530>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Searching...
Authenticating with vívofit 2<PHONE_NUMBER>)
 - Passkey: OK
 - Set time: FAILED
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 356, in main
    g.start()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 217, in start
    self._main()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 155, in _main
    self.on_transport(beacon)
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 205, in on_transport
    directory = self.download_directory()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 338, in download_directory
    return Directory.parse(data)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/file.py", line 79, in parse
    files.append(File.parse(item_data))
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/file.py", line 167, in parse
    index, data_type, data_flags, flags, file_size, file_date = struct.unpack("<HB3xBBII", data)
error: unpack requires a string argument of length 16
Interrupted: unpack requires a string argument of length 16
j@bb3-u:~$

According logfile:
20170113-161502-antfs-cli.log.txt
2nd try:
Console output:
j@bb3-u:/$ antfs-cli
Driver available: [<class ant.base.driver.USB2Driver at 0x7f47fb5764c8>, <class ant.base.driver.USB3Driver at 0x7f47fb576530>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Searching...
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 356, in main
    g.start()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 217, in start
    self._main()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 152, in _main
    if self.on_authentication(beacon):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 164, in on_authentication
    serial, name = self.authentication_serial()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 375, in authentication_serial
    response = self._get_command()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 186, in _get_command
    c = self._queue.get(True, timeout)
  File "/usr/lib/python2.7/Queue.py", line 176, in get
    raise Empty
Empty
Interrupted:
j@bb3-u:/$

According logfile:
20170113-162336-antfs-cli.log.txt
3rd try:
Console output:
j@bb3-u:/$ antfs-cli
Driver available: [<class ant.base.driver.USB2Driver at 0x7f0a5e3b84c8>, <class ant.base.driver.USB3Driver at 0x7f0a5e3b8530>]
 - Using: ant.base.driver.USB3Driver
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 354, in main
    g = AntFSCLI(config_dir, args)
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 131, in __init__
    Application.__init__(self)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 138, in __init__
    raise e
AntException: Timed out while waiting for message
Interrupted: Timed out while waiting for message
j@bb3-u:/$

According logfile:
20170113-163303-antfs-cli.log.txt
4th try:
Console output:
j@bb3-u:/$ antfs-cli
Driver available: [<class ant.base.driver.USB2Driver at 0x7f6676d904c8>, <class ant.base.driver.USB3Driver at 0x7f6676d90530>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Searching...
Authenticating with vívofit 2<PHONE_NUMBER>)
 - Passkey: OK
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 356, in main
    g.start()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 217, in start
    self._main()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 155, in _main
    self.on_transport(beacon)
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 198, in on_transport
    result = self.set_time()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 349, in set_time
    result = self._get_commandpipe()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 228, in _get_commandpipe
    return ant.fs.commandpipe.parse(self.download(0xfffe))
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 213, in parse
    return commandpipe_type._parse(data)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 87, in _parse
    args = cls._parse_args(data)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 83, in _parse_args
    return struct.unpack(cls._format, data)
error: unpack requires a string argument of length 16
 - Set time: Interrupted: unpack requires a string argument of length 16
j@bb3-u:/$

According logfile:
20170113-163330-antfs-cli.log.txt
5th try:
Console output:
j@bb3-u:/$ antfs-cli
Driver available: [<class ant.base.driver.USB2Driver at 0x7f319c4b24c8>, <class ant.base.driver.USB3Driver at 0x7f319c4b2530>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Searching...
Authenticating with vívofit 2<PHONE_NUMBER>)
 - Passkey: OK
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 356, in main
    g.start()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 217, in start
    self._main()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 155, in _main
    self.on_transport(beacon)
  File "build/bdist.linux-x86_64/egg/antfs_cli/program.py", line 198, in on_transport
    result = self.set_time()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 349, in set_time
    result = self._get_commandpipe()
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/manager.py", line 228, in _get_commandpipe
    return ant.fs.commandpipe.parse(self.download(0xfffe))
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 213, in parse
    return commandpipe_type._parse(data)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 87, in _parse
    args = cls._parse_args(data)
  File "/usr/local/lib/python2.7/dist-packages/ant/fs/commandpipe.py", line 83, in _parse_args
    return struct.unpack(cls._format, data)
error: unpack requires a string argument of length 16
 - Set time: Interrupted: unpack requires a string argument of length 16
j@bb3-u:/$

According logfile:
20170113-165606-antfs-cli.log.txt
As I'm not that much of a python guy, I'm not yet really sure what I was doing. But, strangely, I didn't see my own debug message either. Did I overlook it?

Can confirm that commenting out program.py and then rerunning sudo python setup.py install (maybe it would be nice not to run the installation with root permissions :question: ) I got my files downloaded


The --git-hash option in wandb job create is not working.

I created a job using wandb local:
wandb job create git  https://xxx.git --project="TEST"  \
    --entity="username" --entry-point="main.py" --name="test1" \
    --git-hash="b7baca74dd034cb900ea0e3f48c397ea51c4c481"

the wandb local created the job in the TEST project, and the wandb-job.json:
{
    "_version": "v0",
    "source_type": "repo",
    "runtime": "3.7",
    "source": {
        "git": {
            "remote": "https://xxx.git",
            "commit": "b7baca74dd034cb900ea0e3f48c397ea51c4c481"
        },
        "entrypoint": [
            "python3.7",
            "main.py"
        ],
        "notebook": false
    },
    // ...
}

After that, I had modifed my codes and synced with remote repository, and the commits are as following:
$  git log --pretty=oneline -10
8a6b803c530e800cdf3304d12c6467dcfd655bf5 (HEAD -> main, origin/main) now1001
49ae7364f743c1b699d7a00f51e9805030c38c18 now1000
b7baca74dd034cb900ea0e3f48c397ea51c4c481 now1002
# ...

Then, I launched the job by pushing it to the existing queue:

After completing the run, I located the codes cloned from a remote repository by the wandb local server and reviewed the commit:
$ cd "/tmp/tmpavc8q10w"
$ git log --pretty=oneline -10
8a6b803c530e800cdf3304d12c6467dcfd655bf5 (grafted, HEAD -> main, origin/main) now1001

The expected commit, as specified by --git-hash, should be b7baca74dd034cb900ea0e3f48c397ea51c4c481 rather than the HEAD commit!
The above information indicates that:

The wandb local server clones the latest version of remote repository when launching the job
--git-hash option in wandb job create seems to be not working.

Can anyone help solve this?

Hello! Thank you for sending this information! Could you send a link to your workspace so we can look at it? Only wandb employees will be able to view your project if this is a private project.
Also, could you verify that the launch job you created corresponds to the run id avc8q10w? Just to make sure that we are looking at the same run as the one created.

WandB Internal User commented:
zfhxi commented:

Hello! Thank you for sending this information! Could you send a link to your workspace so we can look at it? Only wandb employees will be able to view your project if this is a private project.
Also, could you verify that the launch job you created corresponds to the run id avc8q10w? Just to make sure that we are looking at the same run as the one created.

Thank you for your response. I've created a demo at https://github.com/zfhxi/test_wandb_launch_job

WandB Internal User commented:
zfhxi commented:
After hours of work, I've found this solution:
import os
import argparse
import subprocess
import sys
from git import Repo

def restart_program():
    p = subprocess.Popen([sys.executable] + sys.argv)
    p.wait()
    print("Fininshed the sub program!")
    sys.exit(0)

def reset_commit(repo, commit_id, workspace):
    commit = repo.commit(commit_id)
    repo.head.reset(commit=commit, index=True, working_tree=True)
    print( f"Workspace {workspace} is checkouting to {commit_id} ...")

def prerun(args):
    # Confirming if the current branch matches the specific job commit
    if bool(args.wandb_job_commit):
        repo = Repo(args.workspace)
        current_commit = repo.head.commit.hexsha
        # assert current_commit == args.wandb_job_commit, f"Current commit {current_commit} is not equal the job commit {args.wandb_job_commit}!"
        if current_commit != args.wandb_job_commit:
            print( f"Current commit {current_commit} is not equal the job commit {args.wandb_job_commit}!") # fmt: skip
            try:
                reset_commit(repo, args.wandb_job_commit)
            except Exception as e:
                print(e)
                print("Trying to fetch the latest 20 commits ...")
                origin = repo.remotes.origin
                repo.git.fetch(origin, "--depth=20")
                reset_commit(repo, args.wandb_job_commit)
            restart_program()
        else:
            print( f"Current commit {current_commit} == job commit {args.wandb_job_commit}!") # fmt: skip
    pass

if __name__=="__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument( "--wandb-job-commit", type=str, default=None, help="validating the commit hexsha") # fmt: skip
    args=parser.parse_args()
    args.workspace = os.path.dirname(os.path.abspath(__file__))

    prerun(args)
    pass
    # main codes

The codes perform the following actions:

Check the current workspace's commit.
Fetch the latest 20 commits from the remote repository.
Switch to a specific commit.
Restart the current script.

I anticipate more elegant solutions!


Cannot catch "Feature Extract" node error

I am using the "Feature Extract" node and when I reach my daily limits I can see the following error in the logs:
OUT 8 Dec 14:17:38 - [error] [alchemy-feature-extract:12082910.edf7d7] Alchemy API request error: daily-transaction-limit-exceeded
But I don't catch this error in the Catch node. I believe the second argument (msg) is missing when sending this error with node.error function.

Indeed. I've tried this too and none of the "Status" or "Catch" node produce a message when the "Alchemy Feature Extract" node gives the error. I was using this Alchemy API node in part of a flow handling HTTP requests, but since I am not able to handle this error condition, sometimes I would not be able to make my "http response" to output something in response to the http request. I am now using only the Watson Concept Insights node, but I'd like to use these two APIs for concept extraction.  Thanks,

Thanks for raising; as you've discovered, these nodes haven't been updated since the additional of the Catch/Status nodes. Will get that done as soon as we can.


Add images: Android Basics in Compose

URL of codelab
In which task and step of the codelab can this issue be found?
If you navigate to Practice problem - Task Manager
Describe the problem
Go to UI specification of Task Manager problem, in that point 2 asks to set the fontsize to 24sp, which clearly seems off. What we want to achieve based on screenshot is a bold text.
Steps to reproduce?

Go to...
Click on...
See error...

Versions
Android Studio version:
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

Hello @doersweb,
Thanks for reaching out to us and reporting your concern. The UI specification is updated:


Support for KeyboardAvoidingView behaviors?

Current Behavior

When an input is focused in a WebView, the keyboard forces the view to move up (so the top of the view is off of the screen), and there isn't a documented way of changing this.

Expected Behavior

A method for customizing the behavior (similar to the behavior attribute of a KeyboardAvoidingView).

Attempted Solution

Wrapping the WebView in a KeyboardAvoidingView, this does not disable the built in behavior of the WebView so you get a bunch of extra whitespace.

Is there a way of achieving a result similar to setting behavior="height" on a KeyboardAvoidingView with this package, or would a change need to be made here (and is that a change you'd be willing to make)?

Hey @TuckerWhitehouse, we don't currently have support for this. Is that something you'd want to take a shot at adding? We'd be happy to discuss any ideas you have. Bonus points for thinking cross-platform.

Does it make sense to mark feature requests as stale and automatically close them? Is there somewhere outside of github issues where feature requests are being tracked?

well if no one ever comments on it, maybe? This is a trial so I'll happily listen to people reactions.

Hi @jamonholmgren @Titozzz, can we revisit this? I've been struggling to get the integration between current implementation of KeyboardAvoidingView and WebView to work nicely.

Anybody have a solution for this?

the problem still exists. :/

Any updates or plans to do it? 👀


Windows Containers write directly to host if you write to %TEMP% directory

Scratch space is not ephemeral.  I am currently running containers in AKS on Windows nodes.  They write to the local ContainerAdministrator's temp directory.

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

ID: f436768e-3d52-102f-efd3-847e11f31317
Version Independent ID: 2193c169-7f90-fa47-8cad-0ecb233bcd2a
Content: Container Storage Overview
Content Source: virtualization/windowscontainers/manage-containers/container-storage.md
Product: windows-server
Technology: windows-containers
GitHub Login: @cwilhit
Microsoft Alias: jgerend

Ignore.  The issue was not where I thought it was.


Adding testnet usage instructions

Rewriting intro to acknowledge launch, adding instructions on how to set up a testnet account

Preview is available here:http://stellar-demo-wallet-pr140.previews.kube001.services.stellar-ops.com/

There are detailed instructions for the testanchor.stellar.org SEP-24 flow but not for SEP-31. Can we add that?

SEP-31 is right below SEP-24, but is much smaller because it's "do the above stuff and then"

@lydiat SEP-31 instructions stop at selecting "Start", but SEP-24's instructions go into detail about how to complete the flow for a transaction with SRT. Can we do the same for SEP-31? Inputting send/receiver information etc.?

Ahh, good point - I'll flesh out the SEP-31 part 👀

Preview is available here:http://stellar-demo-wallet-pr140.previews.kube001.services.stellar-ops.com/

Preview is available here:http://stellar-demo-wallet-pr140.previews.kube001.services.stellar-ops.com/


Another ziglyph panic when highlighting

https://github.com/natecraddock/zf/issues/58#issuecomment-1932402676

Resolved with 71160d9b1dd067e6f11e995ae03cb2d33862ba74


Add Django 1.8 support

I updated the template to the new Django 1.8 specific syntax and configurations.

Fixes #38 .

The package django-devserver is still included from our repository with Python2 and 3.4 compatibility and Django 1.8 fixes.

Looks good.

Thanks @rm--!


Imilab V1 not work

I can't get the imilab V1 set up. Does anyone have an idea?

Wow! That's a whole new line of robots! 😱
I'll need to check how hard it is to map the commands.


Editing a Collection throws ArgumentError

When I select to edit a collection from my Collection Listing using the dropdown OR by viewing the Collection Show Page and selecting the edit button, I get an ArgumentError.
wrong number of arguments (given 0, expected 1)

This does not happen in QA, it only happens locally with the latest develop branch.

Change render_404 override in application controller to not require a an exception.


mega support!

Would nice to have an option to upload on mega.co.nz

Sure, I will add that soon.
Thank you for your suggestion !

Nice! Thanks.

Sorry, but due to unavailability of official api for javascript from mega.co.nz , it won't happen soon. There is an unofficial one but it doesn't look promising.
If you have an idea to implement the API in javascript, it would be helpful !

I couldn't find anything except this https://github.com/prashanthca/beam/blob/master/index.js
If you think you can make it work great! Otherwise you keep working on other things lol.

Now single files can be uploaded to mega.

Cool! :-)


Eth0 is not working for some distros

CMD --> ip r --> copy the name of the interface
Sudo fdisk -l | grep "^Disk"  --> copy disk name
Replace those values in script and run it again


Added Random Color API

Description
API that returns the image of a random color.

Checklist

[x] API used in this PR was not used in Random-APIs before.
[x] API used in this PR is Public or I have permission to use it.
[x] My contribution is working.
[x] My changes don't generate any new warnings.
[x] My changes don't affect any work done by other developers.

To tick a box, replace [ ] with [x].

Hey @xemeds
Same problem with this API too.
Please test on your local environment, if it works

Hey @ashutoshkrris. Sorry about that.


use R3.3.0 and im2rec.py to run cnn and always failed

this is my code below,I have run it many times,but it always failed and my computer stopped working, I check my memories,my memories are 8GB
it failed because my memories are not enough? or some other problems?
please answer me how can I run it successfully
library(mxnet)
train = mx.io.ImageRecordIter(
path.imglist="C:/train1/train1.lst",
path.imgrec="C:/train1/train1.rec",
batch.size=4,
#round.batch=TRUE,
data.shape=c(224,224,1),
preprocess.threads=1
)
test = mx.io.ImageRecordIter(
path.imglist="C:/test1/test1.lst",
path.imgrec="C:/test1/test1.rec",
batch.size=4,
data.shape=c(224,224,1),
#round.batch=FALSE,
preprocess.threads=1
)
data <- mx.symbol.Variable('data')
conv1 <- mx.symbol.Convolution(data=data, kernel=c(5,5), num_filter=20)
tanh1 <- mx.symbol.Activation(data=conv1, act_type="tanh")
pool1 <- mx.symbol.Pooling(data=tanh1, pool_type="max",kernel=c(2,2), stride=c(2,2))
conv2 <- mx.symbol.Convolution(data=pool1, kernel=c(5,5), num_filter=50)
tanh2 <- mx.symbol.Activation(data=conv2, act_type="tanh")
pool2 <- mx.symbol.Pooling(data=tanh2, pool_type="max",kernel=c(2,2), stride=c(2,2))
flatten <- mx.symbol.Flatten(data=pool2)
fc1 <- mx.symbol.FullyConnected(data=flatten, num_hidden=500)
tanh3 <- mx.symbol.Activation(data=fc1, act_type="tanh")
fc2 <- mx.symbol.FullyConnected(data=tanh3, num_hidden=10)
lenet <- mx.symbol.SoftmaxOutput(data=fc2)
mx.set.seed(0)
model <- mx.model.FeedForward.create(lenet, X=train, y=train.y,
ctx=mx.cpu(), num.round=5, array.batch.size=1,
learning.rate=0.05, momentum=0.9, wd=0.00001,
eval.metric=mx.metric.accuracy,
epoch.end.callback=mx.callback.log.train.metric(100))
preds <- predict(model, test.array)
pred.label <- max.col(t(preds)) - 1
table(test_org[,1],pred.label)
sum(diag(table(test_org[,1],pred.label)))/1000
--------------------------------------------------------------------end

Can you tell us how installed the mxnet and the version of mxnet?
Please also show us the error message and share your data.

@janejane11 Thanks for trying out MXNetR.
Sorry for getting back to you after little while but wanted to know if you are still facing the issue. Also, could you please share the details(error log /dataset) to help you better on solving the issue.

@nswamy @sandeep-krishnamurthy Could you please label the issue as Pending Requester Info

@sandeep-krishnamurthy @nswamy Could you please close this issue due to inactivity
@janejane11  Please feel free to reopen if closed in error


Use boolean toggle variable instead of comment

This fixes the compilation error mentioned in #17

also #11

Using logging.info instead, thanks!


fix(action): limit content size to 40MB

closes #38

can you create a new release for this one?

done :)


extract a representative set of candidates from the Pareto set in multiobjective optimization

We have multiobjective optimization, which produces a possibly huge Pareto set.
We might want to extract a small sample, representative, as far as possible, of the whole.
Possibilities:

random sampling
k-means

There is a wide range of applications, in particular for @brozi .
@brockho I'd love to have you with us on these works.

I agree with the suggestion and that it is important in practice. The problem is also known as subset selection which might help to find additional (and more recent papers, see below).
The two above ideas seem to be already good starting points that also many people use according to my limited knowledge of the (E)MO literature, especially the first one. Personally, I would rather try to use a more representative and less random set which is linked to a performance measure of interest and the optimal set of the corresponding subset selection problem.
In the case of (only) two objective functions and the epsilon and hypervolume indicators as performance measures, I suggest to have a look at the work of Karl Bringmann, Tobias Friedrich, and Patrick Klitzke in this paper. It looks like the code is still available online in Java (reference [1] in the paper).
For more papers related to the topic of (hypervolume based) subset selection, please have a look at the references in the list of open problems from the SIMCO Lorentz Center workshop. Michael Emmerich and I try to keep this updated, but I see that the last change was made in 2015 for this topic :-(

I just added two recent papers to the above referenced list of open problems of which one proposes efficient algorithms for the 3-objective case if the sought after set is small [GM2019] (unfortunately, I don't have access to the pdf right now to check more details).

@brockho in case you have an idea, I try to implement a first fast thing as a baseline,  is it a good first workaround to implement something like "find N elements in the Pareto set of cardinal M >> N so that their hypervolume is maximum " ?

Note to ourselves: in today's discussion, we said that a first simple step is to take the set of points that is the best wrt. hypervolume out of maybe 1000 randomly chosen subsets of N points out of the Pareto set approximation of size M.
Second point to investigate: how large are the actual sets after the optimization (in the GAN example)?


Master

Bounding box collision detection for label placement and rectangular nodes

Here's an example:
https://bl.ocks.org/emeeks/96c35bcee81f11a61541d94b0e0b62b4

Thank you for the contribution; however, I’d prefer if you released this as your own module so that you can maintain and support it independently. Given that this doesn’t depend on any internal APIs, that looks straightforward here. Thanks for your understanding.


For DSMR 4.2.2 scaler unit should be retrieved dynamically, from some objects

For DSMR 4.2.2 scaler unit should be retrieved dynamically, from some objects

https://jenkins.fdp.osgp.cloud/view/SMHE-cucumber/job/gxf-smhe-cucumber-build/118/


Add ability to highlight messages based on user badges

Description
Adds badge-based highlights to Chatterino. Currently, selectable badges are hardcoded. Users can select from the following badges:

Broadcaster
Admin
Staff
Moderator
Verified
VIP
Global Moderator

Demo video: https://i.nuuls.com/8Fc_-.mp4
Closes #1696

The global moderator program shut down in December 2018 https://blog.twitch.tv/en/2018/12/13/thank-you-global-moderators-4d44cfccf22/

I removed the global moderator badge from the dropdown in 19728ad. Thanks for pointing that out.

@dnsge Please check this pull request to current branch.

So twitch badge resources should be removed?

So twitch badge resources should be removed?

https://github.com/Chatterino/chatterino2/blob/6d5ba0c442681fb30afd01f787a10cd3922c10aa/src/messages/MessageBuilder.cpp#L36-L37
This is the only place where the resources are being used (99% sure), and it's only the automod badge. This could probably be replaced with GlobalBadges now, or it could stay. Unless there's some usage I didn't notice or we want them for the future, I suppose the rest can be removed.

Would also love if you could resolve the merge conflicts.
In short, the highlight code has been moved to SharedMessageBuilder. It's fine to keep the highlighting of twitch-specific things in there for now, I will clean up SharedMessageBuilder at a later point.

Looks like this one's been pushed to the bottom of the list, can we fix merge conflicts and merge it soon?

@pajlada I've gone ahead and made the requested changes, should be good to go pending the multiplatform build checks. 😄
Also, do we want to add any more badges to allow users to highlight? Currently, just the following are available:

Broadcaster
Admin
Staff
Moderator
Verified
VIP

For reference, they're set here:
https://github.com/dnsge/chatterino2/blob/5631d33a34966283f4a091570950d0ec9c79374b/src/widgets/settingspages/HighlightingPage.cpp#L34-L41

do we want to add any more badges to allow users to highlight?

Twitch has recently added predictions badges. I added proper message elements for those in #2668. You could try and add support for those in this PR.

It would be nice to be able to do this for a few of the more common badges like bots, subscribers, and Turbo users specifically.  I'm aware of the thread that mentions being able to filter subscribers into splits, but that's distinct from highlighting.

It would be nice to be able to do this for a few of the more common badges like bots, subscribers, and Turbo users specifically. I'm aware of the thread that mentions being able to filter subscribers into splits, but that's distinct from highlighting.

There's currently no difference between those badges in Chatterino - those all fall under "vanity" slot. An enhancement adding MessageElementFlags for all of those badges would have to be made in order to support that, but there's no real reference for all the twitch badges iirc. I might be wrong though; there's an undocumented endpoint with many badges, but I wouldn't trust it as it's very old and might be some stuff missing.

edit: Also, there's a lot of bugginess with the way prediction badges are highlighted. Whichever badge is reordered up or down last within the 'Badges' tab ('Predicted Blue' or 'Predicted Pink') seems to override a lot of the other things configured to be highlighted. As an example, reordering 'Predicted Pink' overrode the highlight settings for both 'Predicted Blue' and a user I had configured in the 'Users' tab.

You should open a new issue for this instead of commenting on an old merged PR - notifications from those can get lost quite easily.


added backend for login

Related Issue
added backend for login
Closes: #173
Describe the changes you've made
https://user-images.githubusercontent.com/55352601/118359490-5bd54e00-b5a1-11eb-94f8-10734b65d366.mp4
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[x] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.

@adarshvulli kindly review this PR
in this PR i had write the backend for login and validate also if user is present or not if it present it will redirect to home page (currently canvas.html) otherwise it will redirect on login page again
I had also added a validation in sign up so that username can be unique because we are logging in by username.


Faster enforce p element

Removed dependency on lodash
Moved wrapChildNodes and traverse inside the closure to avoid passing around scribe
Rewrote traverse without TreeWalker and recursive calls
Wrote a more efficient wrapChildNodes using immutable data structures

Looks good to me, can I get a second opinion? :+1:


feat: unify source map by rspack-sources

Summary

Checklist

[ ] Tests updated (or not required).
[ ] Documentation updated (or not required).

!bench

!bench


Upgrade to Spring Boot 3

This PR ports log4j-spring-cloud-config-client changes from 2.x (#2018) and upgrades to Spring Boot 3.

This looks good to me.

@ppkarwasz, I am not strongly opinionated about simple-jndi. It is what Spring Framework recommends as a successor and uses itself too.

If Spring recommends it, it is good enough for me.


Props based underlay color when user clicks the item in dropdown

Moved touchable opacity to touchable highlight in renderItem part
Passed props called 'underlayColor'

hi @jaskarjhon ,
Thank you create PR!
We don't need to add new props. which can take advantage of the "renderItem" props to customize the dropdown list.


Select Default Emulator for Systems

May be missing this option from my own stupidity, but I would like the option to choose which Emulator opens by default for a certain system.

Yeah, the system settings is still missing a way to reorder emulators. For now you can remove emulators until your preferred one is indirectly moved to the top, as RetroHub will try emulators from top to bottom. (And you can also select your preferred emulator per game).
I'll implement some reordering functionality soon :+1:


Info on how to contribute to Lore

How do you setup a local dev environment to work on lore's itself?
What kind of process is necessary for submitting pull requests?
I wanted to experiment with some ideas (injecting reducers in a way similar to how middleware is injected) that required modifying lore core. I forked the repo, cloned locally, and then tried to replace the lore packages in a lore generated project with references of the type
//package.json
'lore', 'file:../../lore/packages/lore'

this didn't work for me so I tried yarn(npm) link and I couldn't get that to work.
Additionally I notice that lore package.json is designed for a built project with main point to 'lib' and not 'src' and I tried changing the package.json for all the lore packages to use 'src' as main but that didn't work.
How do you setup a local dev environment for lore itself?

@timcase great question, and I regret that it never occurred to me to document a "suggested development flow" before. It took a bit of trial and error before I found a flow was acceptable to me, and I'm sorry you experienced some of that "error". I'll absolutely take this conversation and convert it into a formal contributing guide.
What follows may be more information than you want/need (it became epicly long), but I'll error on the side of being thorough, and providing some supplemental information that may be helpful to know. I'll start with a direct answer how I setup a local dev environment, and then elaborate on why I go that route.
TLDR; My Local Dev Environment / Setup

Clone this repo (lore/lore)
Run npm install from the root. Lerna will make sure all packages have their dependencies installed and cross-link them.
Open the Lore application you want to use as a sandbox/development environment (anything created with the lore new <app name> command)
Do NOT modify the package.json file. Instead, open index.js and change the references there. For example, the lore package on my laptop is located at /Users/jchansen/lore/lore/packages/lore. So if I was experimenting with changes to the core engine, I would modify the line var lore = require('lore') to be var lore = require('/Users/jchansen/lore/lore/packages/lore/src'). If you were experimenting with modifications to a hook, the process would be the same.
The approach described above will cause webpack to consume and watch the src directory of the target package, which means any changes you make to the code, will cause your application to automatically rebuild and deploy your application to the browser.
While this strategy may seem a bit strange (and is absolutely not what I would expect to hear as a recommendation) it's the only way I know of to achieve that goal. All other approaches I tried either had serious issues, or required that I rebuild a library after each change.

Full Explanation Behind the Setup / Steps in Greater Detail
Fork the Repo / Install Dependencies / Lerna
First step is to fork the repo. Then, you need to run npm install from the root of the project. This installs lerna and babel from the devDependencies. Once npm install is finished, npm executes a postinstall step that causes lerna to "bootstrap" the project.
Lerna Bootstrapping Process
During this process lerna examines each package the /packages directory and installs their dependencies with one key modification: if the dependency is another package in the /packages folder, it creates a symlink to it instead of installing it from npm.
Conceptually, this may seem similar to linking packages using the 'lore': 'file:../packages/lore syntax, but there's some differences worth calling out.
For whatever reason, npm does not behave consistently across all install strategies. For example, the file:../packages/lore syntax does not execute the same hooks that would be triggered when installing the package from npm, which provides extremely unreliable indicators as to whether the package will work as expected when you publish it (because the install process differs). I tried the file: approach in the pre-lerna days, and it caused a lot of confusion and frustration. There's an issue somewhere that confirms and documents npm's inconsistent behavior, but I don't have the link at the moment.
The other thing about the file:../packages/lore syntax is that it doesn't maintain a link to the original code. Or at least I think that's true...it's been a while since I used it. But from what I remember, it duplicated my package into the project I "linked" it to, which meant changes I made to (say) packages/lore were not reflected in the project I tried to link it to using the file:../packages/lore syntax. It basically copied the code from packages/lore into the node_modules folder of the application.
The result of that meant that any time I changed the code in packages/lore, I then had to re-run npm install inside the application I was building to consume it. Except that because the version hadn't changed inside the package.json file for packages/lore, npm didn't re-build the code, because it didn't think it needed to. So to force it, I had to delete the node_modules/lore folder in the application FIRST, and THEN re-run npm install to get the updated code. Rinse and repeat. It made for a horrible development flow : (
That's mostly background and context, but the key takeaway is this: lerna provides a genuine symlink between packages, which means you never have to "rebuild" any of the projects in packages. Or at least that's true under normal circumstances.
Lib and Src directories
Many of the package.json files within the packages folder reference a main entry point of lib/index.js as opposed to src/index.js. This so the packages can be free to use ES6 style code, but still compile down to ES5 (at least until browsers are able to understand import statements natively).
Obviously changing src files will not magically rebuild the lib directory, so in many cases, changing src files requires running npm install inside the package you changed. For example, if I make a modifcation to packages/lore-hook-redux/src, I will need to run npm install inside packages/lore-hook-redux to regenerate the packages/lore-hook-redux/lib directory used by consuming applications.
An alternate approach, which can make for a smoother development flow (though more risky for publishing) is to modify the main entry of the package.json file to point to src/index.js instead of lib/index.js. Of course, you can always do that temporarily, and then change if back before publishing.
Why install babel at the root?
Lore currently has something like 40 packages, many of which require babel for transpiling. Babel is an fairly time intensive library to install, and allowing each packages to require it as a direct dependency created an absurdly long install time, often in excess of 10 minutes.
To solve this, a decision was made to install babel at the root of the project, and then have all the packages reference that installation using relative paths. You can see an example of this in the build script for lore-hook-redux.
At the time of this writing however, I believe lerna has an integrated a solution that can automatically hoist common dependencies into the root directly, which would allow me to achieve the same effect but without the relative paths.
My Development Environment / Flow
I find the easiest way to work on lore is from within a real or example project. For example, when establishing the normalization behavior for the upcoming v0.12 release, I actually created the normalization example project first, and then used it as the platform to write and test all the modifications required for lore to get that behavior working.
The trick is to ignore the package.json file and focus on the index.js file instead.
There is nothing (I'm aware of) that you can do to the package.json that will create a seamless experience between the code in the lore repo and the code in your application, so I gave up trying. So instead, I simply modify the import/require calls in index.js, and circumvent the node_modules folder completely.
To elaborate, let's take a look at a typical index.js file:
var lore = require('lore');

// Allows you to access your lore app globally
window.lore = lore;

// Summon the app!
lore.summon({
  hooks: {
    // ...
    connect: require('lore-hook-connect'),
    // ...
  }
});

And let's say I'm working on a modification to the core engine, to allow users to control how the Root component is created and mounted (another v0.12 feature). The lore package on my laptop is located at /Users/jchansen/lore/lore/packages/lore, and I'll be making modifications to the src files in that package.
To integrate this modified code in my application, the simplest way is to update the require call for lore to reference that src folder directly, like this:
var lore = require('/Users/jchansen/lore/lore/packages/lore/src');

// Allows you to access your lore app globally
window.lore = lore;

// Summon the app!
lore.summon({
  hooks: {
    // ...
    connect: require('lore-hook-connect'),
    // ...
  }
});

Once that's done, Webpack will automatically consume and watch the files in /Users/jchansen/lore/lore/packages/lore/src, and any changes to those files will cause Webpack to automatically rebuild and reload the application.
That behavior is what I want out of a development flow, and that approach is the only way I know how to obtain it.
Overriding Hooks
A quick note about overriding hooks. One approach is certainly to emulate the approach above, and make modifications directly to the respective package in package/lore-hook-*.
But the approach I've started following more recently is actually copying the hook into the consuming application and making my modifications there. Then, once I'm sure I like the changes, I copy them back into lore and submit a PR.
One reason for that approach is that it allows the web application to function without a copy of the lore repo, meaning I can publish it and someone else can download it and try it out. Or sometimes I'm just experimenting with an idea, and simply don't want to commit the changes to a branch in lore, so I just keep the experiment in the application it was designed for.
To illustrate, let's say I need to override the blueprints in lore-hook-connect (which I did), and I realize the hook doesn't expose a way to that (which it didn't). My process currently looks like this:
// create a /hooks directory in the application
mkdir hooks

// copy the lore-hook-connect src directory to /hooks/lore-hook-connect
cp -r node_modules/lore-hook-connect/src hooks/lore-hook-connect

Now that I have a copy of the hook, I update the index.js file to use my projects version of the hook, like this:
var lore = require('lore');

// Allows you to access your lore app globally
window.lore = lore;

// Summon the app!
lore.summon({
  hooks: {
    // ...
    connect: require('./hooks/lore-hook-connect'),
    // ...
  }
});

And then I modify that code until I'm happy with my changes.
When I implemented normalization, I ended up modifying ~5 hooks in addition to lore's core along the way. I used this approach for the entire process, and found it pretty enjoyable. You can see proof of that in the beta.1 tag for the normalization example (the link shows you the hooks directory showing the overrides).
Master no longer has the hooks folder, because I removed the custom hooks once I merged the changes through PRs.

@timcase let me know if you have further questions, want additional clarification or if there's anything else I can do to help. At a minimum I'll leave this open until I can re-read the above and convert it into a simpler guide on setting up a local dev environment for lore.

@timcase as for the process for submitting PRs...there isn't one at the moment : )
If you want to submit a PR for consideration, go right ahead. There's is no template to abide by or "must have information" currently.
If it's a new feature, or a change that will take a lot of your time, bringing it up for discussion first could be beneficial, especially if you're uncertain whether it'd be worth your time investment to pursue. I'm happy to discuss the roadmap, and have no issue adjusting priorities based on need (mine or yours).
Tests are Optional
Tests in PRs are currently optional, and your PRs don't need to be perfect or necessarily even finished to be accepted. I'm happy to work on ideas with you, especially those that already fall within the roadmap and goals of the project.
Tests will become a larger focus in time, as will selecting and including a formal test framework in new projects.
Roadmap
Current major roadmap items are roughly (and not necessarily in order):

Publish v0.12, which will include normalization, Redux DevTools, and a Webpack 2 config that formally supports a production build. All are currently implemented, I just need to update the new project template, finish the upgrade guide, and then update the examples and docs.
Publish a formal Forms library/strategy, along with an example or two (in line with #156).
Integrate a test framework for new projects
Refocus on WebSockets, build a more complex example for it, and bring it out of "beta".
Create a wrapper over json-server that makes it easy to create non-trivial API scenarios for examples (like pagination, server errors, network latency, non-database driven resource creation, etc.)

If you think there should be additional items added to that, or have strong opinions about how parts of that should be done or concerns that should be represented, would love to discuss it.

I finally was able to get to try this and it looks like it's working well. I'm creating little lore one-off applications and then copying the hooks I want to modify into it, I like this approach. I think I'm gonna try setting up something like watchman.js, to watch for file changes in the src directories and then run npm install on change.

@timcase what is the goal you're looking to accomplish by integrating watchman and running npm install on changes to files in src?
Asking because, if I'm interpreting your goal correctly, Webpack might provide that functionality already. When I'm developing, and swapping out hooks, or testing changes to Lore's core, Webpack automatically discovers file changes and rebuilds the project and refreshes the browser, so I never have to run npm install during development (unless I add a new package to a hook or the application itself).
Would be helpful to you if I recorded a video showing my development flow, and demonstrate what kind of behaviors I experience with respect to auto-rebuilds of the application? I'm also thinking it might help clarify what I wrote above, about the difference between the lib and src directories, and how referencing the src directory of the Hook directly in index.js, such as this:
lore.summon({
  hooks: {
    // ...
    connect: require('/Users/jchansen/lore/lore/packages/lore-hook-connect/src'),
    // ...
  }
});

Allows Webpack to detect file changes, and automatically rebuild the project, where as referencing the compiled lib directory like this (which is often the default for many hooks, configured within package.json):
lore.summon({
  hooks: {
    // ...
    connect: require('/Users/jchansen/lore/lore/packages/lore-hook-connect'),
    // ...
  }
});

Requires the extra step of rebuilding the Hook on files changes, in order re-generate the libdirectory, which then Webpack would discover, and proceed to automatically rebuild the project.
I can see how that second scenario could benefit from using watchman, but if that's your goal, you might be able to side-step the need entirely by referencing the src folder directly in the index.js file in your project.

Sweet, you just saved me again, so I did what you described and adding src to the end of the package paths in index.js and now I see that my changes to src files are getting hot reloaded by webpack. I'm good to go now with hacking on lore core. This is a pretty good setup, I'm happy with it. It took reading your explanations to get this setup but honestly it's not that bad once you understand how everything fits together. I like hacking on the hooks locally and then moving them into the source repo later on. I'm also glad I didn't have to install watchman (there was a notion in my head that webpack should handle it too, but I didn't offhand know how). Thanks again. Now back to building validation with redux_forms...


create a VSecM version of this video: https://vimeo.com/v0lkan/aegis-use-cases

Moving to next release.
This is WIP, but I don’t think I can finish 10 episodes until the release cut.

This is mostly done.
I completed ~10 videos.
I will release them every couple of days.
They still need some publishing setup.

Completed them all.
I’ll announce them gradually in time.
Closing this.


Run Shellcheck

We should implement shellcheck.
Once all basic features are implemented, shellcheck will be run on it through github action.

Shellcheck has been run locally and the script has been changed to be shellcheck compliant.


x/tools/gopls: omit builtin completion "iota" outside const decls

The builtin item iota should not be offered as a completion item outside of const declarations.

Fixed in CL 195044.


Fix immediate execution for test result

Summary
Resolve #2166.

Test plan
Tested on example from #2166 and it works as expected. If someone is knowing how to check it with unit tests - I can add tests.

Current coverage is 64.80% (diff: 0.00%)

Merging #2556 into master will decrease coverage by 0.02%

@@             master      #2556   diff @@
==========================================
  Files           125        125
  Lines          4871       4873     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           3158       3158
- Misses         1713       1715     +2
  Partials          0          0

Powered by Codecov. Last update fa39ef8...f17d7ab

Yeah that is actually reasonable in this instance. Not usually the right fix but we are at most waiting for one tick of the loop.

Thanks.


native-or-bluebird for Promise implementation

Rationale for this: native-or-bluebird has axios use bluebird if it present in node_modules (i.e., require-able), otherwise, it falls back to the native implementation of Promise (or throws an error if there is no Promise implementation).
The 'doxbee' benchmark below from bluebird shows bluebird being only slightly slower and more memory consuming than vanilla callbacks. V8 promises (promises-ecmascript6-native), while they have been improving, are still 3.6x slower and 5.6x more memory consuming than bluebird, which can impact node.js servers with lots of concurrency, and possibly but less likely browser-side as well if it uses many promises.
Bluebird also has long stack traces, logs unhandled rejections by default (and allows a onUnhandledRejectionHandled handler), and a more complete API, which in my experience I have found to be necessary for large applications.
file                                     time(ms)  memory(MB)
callbacks-baseline.js                         133       32.47
promises-bluebird-generator.js                188       34.40
promises-bluebird.js                          254       44.96
promises-tildeio-rsvp.js                      308       69.93
promises-cujojs-when.js                       312       64.66
callbacks-caolan-async-waterfall.js           445       87.03
promises-lvivski-davy.js                      455      111.36
promises-dfilatov-vow.js                      524      141.39
promises-calvinmetcalf-lie.js                 568      149.73
promises-ecmascript6-native.js                691      193.04
generators-tj-co.js                           708      137.97
promises-obvious-kew.js                       981      267.30
promises-then-promise.js                     1244      233.59
promises-medikoo-deferred.js                 1625      203.92
observables-Reactive-Extensions-RxJS.js      2083      282.52
observables-pozadi-kefir.js                  2233      164.51
promises-zousan.js                           5345      352.99
observables-baconjs-bacon.js.js             15610      854.71
promises-kriskowal-q.js                     18958      886.04
observables-caolan-highland.js              25613      528.55

Platform info:
Linux 4.1.7-200.fc22.x86_64 x64
Node.JS 4.1.0
V8 <IP_ADDRESS>
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz × 8

Why can't you just override Promise yourself in your app? That was the goal with removing the es6-promise dependency, it allows consumers of axios to manage the Promise implementation themselves without loading multiple libraries superfluously.
Promise = require('bluebird');
var axios = require('axios');

That's a good point. I didn't think of that. In node I could just do global.Promise = require('bluebird'). I think that will be the better solution.


Groups are confusing.

I don't understand how to use groups, I feel like I had it working for a short period of time then couldn't figure it out again.
Some examples of my issues:
If I go to create a component with the arguments as a table, if I include group as a parameter, the component never gets created?? Or maybe it's never drawn or updated. Not quite sure.
--This Works
jump = gooi.newButton({text = "J"})

--This Does Not
jump = gooi.newButton({text = "J", group = "ingame"})
jump.group = "ingame"

Are groups a private thing for the library it's self? Or am I misunderstanding something? The lack of documentation is very frustrating but this GUI library is the best I've found.
I'd really like to take advantage of gooi.setGroupEnabled() however I may just have to have certain components in a specific table and enable and disable them all over a for loop. component:setEnabled() is working just fine.

Groups exist as part of the API, the following example shows how they work:
`require "gooi"
function love.load()
currentGroup = ""-- No group yet
-- These buttons have no group specified:
gooi.newButton("Show group 1", 10,  10):onRelease(function(c) currentGroup = "g1"; end)
gooi.newButton("Show group 2", 140, 10):onRelease(function(c) currentGroup = "g2"; end)
gooi.newCheck("Checkbox of group 'g1'", 100, 100):setGroup("g1")-- belongs to group g1
gooi.newCheck("Checkbox of group 'g2'", 100, 130):setGroup("g2"):bg("#FF8800AA")-- to g2

end
function love.draw()
gooi.draw()-- Draw the buttons with no group specified
gooi.draw(currentGroup)-- Draw the other components with a group
end
function love.mousereleased(x, y, button) gooi.released() end
function love.mousepressed(x, y, button)  gooi.pressed() end`
But please note, the group thing is for drawing operations, this means that if you don't draw a group, it doesn't mean the components won't work when clicked or something, that's why you should use setEnabled() or setGroupEnabled() in conjunction; gooi.setGroupEnabled("g1", false), for instance, should work to disable all the elements for the group 'g1'.
About the docs, you're actually right, I focused a lot on other things and forget those, I'll add another issue regarding that, thanks for the reminder :)

Thank you for the elaborate explaination and example. Turns out I just had no idea what I was doing. I should have seen the c:setGroup() function in the components.lua file source. Everything makes sense now. Thanks!

You're welcome, as a "workaround", you can use the examples in main.lua as documentation, in the meantime.


can this be used for xss sanitation?

Yes, that is one of its intended use cases. Of course you have to be careful what attributes and tags to allow.

How Can I allow all the tags but not script and link tag?


Assign JSONArray of Strings using JSONModel

I am trying to use JSON Model to parse the following:
"loans": [
{
  "id": 98765,
  "name": "Jeffrey",
  "description": {
    "languages": ["es","en"]
  },
  "status": "fundraising",
  "funded_amount": 26,
 "location":{"country_code":"BO","country":"Bolivia","town":"Santa Cruz"}

KivaFeed.h
@interface KivaFeed : JSONModel
@property (strong, nonatomic) NSArray<LoanModel, ConvertOnDemand>* loans;
@end

LoanModel.h
@protocol LoanModel @end
@interface LoanModel : JSONModel
@property (strong, nonatomic) NSString* name;
@property (strong, nonatomic) NSString* status;
@property (strong, nonatomic) NSString* use;
@property (strong, nonatomic) Description* description;
@property (strong, nonatomic) LocationModel* location;

Description.h
@interface Description : JSONModel
@property (strong, nonatomic) NSArray<Languages*>*languages;
@end

Languages.h
@protocol Languages
@end
@interface Languages : JSONModel
@end

From previous readings / analysis it appears i need to establish a protocol using NSString
in the Languages.h class?
When I run the following code, I get:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<LoanModel 0x7fd0d8534be0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key description.'

I must have Languages.h coded incorrectly....
How do you use JSONModel, to properly parse the following:
"languages": ["es","en"]

Where do I establish NSString as the only valid data type for that class.
Only been working in iOS for 6 months.....
Thanks for your help!

Okay so the JSON you've provided isn't quite valid, but I will assume it is actually this:
{
	"loans": [
		{
			"id": 98765,
			"name": "Jeffrey",
			"status": "fundraising",
			"funded_amount": 26,
			"description": {
				"languages": ["es", "en"]
			},
			"location": {
				"country": "Bolivia",
				"country_code": "BO",
				"town": "Santa Cruz"
			}
		}
	]
}

Your model classes could look like this:
@protocol Loan;

@interface MyModel : JSONModel
@property (strong, nonatomic) NSArray <Loan *> <Loan> *loans;
@end

@interface Loan : JSONModel
@property (strong, nonatomic) NSInteger *id;
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *status;
@property (strong, nonatomic) NSInteger *funded_amount;
@property (strong, nonatomic) Description *description;
@property (strong, nonatomic) Location *location;
@end

@interface Description : JSONModel
@property (strong, nonatomic) NSArray <NSString *> *languages;
@end

@interface Location : JSONModel
@property (strong, nonatomic) NSString *country;
@property (strong, nonatomic) NSString *country_code;
@property (strong, nonatomic) NSString *town;
@end

It's worth noting that ConvertOnDemand has been removed/deprecated. It's also worth nothing that this JSON would not deserialize because use is missing, which would fail validation. Just add <Optional> if it is not required.

I coded it exactly how you have it.
Its still failing on the assignment of the description.
IF I have Loan coded like below it works:
@interface Loan : JSONModel
@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *status;
@property (strong, nonatomic) NSString *use;
@property (assign, nonatomic) int funded_amount;
//@property (strong, nonatomic) Description *description;
@property (strong, nonatomic) Location *location;
When I uncomment the Description line, its failing.
@interface Loan : JSONModel
@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *status;
@property (strong, nonatomic) NSString *use;
@property (assign, nonatomic) int funded_amount;
@property (strong, nonatomic) Description *description;
@property (strong, nonatomic) Location *location;
@interface Description : JSONModel
@property (strong, nonatomic) NSArray <NSString *> *languages;
@end
2016-05-12 10:06:54.325 JSON_HelloWorld[18304:62926] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Loan 0x7fa9a1d52180> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key description.'
*** First throw call stack:
(
0   CoreFoundation                      0x000000010c86dc65 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x000000010c506bb7 objc_exception_throw + 45
2   CoreFoundation                      0x000000010c86d8a9 -[NSException raise] + 9
3   Foundation                          0x000000010be5ab53 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
4   JSON_HelloWorld                     0x000000010aa79399 -[JSONModel initWithDictionary:error:] + 3881
5   JSON_HelloWorld                     0x000000010aa7c7ef +[JSONModel arrayOfModelsFromDictionaries:] + 527
6   JSON_HelloWorld                     0x000000010aa7aff1 -[JSONModel __transform:forProperty:] + 945
7   JSON_HelloWorld                     0x000000010aa7942d -[JSONModel initWithDictionary:error:] + 4029
8   JSON_HelloWorld                     0x000000010aa83cb2 __58-[JSONModel(Networking) initFromURLWithString:completion:]_block_invoke + 146
It seems like this is an error some other developers are running into using the JSONModel.
Trying to code for a generic string list on a key
       "description": {
            "languages": ["es", "en"]
        },

Try putting
@synthesize description = _description;
inside your implementation (*.m).

Ah yes, you will need to do the above, though I think you can just do:
@synthesize description;

This is because 'description' is a special property in Obj-C. You may wish to change the property name and use a JSONKeyMapper to convert the name.

Thanks HerrDoktorBD / billinghamj.  That worked!


Public Facebook Groups

Hey!
A suggestion, it's create a bridge for public Facebook group.
Regards

Can you provide some links to groups?
I'm not very familiar with Facebook and it doesn't seem to be easy finding them without having an account...

https://facebook.com/groups/976276749102927?ref=bookmarks

Unfortunately that one requires login :cry:

A other example : https://www.facebook.com/groups/743149642484225

Please let me know if #739 works for you

It's work for me :-)

Perfect, thanks for the feedback! I'll merge then


path error

Hello,Thank you very much topics.
But I found the style file path dose not use the time,
I configure it follow your introduce,
could you tell me how to modify it?

see #19

Thank you.


Publish the v1.0.0 release

Must be ran by a member of the @material-motion/core-team
mdm release publish 1.0.0

https://github.com/material-motion/material-motion-family-pop-swift/releases/tag/v1.0.0


Requesting a feature: "Ajax" type add an option to save the data

While using ajax time if we close and click the same button the Magnific-Popup requesting same data again from the given url..
If there is a way to save the content & popping up the saved content with out requesting again from the url . Please tell me.

+1


Something going on with the placeholder.

Hey I am seeming to have a bug within runelite using the placeholders. I can have a placeholder of an item and that exact item side by side within my bank. it seems to happen with anything that can deplete in uses eg potions tele necklaces etc. i have windows 10 and RL version 1.5.1 Launcher 1.5.2 OS revision: Rev 177. I was also selling a magic potion on the ge and was able to sell that same potion 4 times. I had a bunch of potions in my inv that i was selling off but am 100percent sure it was the same one. I don't think it would matter but I do also have 3 clients running.  I have tried closing the client and restarting and if i use a tele necklace with (4) uses and leave a placeholder when i re-enter with only (3) uses it will overlap the (4) placeholder. I have also tried accessing the bank from different locations castlewars, seers, edgeville and same thing.

That is just how OSRS works, the charge variations of items usually share same placeholder


Type aliases:  ValueFor and W + subsequence + other stuff

This PR adds:

Added a type alias ValueFor<S> where S: Strategy. This is a shorter way
to refer to: <<S as Strategy>::Value as ValueTree>::Value.

Added a type alias type W<T> = (u32, T) for a weighted strategy T in the
context of union strategies.

TestRunner now implements Default.

Added Config::with_cases(number_of_cases: u32) -> Config for simpler
construction of a Config that only differs by the number of test cases.

The default number of test cases to run is 256 (as before). This default
which is encoded by Config::default() is now configurable by setting the
env-var PROPTEST_REQUIRED_CASES to a value that can be parsed as a u32.
This variable is read at runtime.

bumped dependency rand = "0.3.18".

Added proptest::collection::subsequence<T: Clone>(Vec<T>, Range<usize>)
which returns a strategy generating subsequences, of the source Vec,
with a size within the given Range.

Added the trait CollectionStrategy which provides .prop_sample directly
on collection types. The operation is the same as subsequence for Vec.

And then bumps the version to 0.3.2.
Point 1. makes documentation quite more readable and it's a bit easier now to construct your own generic strategies.
Point 2. makes working with unions a bit more readable too, but this was less important.
I also ran cargo clippy and applied some of its suggestions.

Looks good to me in general. I'll likely be merging this in the near future. (Currently on vacation, so timing might be a bit weird; early next week at latest.) Thanks for the PR!

Removed the unsafe bit now + some more clippy. Can you take on from here?

Sorry, I thought github would add a link here or something; the PR's already merged into 0.3.2-changes

Nicely done. Any idea when you'll merge into master? You might want to rebase two changes in TestRunner and dateparser_v2 on top of 0.3.2-changes. Also... should I close this PR? No idea how GitHub deals with it.

The only thing I have left to do for 0.3.2 is audit other places for the same kind of bug VecStrategy had. If all goes well, 0.3.2 will be tomorrow. I'm fairly sure that this PR will be marked as merged as soon as my branch is merged into master. If not, I'll figure something out then.

Great =) I'll continue my work on Arbitrary then =)

This is all in 0.3.2, except for CollectionStrategy which as far as I can tell isn't able to be made useful without ATCs (see commit description in https://github.com/AltSysrq/proptest/commit/ea2008507401b7f8ad5bebff6eb163deaa0ff5d3).


feat(fonts): font can be overwritten; adding move font

Does this resolve #252?

yeah, I think so, if we extend it, so all values can be overwritten - I can do that, should we?

I think it's fine to just resolve that issue now since fonts were the primary concern, and then if customers ask to override other things in the future we can re-evaluate how that fits into the current API.

makes sense


Add class for general multi-dim KDE with rescaling

Implement a general KDE with independent bandwidths in different dimensions by rescaling the training point parameters

I don't think we need other methods besides the ones that are inherited at the moment .. at least I can't think of any


bug: Error when logging in

Describe the bug
When logging in, we receive an error on the callback from auth0. This same behavior occurs in the local-dev environment.
To Reproduce
Steps to reproduce the behavior:

Go to https://cellxgene.dev.single-cell.czi.technology/
make sure you are logged out
Click on login
proceed to login using one of the OIDC provider.
the page will redirect to a page displaying {"Code":"UnauthorizedError","Message":"UnauthorizedError: response from oauth server not valid"} The URLs will looks something like this https://api.cellxgene.dev.single-cell.czi.technology/dp/v1/oauth2/callback?code=jM50Y3EkAVBtxSYb&state=cxlm0pqmD6j9FpPAvZdx6DoYsDgeVA

Expected behavior
A clear and concise description of what you expected to happen.
Environment

Browser chrome

Additional context
The cause is the use of Strict for the sessions cookie.

Here is the stack trace from the backend
corpora-api-dev - ERROR - Unable to authorize access token.
Traceback (most recent call last):
  File "/chalice/chalicelib/corpora/lambdas/api/v1/authentication.py", line 91, in oauth2_callback
    token = client.authorize_access_token()
  File "/usr/local/lib/python3.8/dist-packages/authlib/integrations/flask_client/remote_app.py", line 74, in authorize_access_token
    params = self.retrieve_access_token_params(flask_req, request_token)
  File "/usr/local/lib/python3.8/dist-packages/authlib/integrations/base_client/base_app.py", line 144, in retrieve_access_token_params
    params = self._retrieve_oauth2_access_token_params(request, params)
  File "/usr/local/lib/python3.8/dist-packages/authlib/integrations/base_client/base_app.py", line 125, in _retrieve_oauth2_access_token_params
    raise MismatchingStateError()
authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF Warning! State not equal in request and response.```

Can confirm that logging in via Github works in staging now 👍 Thank you!

Can confirm I can log in with Github now!


Quick Question

Hi,
Thanks for both this and https://github.com/appsecco/owasp-threat-dragon.
I was wondering what the changes/differences are between this and the other are? Is it possible to bring the GitLab functionality/configuration over into the other so that we can offer a single image that can function for GitHub and GitLab (where we set it up to work with only one of them, but have the option).
Thanks, Matt

This is certainly good from my perspective as well. There is an issue in the Threat Dragon repo:
https://github.com/mike-goodwin/owasp-threat-dragon/issues/122
where it suggests that this would be a good thing to do

Mike Goodwin's original Threat Dragon (from which owasp-threat-dragon-gitlab was developed) has been migrated to a new area in the OWASP github organisation area:
https://github.com/OWASP/threat-dragon-core
We hope that owasp-threat-dragon-gitlab cann be combined with this so it can be picked up by :
https://github.com/OWASP/threat-dragon-desktop
and
https://github.com/OWASP/threat-dragon


[BUG]: Date Invisible in Light Mode on Event Calendar

Description
The event calendar on the GNOME Nepal site has a visibility issue where the dates are not visible in light mode but appear correctly in dark mode. This impacts the usability of the calendar, especially for users who prefer light mode.
Expected Behavior:
The dates should be visible and legible in both light and dark modes.
Actual Behavior:
The dates are invisible in light mode, making it difficult to use the calendar effectively.
Proposed Solution:
Update the calendar's CSS to ensure the text color of the dates contrasts sufficiently with the background in both light and dark modes.
Reproduction URL
https://nepal.gnome.org/#events
Reproduction steps
1. Navigate to the GNOME Nepal site and view the event calendar.
2. Switch to light mode.
3. Observe that the dates are not visible.
4. Switch to dark mode.
5. Observe that the dates appear correctly.

Screenshots
![Invisible in Lightmode](https://github.com/user-attachments/assets/7d82d51b-919a-4b58-9b19-d349d2c091ff)
![Visible in Darkmode](https://github.com/user-attachments/assets/34a41953-58bc-4a06-a536-5fc452c834f9)

Logs
No response
Browsers
No response
OS
Linux

I believe this is more of a frontend issue. Please raise it in the frontend repository.

Yes, I raised this issue there.


Update to oryd/hydra:v1.11.10 for OAuth2 testing

Description
This fixes build failures with some newer OS versions, but avoids any updates necessary for adopting v2.x. Testing with 2.x with the current setup fails to start the container.
Additional context and related issues
Also ported change to Trino.
https://github.com/trinodb/trino/pull/24500
Release notes
(x) This is not user-visible or is docs only, and no release notes are required.

Thanks @ebyhr


flow_unittests death tests fail on engine_v2

When turning on the engine unit tests on engine_v2 they fail with warnings about death tests not being safe in threaded environments.
patch
--- a/ci/builders/mac_host_engine.json
+++ b/ci/builders/mac_host_engine.json
@@ -28,7 +28,8 @@
                 "debug",
                 "--no-lto",
                 "--prebuilt-dart-sdk",
-                "--build-embedder-examples"
+                "--build-embedder-examples",
+                "--enable-impeller-vulkan"
             ],
             "name": "host_debug",
             "ninja": {
@@ -52,7 +53,7 @@
                         "--variant",
                         "host_debug",
                         "--type",
-                        "dart",
+                        "dart,engine",
                         "--engine-capture-core-dump"
                     ],
                     "script": "flutter/testing/run_tests.py"

error
[23/492] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (178 ms)
Note: Google Test filter = FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from FrameTimingsRecorderTest
[ RUN      ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync

[WARNING] ../../third_party/googletest/googletest/src/gtest-death-test.cc:1124:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 3 threads. See https://github.com/google/googletest/blob/master/docs/advanced.md#death-tests-and-threads for more explanation and suggested solutions, especially if this is the last message you see before your test times out.
../../flutter/flow/frame_timings_recorder_unittests.cc:135: Failure
Death test: recorder->RecordBuildStart(build_start)
    Result: failed to die.
 Error msg:
[  DEATH   ]
[  FAILED  ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (1 ms)
[----------] 1 test from FrameTimingsRecorderTest (1 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (1 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync

 1 FAILED TEST
[23/492] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync returned/aborted with exit code 1 (178 ms)
[24/492] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (179 ms)
Note: Google Test filter = FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from FrameTimingsRecorderTest
[ RUN      ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync

[WARNING] ../../third_party/googletest/googletest/src/gtest-death-test.cc:1124:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 3 threads. See https://github.com/google/googletest/blob/master/docs/advanced.md#death-tests-and-threads for more explanation and suggested solutions, especially if this is the last message you see before your test times out.
../../flutter/flow/frame_timings_recorder_unittests.cc:135: Failure
Death test: recorder->RecordBuildStart(build_start)
    Result: failed to die.
 Error msg:
[  DEATH   ]
[  FAILED  ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (2 ms)
[----------] 1 test from FrameTimingsRecorderTest (2 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (2 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync

 1 FAILED TEST
[24/492] FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync returned/aborted with exit code 1 (179 ms)

FAILED TESTS (4/492):
     178 ms: /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (try #1)
     179 ms: /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync (try #2)
     178 ms: /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordRasterBeforeBuildEnd (try #1)
     179 ms: /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordRasterBeforeBuildEnd (try #2)
SUMMARY:
  /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordBuildBeforeVsync passed 0 / 2 times.
  /Volumes/Work/s/w/ir/cache/builder/src/out/host_debug/flow_unittests FrameTimingsRecorderTest.ThrowWhenRecordRasterBeforeBuildEnd passed 0 / 2 times.

example
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8780281604614034161/+/u/test:_Host_Tests_for_host_debug/stdout

duplicate of https://github.com/flutter/flutter/issues/103757