When cloning a layout, macros are not copied even if icon is showing on the keys.

after cloning a layout, I have to associate back all the macros. even if the icon on the virtual cap is showing, the macro is actually empty.

fixed. thanks. 😀

Thanks to YOU!
Bruno A. De Santis

Il giorno 19 mar 2021, alle ore 05:23, Freddie Wang @.***> ha scritto:
fixed. thanks. 😀
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/TsFreddie/much-programming-core/issues/22#issuecomment-802543570, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXJNFJQEYTQCMA2MBLUPGTTELGUTANCNFSM4ZBWCG7Q.


None of the bot upload methods are working

bot.upload or send to room , none of them seem to work.
May be I am wrong, but the code has reference to "req" but the request module is not included.

Hi @dang-1234.  Is this now resolved?

@dang-1234, as we discussed, closing this issue.


Integration not loading in Home Assistant Core 2024.1.0

After updating Home Assistant to
Core 2024.1.0
Supervisor 2023.12.0
Operating System 11.2
Frontend 20240103.3
the Ariston integrations fails to load. Logs are below:
Logger: homeassistant.loader
Source: loader.py:822
First occurred: 00:00:50 (1 occurrences)
Last logged: 00:00:50
Unexpected exception importing component custom_components.ariston
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 822, in get_component
ComponentProtocol, importlib.import_module(self.pkg_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1204, in _gcd_import
File "", line 1176, in _find_and_load
File "", line 1147, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "/config/custom_components/ariston/init.py", line 24, in
from .const import (
File "/config/custom_components/ariston/const.py", line 67, in
class AristonBaseEntityDescription(EntityDescription, ABC):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
====================================================================================
Logger: homeassistant.setup
Source: setup.py:251
First occurred: 00:00:50 (1 occurrences)
Last logged: 00:00:50
Setup failed for custom integration 'ariston': Unable to import component: Exception importing custom_components.ariston
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 822, in get_component
ComponentProtocol, importlib.import_module(self.pkg_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1204, in _gcd_import
File "", line 1176, in _find_and_load
File "", line 1147, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "/config/custom_components/ariston/init.py", line 24, in
from .const import (
File "/config/custom_components/ariston/const.py", line 67, in
class AristonBaseEntityDescription(EntityDescription, ABC):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 251, in _async_setup_component
component = integration.get_component()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/loader.py", line 830, in get_component
raise ImportError(f"Exception importing {self.pkg_path}") from err
ImportError: Exception importing custom_components.ariston
====================================================================================
Logger: homeassistant.config_entries
Source: config_entries.py:2087
First occurred: 00:10:28 (1 occurrences)
Last logged: 00:10:28
Error occurred loading flow for integration ariston: cannot import name 'EvoOneDeviceProperties' from 'ariston.const' (/usr/local/lib/python3.11/site-packages/ariston/const.py)
=================================================
If I try to add the integration again I get the error:
Config flow could not be loaded: {"message":"Invalid handler specified"}

Already fixed. Use the latest version.


Create maven.yml

Setup testing workflow for week 5. I'm not sure if this will work but I think it will

Great it works I just don't know why the check is called build and not test


Add new wget job to download with glob

Same as: https://github.com/earthobservatory/lightweight-jobs/pull/1

Add a wget with glob job for user to select specific wget downloads they would like.
Logs

@pymonger

@pymonger just switched it :)


WebGL feature toggle is ignored and WebGL is always forced

One of the set-top-boxes we have does not support WebGL. The Wuf.js library however forces this, and does not do anything with the canvas2d feature toggle as defined in the Lightning documentation (https://webplatformforembedded.github.io/Lightning/docs/gettingStarted/configuration). Are there plans to also support non-WebGL rendering, or will this SDK always require WebGL?

@MLangendijk closing ticket, we solved it via Skype.

Nice that it’s solved! I think it’s wise to share some details here for people who stumble upon the same issue in the future


Unable to estimate fee using MnemonicWallet

Fails when simulating transaction in query method of RPCCLient.
import { MnemonicWallet } from "cosmes/wallet";
import { MsgInstantiateContract } from "cosmes/client";

async function main() {

    const wallet = new MnemonicWallet({
        mnemonic: "address finger arm glide plastic current garment universe people secret mask snack duck what spend congress curious hip wall ensure feel more traffic size",
        bech32Prefix: "terra",
        chainId: "columbus-5",
        rpc: "https://terra-classic-rpc.publicnode.com:443",
        gasPrice: {
            amount: "50",
            denom: "uluna",
        },
        coinType: 330
    })

    const msg = new MsgInstantiateContract(
        wallet.address,
        wallet.address,
        '6036',
        {
            "name": "Test Token",
            "symbol": "TEST",
            "decimals": 6,
            "initial_balances": [
                {
                    "address": wallet.address,
                    "amount": "777777777777777"
                }
            ]
        },
        undefined,
        'My Label'
    )

    const tx = {
        msgs: [msg],
        memo: 'Instantiate Contract via Cosmes'
    }

    const fee = await wallet.estimateFee(tx); //TODO fails at estimateFee

}

main();

Error: rpc error: code = Unknown desc = sender: empty address string is not allowed [CosmWasm/wasmd@v0.30.0/x/wasm/types/tx.go:97] With gas wanted: '0' and gas used: '501075' : unknown request
    at RpcClient.query (file:///D:/instantiate-contract/node_modules/cosmes/dist/client/clients/RpcClient.js:37:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async estimate (file:///D:/instantiate-contract/node_modules/cosmes/dist/wallet/wallets/ConnectedWallet.js:46:33)
    at async MnemonicWallet.estimateFee (file:///D:/instantiate-contract/node_modules/cosmes/dist/wallet/wallets/ConnectedWallet.js:59:20)
    at async main (file:///D:/instantiate-contract/index.js:44:17)

Sorry for issue spam lol. MsgInstantiateContract takes object not individual arguments.
    const msg = new MsgInstantiateContract({
       sender: wallet.address,
        admin: wallet.address,
        codeId: '6036',
        msg: {
            "name": "Test Token",
            "symbol": "TEST",
            "decimals": 6,
            "initial_balances": [
                {
                    "address": wallet.address,
                    "amount": "777777777777777"
                }
            ]
        },
        funds: undefined,
        label: 'My Label'
    })


README uses relative instead of absolute URLs

The URLs were pointing to a completely different repository.
This change is supposed to not only fix it but also fix it for all potential forks.

oh wow, thanks.


How to visualize results

This is a very good job. Thank you for sharing. But I have two questions, one is how to visualize image results like your paper.
An other question is  when I run the test_NF.sh, it seems that there is no output

You can use TensorBoard to visualize results while training the NeRF model. It shows a training view rendered from the model and a held-out view rendered from the model as well as many useful curves such as those for PSNR, NLL, MSE, etc...


Xcode 14 and iOS 16, Errors with Color, Size and Uint8List in the package

[x] I have read the Get Started - Installation section
[x] I have read and done the Get Started - Setup Android section
[x] I have read and done the Get Started - Setup iOS section
[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
Flutter 3.0.5 stable

Plugin version
flutter_inappwebview: ^5.5.0+3

Android version

iOS version
iOS 16.0

Xcode version
14.0.1

Device information:
iPhone XS Max
Description
When I run flutter run, it throws me these errors:
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:1199:52: Error: Type 'Uint8List' not found.
  Future<void> postUrl({required Uri url, required Uint8List postData}) async {
                                                   ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:1612:10: Error: Type 'Uint8List' not found.
  Future<Uint8List?> takeScreenshot(
         ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:2044:10: Error: Type 'Color' not found.
  Future<Color?> getMetaThemeColor() async {
         ^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:41:9: Error: Type 'Size' not found.
  final Size initialSize;
        ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:184:24: Error: Type 'Size' not found.
  Future<void> setSize(Size size) async {
                       ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:197:10: Error: Type 'Size' not found.
  Future<Size?> getSize() async {
         ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:451:52: Error: Type 'Uint8List' not found.
  void Function(InAppWebViewController controller, Uint8List icon)?
                                                   ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/chrome_safari_browser/chrome_safari_browser.dart:194:3: Error: Type 'Uint8List' not found.
  Uint8List icon;
  ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/pull_to_refresh/pull_to_refresh_controller.dart:77:25: Error: Type 'Color' not found.
  Future<void> setColor(Color color) async {
                        ^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/pull_to_refresh/pull_to_refresh_controller.dart:84:35: Error: Type 'Color' not found.
  Future<void> setBackgroundColor(Color color) async {
                                  ^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/ios/in_app_webview_controller.dart:34:10: Error: Type 'Uint8List' not found.
  Future<Uint8List?> createPdf(
         ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/ios/in_app_webview_controller.dart:48:10: Error: Type 'Uint8List' not found.
  Future<Uint8List?> createWebArchiveData() async {
         ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:44:33: Error: Couldn't find constructor 'Size'.
      {this.initialSize = const Size(-1, -1),
                                ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:395:11: Error: 'Uint8List' isn't a type.
          Uint8List icon =
          ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:396:15: Error: The getter 'Uint8List' isn't defined for
the class 'InAppWebViewController'.
 - 'InAppWebViewController' is from 'package:flutter_inappwebview/src/in_app_webview/in_app_webview_controller.dart'
 ('../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'Uint8List'.
              Uint8List.fromList(call.arguments["icon"].cast<int>());
              ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/in_app_webview_controller.dart:1199:52: Error: 'Uint8List' isn't a type.
  Future<void> postUrl({required Uri url, required Uint8List postData}) async {
                                                   ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:41:9: Error: 'Size' isn't a type.
  final Size initialSize;
        ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:184:24: Error: 'Size' isn't a type.
  Future<void> setSize(Size size) async {
                       ^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/in_app_webview/headless_in_app_webview.dart:451:52: Error: 'Uint8List' isn't a type.
  void Function(InAppWebViewController controller, Uint8List icon)?
                                                   ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/chrome_safari_browser/chrome_safari_browser.dart:194:3: Error: 'Uint8List' isn't a type.
  Uint8List icon;
  ^^^^^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/pull_to_refresh/pull_to_refresh_controller.dart:77:25: Error: 'Color' isn't a type.
  Future<void> setColor(Color color) async {
                        ^^^^^
../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.5.0+3/lib/src/pull_to_refresh/pull_to_refresh_controller.dart:84:35: Error: 'Color' isn't a type.
  Future<void> setBackgroundColor(Color color) async {
                                  ^^^^^

It seems very strange. I don't get any of these errors, I can run my code example with any problem.
Have you tried to run flutter clean and flutter pub get again?

Hey, thanks for the fast response.
I have tried restarting my computer, running flutter clean and flutter pub get many times, using the 6.0 beta version of the package but I still get these errors.
I tried manually editing the code in the package and resolving the Errors, the app then builds without a problem but the package then doesn't work i.e, It doesn't want to open the desired website.

Have you tried to update your Flutter version?

No, good idea, can you please tell me what Flutter version You are using?

I'm running on Flutter 3.3.3

I will give it a try and see what happens!

Solved the issue completely! Thank You so much!

You are welcome! 👍


Proposal: Disable undefined reference (UR) rule in PMD

The controversial PMD rule DataflowAnomalyAnalysis contains a check for undefined references.
This check is unnecessary, since Eclipse itself will report the error and the Java compiler will eventually fail. Additionally, it has a high false positive rate. The following example would violate the rule:
for (final String role : rolesAllowed) {
  if (requestContext.getSecurityContext().isUserInRole(role)) {
     return;
    }
}

I propose to disable the UR section of the rule as shown in this SO-post.

Close with respect to the PR #4.


Add baseURL parameter to hugo config

It seems that https://github.com/inclusivenaming/website/blob/576e9b6479e79eb7737f430434d22ead55bd04cb/layouts/partials/navbar.html#L1 is actually unset, and as such, when you click the logo it is linking to the current page (empty href), rather than the actual homepage.

/assign @justaugustus @celestehorgan
(does this even run prow? lol)

/assign @justaugustus @celestehorgan
(does this even run prow? lol)

@cblecker it does not run prow!
Thank you so much for catching this! ❤

@cblecker it does not run prow!
Thank you so much for catching this! ❤


Request: add the special effects of ripple etc to the button, as of API 21

For API 21 and above (Lollipop), please set the floating button to also have the ripple effect and optionally other effects (like a real shadow instead of drawable).

OK, I've found out how to add this, but I'm not sure how to offer the change on Github (fork?), so I will tell you what needs to be done here:
attrs.xml:
add this attribute to "FloatingActionButton":

FloatingActionButton.java :
add field:
private int mColorRipple;
inside init() method , add this:
mColorRipple = attr.getColor(R.styleable.FloatingActionButton_fab_colorRipple, getColor(android.R.color.white));
and add/change those methods:
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
private void setBackgroundCompat(Drawable drawable) {
    if (Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
        RippleDrawable rippleDrawable = new RippleDrawable(new ColorStateList(new int[][]{{}},
                new int[]{mColorRipple}), drawable, null);
        setBackground(rippleDrawable);
    } else if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
        setBackground(drawable);
    else
        setBackgroundDrawable(drawable);
}

public void setColorRipple(int color) {
    if (color != mColorRipple) {
        mColorRipple = color;
        updateBackground();
    }
}

public void setColorRippleResId(@ColorRes int colorResId) {
    setColorRipple(getColor(colorResId));
}

public int getColorRipple() {
    return mColorRipple;
}

It works fine, but I think that the shadow gets a ripple too, and that the inner icon image should have a ripple.

+1

+1

+1

+1

+1

+1, will be very useful

+1.
Material without ripples?

For those who used what I wrote, has anyone had any issues with it?
I got a very rare issue which might be because of what I did:
https://github.com/futuresimple/android-floating-action-button/issues/175

@AndroidDeveloperLB  its not working.

@DevendraSingh91 Maybe try one of these solutions (got the tip from: https://plus.google.com/+NickButcher/posts/azEU6s4APbu ) :
1.Wrap the drawable in a RippleDrawable² before setting it on the ImageView:
Drawable image = …
RippleDrawable rippledImage = new RippleDrawable(ColorStateList.valueOf(rippleColor), image, null);
imageView.setImageDrawable(rippledImage);
2.Extend ImageView and add a foreground attribute to it (like FrameLayout has³). See this example⁴ from +Chris Banes of adding it to a LinearLayout. If you do this then make sure you pass through the touch co-ordinates so that the ripple starts from the correct point:
@Override
public void drawableHotspotChanged(float x, float y) {
super.drawableHotspotChanged(x, y);
if (foreground != null) {
foreground.setHotspot(x, y);
}
}

please simplify a bit more, i am not understanding, where i can write this code. and the co-ordinates.

@DevendraSingh91 What to explain more exactly ? What didn't you understand ?
Anyway, I've forked the project just to add this code, here:
https://github.com/AndroidDeveloperLB/android-floating-action-button
I'm sure there are better solutions than what I did.

i wanted to make such effect.. like if we click a floatmenubutton than the whole layout should get the effect(in which the parent layout get the ripple effect's color.) than goes to next activity as i have to go on another page.

@DevendraSingh91 I don't understand. Maybe you mean this:
ViewAnimationUtils.createCircularReveal()
example:
https://halfthought.wordpress.com/2014/12/02/reveal-activity-transitions/

I use for that this fab: https://github.com/Clans/FloatingActionButton
It has a few more features.

@Poeschl Google also added its own, for the new library they've published.

any news about this?

+1


Type-casting issues with fluent interface

The Container#self() method doesn't return the correct type for subclasses of implementations. For example, the following will not compile because withEnv returns a GenericContainer not a DockerComposeContainer:
@ClassRule
public static DockerComposeContainer environment =
    new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
            .withEnv("SOMETHING", "hello world");

@haines I think that #238 covers this issue and also includes a workaround, so I'll close this if that's OK with you?

Yep, that's fine!


Update Sync.swift docs with deprecation warning.

- warning is correct, and changing it to @warning will make the docs not render correct inside Xcode.

Ah ok , so that works differently for objc which uses @?

Yes, objc and swift have different doc comment syntaxes.

Haha and I guessed I found the issue with the rendering.
Ok then we could just remove the year old note about it being experimental.

@tgoyne I fixed the wrong warning syntax. Is this good now?


Ryan and Sri final project plan

Encrypter and Decrypter
In our final project, we plan to create a symmetric encrypted and decrypted algorithm that encrypts and decrypts code in a specific key. We plan to either generate a key or use the ASCII key to encrypt and decrypt text. Our UI functions as follows- the user inputs text and clicks a button that sends said text to the backend API. Once the text is sent, the backend has code that will encrypt the data and store it in the database. The encrypted data is then sent to the frontend UI wherein the code decrypts the text. Since a backend network is involved we most likely plan to create a symmetric algorithm wherein the presence of a public and private key creates a more secure system. We also plan to provide the user with a secret message each time they send data to be encrypted to help with the sorting and searching algorithms. The secret key would assign each word of the data with a specific number according to their initial arrangement and when the words are mixed it would be easy to decrypt the messaging on the front end.

Feature Flowchart

User input from the front which includes raw data
Raw data is posted to the backend database wherein it is encrypted using the symmetric ASCII key
Raw data and encrypted data are stored in a backend database along with an ID/Keyname
Data is sorted according to the ID
Back to the frontend
The user requests data from the backend/ the encrypted data using the ID/Keyname
Algorithm searches across the database to identify the ID number and sends the data to the frontend.
Encrypted data is displayed and using a decryptor the data is decrypted into the original raw.

Features and Requirements Breakdown
1. Loops (Algorithmic) Show a specific example of building a List using List Comprehension. Show examples of processing a list using conventional and for each method.
The list we plan to use is the ASCII key list or our key which contains values that are both in the English alphabet and its corresponding numbers and letters. This list shall be part of the backend and frontend code wherein the system encrypts the text. Given that the program uses a backend we also plan to store said data both as the input data from the user and the encrypted data from the algorithm.
2. Sorting / Searching (Algorithmic) Show examples of sorting and searching using the backend of your project. FYI, SQLAlchemy allows filtered selections and sorting. Additionally, you have sorting options discussed in the tech talk.
The backend of the algorithm shall search through the data given by the user to look for the letters and encrypt them with the values of the key. regarding sorting we plan to send the encrypted data as a mixed bag of words and numbers to the frontend system that then sorts the data once decrypts it providing another layer of security for the program system.
3. Big(O) Illustrate the Space and Time complexity used in your Sorting / Searching algorithm.
The algorithm sorts words according to alphabetical order and thus the time taken would be decided by that issue.
4. 2D Iteration Show examples of code that uses 2D iteration. This can be anywhere in your code where you are using rows and columns.
The roles and columns that would most likely be used in our code are from the key relating it to the alphabet present both in the fronted and the backend in order to both encrypt and decrypt the data sent from the user and back from the API.
5. Deployment (Full Stack) A complete deployment illustration of multiple people using and updating your Full Stack Web Application simultaneously.
Use AWS deployment. Ensure the application supports multiple users by implementing user authentication and session management.
Tasks:
Sri: Create frontend and backend code that determines how he data is encrypted and decrypted
Ryan: Creat the sorting algorithm which creates the mixed bag of the encrypted data and re sorts it back in the frontend algorithm.

Sprint Schedule
Week 1:

Establish frontend and backend servers, ensure CRUD operations function properly between both.
Begin writing and formatting backend code, get and post requests
develop procedures that encrypt user input, make algorithm that manipulates string, and code to decrypt the user input.

Week 2:

finish frontend (html and js file) and backend (api and model in .py)
Look through requirements to make sure we meet all criteria
Deploy, ensure everything is functioning, properly prepared for NATM


.gif files created with this program based on highres pics look quite bad quality wise

Title.
I made a simple .gif to illustrate the problem. Making a .gif based on pics with a high resolution results in a .gif with worse quality than the source frames.

Frames:
https://danbooru.donmai.us/posts/4192641
https://danbooru.donmai.us/posts/4192640
https://danbooru.donmai.us/posts/4192639

Hi, this project is very old and honestly not something that should be used.
As for your problem, I think the color palette is the issue.
Gif can not handle many colors, and your original may have too many.
To solve this , some programs apply dithering where they "blend" the different color pixels to make it look like gradients.
My simple program does not dither, which causes these bands or regions of single colored patches.
Maybe some services here could create a better product for you:

https://ezgif.com/maker
https://imgflip.com/gif-maker
https://gifmaker.me/


Feature Request: Download from remote

Hello, first of all thanks for the amazing plugin.
I know this is meant to deploy to a server, but I would love a feature to pull the files from the mapped directories.
I hope you like the idea and can/will implement it. Thanks!

@realee94
Thanks for the feature request!
This is a good reason to start a v6 branch ... but I will implement and release this step by step (target by target).
What targets you would like to be implemented first?

@mkloubert
Thanks for your answer!
FTP and SFTP would be the most useful for me personally.
Thank you again.

@realee94 @pyr0hu
Mission accompilshed ... Version 6.0.0 has been released! :-)

You are now able to pull from the following targets:

SFTP
FTP
DropBox
Local or shared network folders inside a LAN
ZIP files
Amazon AWS S3 buckets
Azure blob storages
External Node.js based scripts
REST APIs

The shortcuts are:

CTRL+ALT+P, F (Pull current file / folder)
CTRL+ALT+P, W (Pull files of package)

Wow, amazing!
Thank you and keep up the good work man! :)


it's hard to download this video

it's hard to download this video
when i use format h5/h4-0/h3

youtube-dl.exe -F http://v.youku.com/v_show/id_XMTQyNjc2NjgyOA==.html
[youku] XMTQyNjc2NjgyOA: Downloading JSON metadata
[download] Downloading playlist: 【怪咖搞笑】盘点2015各国疯狂挑战大合集
[youku] playlist 【怪咖搞笑】盘点2015各国疯狂挑战大合集: Collected 4 video ids (downloading 4 of them)
[download] Downloading video 1 of 4
[info] Available formats for XMTQyNjc2NjgyOA_part1:
format code  extension  resolution note
h5           mp4        512x288    26.00MiB
h4-0         flv        512x288    14.39MiB
h3           mp4        672x378    26.26MiB
h4-1         flv        1104x622   29.92MiB (best)
[download] Downloading video 2 of 4
[info] Available formats for XMTQyNjc2NjgyOA_part2:
format code  extension  resolution note
h4-0         flv        512x288    10.35MiB
h3           mp4        672x378    21.16MiB
h4-1         flv        1104x622   30.01MiB (best)
[download] Downloading video 3 of 4
[info] Available formats for XMTQyNjc2NjgyOA_part3:
format code  extension  resolution note
h4           flv        1104x622   25.22MiB
[download] Downloading video 4 of 4
[info] Available formats for XMTQyNjc2NjgyOA_part4:
format code  extension  resolution note
h4           flv        1104x622   18.40MiB
[download] Finished downloading playlist: 【怪咖搞笑】盘点2015各国疯狂挑战大合集

youtube-dl.exe -f h4-0 http://v.youku.com/v_show/id_XMTQyNjc2NjgyOA==.html
[youku] XMTQyNjc2NjgyOA: Downloading JSON metadata
[download] Downloading playlist: 【怪咖搞笑】盘点2015各国疯狂挑战大合集
[youku] playlist 【怪咖搞笑】盘点2015各国疯狂挑战大合集: Collected 4 video ids (downloading 4 of them)
[download] Downloading video 1 of 4
[download] Destination: 【怪咖搞笑】盘点2015各国疯狂挑战大合集-XMTQyNjc2NjgyOA_part1.flv
[download] 100% of 14.39MiB in 00:28
[download] Downloading video 2 of 4
[download] Destination: 【怪咖搞笑】盘点2015各国疯狂挑战大合集-XMTQyNjc2NjgyOA_part2.flv
[download] 100% of 10.35MiB in 00:17
[download] Downloading video 3 of 4
ERROR: requested format not available

-f '[format_id^=h4]'.

Yup , i try it [youtube-dl.exe -f h4-0 http://v.youku.com/v_show/id_XMTQyNjc2NjgyOA==.html] correctly. but i still receive an error message => ERROR: requested format not available

What is not clear in the error message?


(PUP-5588) Update monkey patch to detect duplicate certificates correctly

The .uniq method used to remove duplicates, was not actually removing duplicates
due to the way the .hash function works on the Certificate object. Even for
certificates with the same content, the .hash return value was different.  This
commit uses the .to_der method as the basis for comparing certificate objects.
DER was used as opposed to other methods as it generates smaller strings
(compared to PEM) and is exposed easily in the Certificate object.
Paired with Ethan Brown (@iristyle)

👍

CLA signed by all contributors.

Related to #4469


Add the "offsets" feature.

As briefly discussed in #323, this feature adds the offsets() function to the Instructions struct to get the absolute offsets of every single instruction. CodeSection has the offset() function to get the absolute offset of the code section. Both are useful for computing the instruction offsets relative to start of the code section, for example when using the addr2line crate to
gather the original location in the source code for a given instruction. To achieve this, the ReadSeek trait bound was used instead of Read for all deserialize functions.
If "offsets" is enabled, ReadSeek requires Read + Seek, if not, it only requires Read
For now, only Instructions and CodeSection provide the offset function, but this could easily be extended if needed.
This should also close #294.
Note: I'm pretty unhappy with the name of the ReadSeek trait, so if anybody has a better suggestion, I'm all open for it.

Any update on this? I'd love to get some feedback on this so that eventually this feature can be merged. I'd love to use the upstream version of parity-wasm instead of maintaining my own fork.


What is the logo?

I'm do not know what to call the logo. What are its contents, and what do they mean?

Hi @sargun,
I apologize, but I am not sure I understand your question. What is this logo to which you refer? Maybe a better question for me to ask is, what is it you want to do or are trying to do that is not working the way you think it should?


Change unregisterPluginListeners() to allow reregistration.

I'm working on a unit testing framework for Sponge, and it would be pretty useful for me to be able to prevent one test from receiving events from another test. However, I unregister the listeners using unregisterPluginListeners(), and I get an error when trying to reregister them since the event manager still thinks the objects are registered. This PR fixes that.

Is there any reason why the call to remove the object isn't in unregister(Predicate<...> unregister) directly? unregisterListeners does it manually and now you added it to unregisterPluginListeners. It could be just in unregister directly if both methods do it.

@Minecrell Fixed.


How do I set state drawables with "transparent" states on elevated views with shadow?

Elevated views throw a shadow. That's great! Trouble is, the shadow is drawn not just outside the view, but also on the inside -- on pre-Lollipop devices anyway. To still make it look like a realistic shadow, I set the background of views that should have a transparent background to ?android:attr/colorBackground. With views, that's background needs to depend on their state (e.g. selectable elements of a list) , I can't do that though, as android cannot handle attribute references in state drawables. I can't use a static color either, as android only assures that a light theme will have a light background, but not how light or what hue. How can I handle elevated, state dependent views?

On Lollipop each shadow is a part of its corresponding view and it's drawn as a part of it. Carbon draws shadows beneath views, because on older Androids it's impossible to draw outside view's bounds from that view. It's something what I would like to fix, but I have no idea, where to start.
Nested references are supported on Android 5.+, so you're right, it's really tricky.
For now there are two solutions. One of them is to wrap a view with a layout, so transparency is applied to the view and its shadow at once. The second one is to create a state drawable from code, just like default state drawables provided by Carbon.
See: https://github.com/ZieIony/Carbon/blob/master/carbon/src/main/java/carbon/drawable/ControlAccentColorStateList.java

For now I'll go with the state drawable from code.
Can you explain in some more detail how lollipop devices draw shadows? Do they them in the draw/ onDraw method , but outside its bounds (outside padding), where views normally cannot draw?
You have layouts draw shadows of views they contain, right?
For elevated views I think that is practically an ideal solution. The only problem is the form of the (let's call it) "shadow drawable". The shadow drawable should be transparent within the outline of the view. But the shadow drawable has non- or semi-transparent parts below the view. Stamping out the outline of the view would be a solution. The technique I know is rather slow, though...
For recessed views the shadow drawable should be on top of the view (I don't know if it already does so. Nor do I know how Lollipop handles them.)

As far as I know, shadows are drawn using OpenGL in HardwareCanvas::drawRenderNode() method. It's all native code, so there's no padding, bounds, elevation, etc. Just textures, a screen buffer and a drawing shader.
Yes. On older devices all of the drawing is done using screen-size offscreen buffers (textures), which are transformed so both the buffer and the corresponding view start in [0,0]. Then each view is drawn and composited with other layers. Basically if the drawing starts at [0,0], it's not possible to draw to the left of and above the view. I'm not sure if I'm clear and I don't know the reason behind the drawing flow, but more or less this is how it works.
Clipping shadows on older platforms is possible, but yes - it's pretty expensive. Lollipop clips shadows using convex paths which are available since Android 4.3. I think I have an idea how to make it work, but I have to code and test it first to say more about its viability.
Views can only have positive elevation, so for recessed views you need a background view and a two or more views on top of the background casting shadows on it.
And a weird thought - semi-transparent objects do cast semi-transparent shadows in real life so Carbon is more accurate than Lollipop :)

The trouble with convex paths seems to be, that they only support convex curves. So even a star shape is out of the question.
Honestly I fear this shadow stuff is beyond me :-(
There are a number of old "recipes" from Romain Guy that might contain interesting ideas (if you don't know them already). But I can't find THE right one. They are the following http://www.curious-creature.com/2012/12/11/android-recipe-1-image-with-rounded-corners/
http://www.curious-creature.com/2012/12/13/android-recipe-2-fun-with-shaders/
http://www.curious-creature.com/2012/12/14/android-recipe-3-sliding-menu-layers-and-filters/
http://www.curious-creature.com/2013/12/21/android-recipe-4-path-tracing/
I created the following StateListDrawable. You can offer it (or a variation of it) as part of carbon, if you like.
package carbon.util;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.support.annotation.DrawableRes;

/**
 * Represents "transparent" color in default state and activated color in enabled state.
 * FIXME: This really is a hack. When pre-lollipop devices allow xml color state lists allow referencing attributes, replace by xml color state list.
 * Like {@code <?xml version="1.0" encoding="utf-8"?>
 * <selector xmlns:android="http://schemas.android.com/apk/res/android">
 * <item android:drawable="@color/primary" android:state_activated="true"/>
 * <item android:drawable="@color/primary" android:state_pressed="true"/>
 * <item android:drawable="?android:attr/colorBackground"/>
 * </selector>}
 * When carbon draws shadows only outside views, replace by xml color state list with transparent backgrounds.
 * Like {@code <?xml version="1.0" encoding="utf-8"?>
 * <selector xmlns:android="http://schemas.android.com/apk/res/android">
 * <item android:drawable="@color/primary" android:state_activated="true"/>
 * <item android:drawable="@color/primary" android:state_pressed="true"/>
 * <item android:drawable="@android:color/transparent"/>
 * </selector>}
 */
public class ActivatedBackgroundDrawable extends StateListDrawable {

    /**
     * Creates a {@link StateListDrawable} with {@code android.R.attr.windowBackground} as default color and the color from {@code activatedColorResId} as color for the
     * pressed and the activated state.
     */
    public static StateListDrawable getForActivity(final Context context, @DrawableRes final int activatedColorResId) {
        return new ActivatedBackgroundDrawable(
                context.getResources(),
                new int[][]{
                        new int[]{android.R.attr.state_activated},
                        new int[]{android.R.attr.state_pressed},
                        new int[]{}
                },
                new Drawable[]{
                        context.getResources().getDrawable(activatedColorResId),
                        context.getResources().getDrawable(activatedColorResId),
                        ThemeUtil.getThemeAttrDrawable(context, android.R.attr.windowBackground)
                });
    }

    /**
     * Creates a {@link StateListDrawable} with {@code android.R.attr.colorBackground} as default color and the color from {@code activatedColorResId} as color for the
     * pressed and the activated state.
     */
    public static StateListDrawable getForDialoge(final Context context, @DrawableRes final int activatedColorResId) {
        return new ActivatedBackgroundDrawable(
                context.getResources(),
                new int[][]{
                        new int[]{android.R.attr.state_activated},
                        new int[]{android.R.attr.state_pressed},
                        new int[]{}
                },
                new Drawable[]{
                        context.getResources().getDrawable(activatedColorResId),
                        context.getResources().getDrawable(activatedColorResId),
                        new ColorDrawable(ThemeUtil.getThemeAttrColor(context, android.R.attr.colorBackground))
                });
    }

    protected ActivatedBackgroundDrawable(final Resources res, final int[][] states, final Drawable[] drawables) {
        if (states.length != drawables.length)
            throw new IllegalArgumentException("lenght of states (" + states.length + ") != lenght of drawableResIds (" + drawables.length + ")");
        for (int i = 0; i < states.length; i++) {
            addState(states[i], drawables[i]);
        }
    }

}

Done


How to disable tracking just for SideKiq Jobs or Assign a bot to be the current_user

In short I get an error that public_activity is looking for the current_user while updating a model during a sidekiq job. That is expected since there is no current_user....  how do I disable public_activity tracking while the job is running? I've tried change  PublicActivity.enabled = false and Prospect.public_activity_off during the job, but the tracked owner: Proc.new{ |controller, model| controller.current_user } still seems to be picking it up and looking for the current_user
How can I have the sidekiq (or any job) make updates without public_activity interfering ?
Would it be better to have sidekiq set the current_user to a dummy user during the job? I don't think this would be a good idea, because then we would need to filter that out later.
Error:
2016-04-20T17:24:53.728Z 20447 TID-owpsaw07w ProspectDataAggregationWorker JID-bad79ab6a073d57d7388e931 INFO: start
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w ProspectDataAggregationWorker JID-bad79ab6a073d57d7388e931 INFO: fail: 0.01 sec
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: {"class"=>"ProspectDataAggregationWorker", "args"=>[1], "retry"=>false, "queue"=>"default", "jid"=>"bad79ab6a073d57d7388e931", "created_at"=>1461173093.728181, "enqueued_at"=>1461173093.7282372}
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: NoMethodError: undefined method `current_user' for nil:NilClass
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: /Users/cj/RubymineProjects/revenue_management_system/app/models/prospect.rb:3:in `block in <class:Prospect>'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:14:in `resolve_value'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:315:in `prepare_relation'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:281:in `prepare_settings'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:250:in `create_activity'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/actions/update.rb:14:in `activity_on_update'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:432:in `block in make_lambda'

Full error: https://gist.github.com/cdesch/190c46c69213a37e4162e50727531761
Model:
class Prospect < ActiveRecord::Base
  include PublicActivity::Model
  tracked owner: Proc.new{ |controller, model| controller.current_user }
      ...
    end

Sidekiq Job/worker
class ProspectDataAggregationWorker
  include Sidekiq::Worker

  sidekiq_options :retry => false # job will be discarded immediately if failed

  def perform(account_id)
    #Prospect.public_activity_off
    PublicActivity.enabled = false

    account = Account.where(id: account_id).first
    prospects = account.prospects

    prospects.each do |prospect|
      prospect.update_based_on_primary_assessment!
    end
    PublicActivity.enabled = true

    #Prospect.public_activity_on
  end
end

Hey,
Are you sure you're not assigning .enabled = true anywhere inside
update_based_on_primary_assessment! ?
I don't see any other way for this check to be bypassed.
https://github.com/chaps-io/public_activity/blob/1-5-stable/lib/public_activity/common.rb#L249
As for writing this cleanly, I would suggest:
class ApplicationWorker
  include Sidekiq::Worker

  def perform(*args)
    PublicActivity.without_tracking { super(*args) }
  end
end

And then you have a worker class you can inherit from.
śr., 20.04.2016 o 19:42 użytkownik Chris Desch<EMAIL_ADDRESS>napisał:

In short I get an error that public_activity is looking for the
current_user while updating a model during a sidekiq job. That is
expected since there is no current_user.... how do I disable
public_activity tracking while the job is running? I've tried change PublicActivity.enabled
= false and Prospect.public_activity_off during the job, but the tracked
owner: Proc.new{ |controller, model| controller.current_user } still
seems to be picking it up and looking for the current_user
How can I have the sidekiq (or any job) make updates without
public_activity interfering ?
Would it be better to have sidekiq set the current_user to a dummy user
during the job? I don't think this would be a good idea, because then we
would need to filter that out later.
Error:
2016-04-20T17:24:53.728Z 20447 TID-owpsaw07w ProspectDataAggregationWorker JID-bad79ab6a073d57d7388e931 INFO: start
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w ProspectDataAggregationWorker JID-bad79ab6a073d57d7388e931 INFO: fail: 0.01 sec
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: {"class"=>"ProspectDataAggregationWorker", "args"=>[1], "retry"=>false, "queue"=>"default", "jid"=>"bad79ab6a073d57d7388e931", "created_at"=>1461173093.728181, "enqueued_at"=>1461173093.7282372}
2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: NoMethodError: undefined method current_user' for nil:NilClass 2016-04-20T17:24:53.739Z 20447 TID-owpsaw07w WARN: /Users/cj/RubymineProjects/revenue_management_system/app/models/prospect.rb:3:in block in class:Prospect'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:14:in resolve_value' /Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:315:in prepare_relation'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:281:in prepare_settings' /Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/common.rb:250:in create_activity'
/Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/public_activity-1.5.0/lib/public_activity/actions/update.rb:14:in activity_on_update' /Users/cj/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:432:in block in make_lambda'
Full error:
https://gist.github.com/cdesch/190c46c69213a37e4162e50727531761
Model:
class Prospect < ActiveRecord::Base
include PublicActivity::Model
tracked owner: Proc.new{ |controller, model| controller.current_user }
...
end
Sidekiq Job/worker
class ProspectDataAggregationWorker
include Sidekiq::Worker
sidekiq_options :retry => false # job will be discarded immediately if failed
def perform(account_id)
#Prospect.public_activity_off
PublicActivity.enabled = false
account = Account.where(id: account_id).first
prospects = account.prospects

prospects.each do |prospect|
  prospect.update_based_on_primary_assessment!
end
PublicActivity.enabled = true

#Prospect.public_activity_on

end
end
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/chaps-io/public_activity/issues/259

I assume @farnoy answered your question and close this one.

Yes. This fixed the issue. Also doing  Prospect.public_activity_off worked as well (below), even though I previously stated it did not.  The issue was that the sidekiq process was caching the models and workers, thus any changes I was making to the to the models were not taking effect until sidekiq was recycled/restarted. After which, the following functions worked fine.
 def perform(account_id)

     Prospect.public_activity_off
     ...
 end

The issue at heart was not a code issue, but a developer issue. :-) Restart sidekiq after making worker changes!

@cdesch great, glad you got it working :)

Thank you @pokonski  and @farnoy !


Better runtime error message for json.decode map in NNBD

Using ddc to run the following code in nnbd strong mode:
import 'dart:convert' show json;

void main() {
  Map<String, Object> mapWithError = json.decode('{"x":0,"y":1}');
}

Causes this runtime error:
Uncaught Error: Expected a value of type 'Map<String, Object>',
but got one of type '_JsonMap'

Since the json.decode function returns a _JsonMap, which extends Map<String, dynamic> , the fix is to change the map declaration to Map<String, dynamic>.
The error message would be clearer with Map<String, dynamic> instead of _JsonMap. It seems likely that there will be many cases of this out in the wild that could confuse users.

The issue here is perhaps that we expose the private name _JsonMap, but more likely that we do not specify how we fail to satisfy the requirement.
The requirement is Map<String, Object>. The run-time is a Map, but not a map with the correct type argument. So, a better error message might be able to highlight how the type fails to be a Map<String, Object>.
That said, putting a lot of effort into producing beautiful error messages might just make your deployed code larger without any benefiting when the bugs have all been fixed.

DDC used to explain this kind of error better, saying what the object's type implements. I wonder if it became broken?
I think it is worthwhile for DDC to continue to be able to explain these things since it is used for debugging.
For dart2js it might not be worth the extra code size, but it might be a very small extra code size.

cc @nshahan

DDC used to explain this kind of error better, saying what the object's type implements. I wonder if it became broken? ...

Are referring to the logic that ddc had to infer type parameters and provide a helpful error message to indicate how to fix the error? I'm not sure whether the logic there was meant to also handle these indirect subtype relations, though.
Even if we did, we recently decided to temporarily remove that support in the nnbd fork (see https://github.com/dart-lang/sdk/issues/40326). There is a cost to it: it basically replicates the subtyping algorithm to attempt to infer a good type for the error message. Reviving it requires that we add new rules about nullability.


CI for azure-functions-maven

Set up CI that runs E2E tests and verifies plugin  updates for every release.

cc: @brunoborges  @JonathanGiles
@jdneo - This came up in our sync up today.  What is the testing process for maven plugin releases?

We have a basic integration test case here: https://github.com/Microsoft/azure-maven-plugins/tree/develop/azure-functions-maven-plugin/src/it
Before each time we release the plugin. Our testers will also have a manual tests according to our test plan here: https://github.com/Microsoft/azure-maven-plugins/wiki/Test-Plan-for-Function

Closing this issue since it's inactive for a long time.

cc: @paulbatum
@jdneo - We do need automated CI for GA. Here is the information I shared in the email
Here some information on how to get started with automation:

Set environment variables

AzureWebJobsScriptRoot to the folder with functions and host.json
samples wiki has full list of environment variables for each azure resource.
Copy functions runtime release build, here is an example of how the build folder looks like:
	https://ci.appveyor.com/api/buildjobs/tph73ogbmwa39vc4/artifacts/Functions.Private.2.0.11912-alpha.zip
Start functions runtime via dotnet cli: 	Run "C:\Program Files (x86)\dotnet\dotnet.exe" Microsoft.Azure.WebJobs.Script.WebHost.dll  this will start the functions runtime
You can use azure java storage sdk to automate
storage tests to:

Creates a queue
Inserts into a queue
Verifies function is triggered – You can verify this by adding an output binding that writes to a another queue and reading the second queue

Please feel free to create separate smaller work items for automation and let me know if you need any information from me.
Please note that automation is critical part of release pipeline. For every functions runtime release, I will send a PR updating the runtime version on the build script used by the CI. This will give us coverage for release testing.

OK, we already have some tasks in the current iteration plan. Let's do this in the next iteration plan.

Any udpate on this? We are tracking this for GA. It takes some time to stabilize test automation. Can you please start looking into this?
Let me know if you run into any issues or have any questions

@Flanker32 Please take a look at this issue.

@pragnagopa could you please share me more infos about running e2e test? I meet some problems when i try to do it manually.

Should we set some env about function runtime?
After all the  environment variables are set,  I download the runtime build and open the folder ，execute dotnet.exe Microsoft.Azure.WebJobs.Script.WebHost.dll, it shows Unhandled Exception: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B). It seems that the version you shared is a X86 build, could you please share me the x64 one, or i should do something to avoid this problem?
According to example scripts directory the wiki, functions folders structure should like

- functionName
      |- function.java
      |- functionName-Version.jar
      |- function.json
- host.json

when i execute mvn package on the test project generated from archetype, the target folder structure are
- functionName
      |- function.json
- host.json
- artifactId-Version.jar
- local.settings.json

so is there anything we should do after mvn package, is there any documents about it?

@pragnagopa Here is the plan for the e2e test

Init function host

Clone Function host ,build it through powershell script(build.ps1)
Unzip buildoutput\Functions.Private.*.*.*.no-runtime.zip as function host
Clone Function java worker, build it, and replace the java worker of function host with the output of java worker
Set necessary environment value FUNCTIONS_WORKER_RUNTIME = "java" AZURE_FUNCTIONS_ENVIRONMENT = "development"

Create function project

Create function project by azure-maven-archetypes
Add more function through maven plugin
mvm clean package

Run function host and verify whether the function could work normally

Set AzureWebJobsScriptRoot = {path of function project}\target\azure-functions\functionname}
Start function host through dotnet.exe {path of function host}\Microsoft.Azure.WebJobs.Script.WebHost.dll
Wait for the function start
Verify whether function works well through groovy or other script
Stop function host

Feel free to share your thoughts about the test plan 😄

For Functions Host, please see azure-functions-java-worker appveyor.yml#L59, You only need to test with the latest production bits, No need to clone and build. For every runtime release I will send a PR updating the location of the runtime zip.

For Java worker, same do not clone and build.  Java worker comes as part of the Functions Host. CI for azure-functions-java-worker will take care of testing the worker with the latest mvn plugin

You should focus on

Testing maven archetype i.e build and install maven archetype locally as part of the build script and then create function project
Testing maven plugin, same here build and install maven plugin

You have the right steps for starting host and running tests. Please see https://github.com/Azure/azure-functions-java-worker/blob/dev/appveyor.yml#L76 for reference on runnning tests.

@Flanker32, As @pragnagopa mentioned.

@pragnagopa Here is the plan for the e2e test

Init function host

Clone Function host ,build it through powershell script(build.ps1)
Unzip buildoutput\Functions.Private.*.*.*.no-runtime.zip as function host
Clone Function java worker, build it, and replace the java worker of function host with the output of java worker
Set necessary environment value FUNCTIONS_WORKER_RUNTIME = "java" AZURE_FUNCTIONS_ENVIRONMENT = "development"

No need to do this step. We automatically upload the CLI from every build to Azure Storage. You can download the latest CLI from https://functionsclibuilds.blob.core.windows.net/builds/2/latest/Azure.Functions.Cli.{platform}.zip.
Replace {platform} with one of these values linux-x64, osx-x64, win-x64, win-x86 based on what configuration you are using. Also you can get the corresponding CLI version number from here https://functionsclibuilds.blob.core.windows.net/builds/2/latest/version.txt

Create function project

Create function project by azure-maven-archetypes
Add more function through maven plugin
mvm clean package

Run function host and verify whether the function could work normally

Set AzureWebJobsScriptRoot = {path of function project}\target\azure-functions\functionname}
Start function host through dotnet.exe {path of function host}\Microsoft.Azure.WebJobs.Script.WebHost.dll
Wait for the function start
Verify whether function works well through groovy or other script
Stop function host

Feel free to share your thoughts about the test plan 😄

Thanks @soninaren. @Flanker32 - Please see https://github.com/Azure/azure-functions-java-worker/blob/dev/appveyor.yml#L49 for reference on how to download and build E2E tests using the CLI and run tests.

@pragnagopa  @soninaren
Thanks for your efforts. I tried to download cli from https://functionsclibuilds.blob.core.windows.net/builds/2/latest/Azure.Functions.Cli.{platform}.zip, but when i execute dotnet.exe {path of function host}\Microsoft.Azure.WebJobs.Script.WebHost.dll, it shows
Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'C:\Users\hanli\Downloads\Azure.Functions.Cli.win-x64\Microsoft.Azure.WebJobs.Script.WebHost.deps.json'.

I can't find the json as well as runtime files in this build, so i clone the function host repo and build it, that could work. Or is there any solution to solve this problem?

@Flanker32 you are running the wrong command.
This is what you need to run
{CLI download path}\func.exe host start

Here is the powershell command for it
https://github.com/Azure/azure-functions-java-worker/blob/dev/appveyor.yml#L85

Implemented in #425


Feature Request: cupyx.scipy.sparse.linalg.eigsh does not support the initial vector (the argument v0))

Description
The  scipy.sparse.linalg.eigsh  supports passing in a guess of an initial vector (an argument v0). This vector is crucial for the performance, since it substantially accelerates convergence. The current cupy version still does not support this argument, which needs to be implemented.
Additional Information
No response

Hi @chiwhalee, it's added in #7487 and will be available in CuPy v13.

@kmaehashi, thank you. It is excellent and I closing this feature request.


Cannot format multiple selections

VSCode Version: 1.47.3
OS Version: Windows_NT x64 10.0.18363

Steps to Reproduce:

use ctrl+d select multiple
run format selection to format them

Demo: https://webmshare.com/play/eadOq

Does this issue occur when all extensions are disabled?: Yes

To verify:

use TypeScript or another language for which you have selection formatting support
select multiple code snippets and run "Format Selection"
make sure all selections are formatted in a single operation, e.g a single undo operation is enough to undo the formatting changes
make sure empty selections are expanded to the whole line
make sure selections on the same line works as well as selections on different lines


alt text for an image is interpreted as a caption

Hello,
While the given syntax in Liascript manual is clear to make a caption/title for an image as well as an alt-text

the alt-text is still interpreted as an alt-text (appears when we hover on the image) and also as a caption.
Whereas github pages make the difference between the two : alt-text appears when we hover on the image and caption is just below it.
Regards,

Hi @damienbelveze , what browser are you using or can you make a screenshot? I tried it with Firefox and Chrome and it shows the same behavior, except that the title is printed out below in LiaScript in any case.
example-document
Do you mean, when there is no title, then the alt-text is used?
Regards,
André

Hi @andre-dietrich ,
Thank you for your answer.
My Markdown document ( [ https://damienbelveze.github.io/Mastodon_SN/main_course.md | https://damienbelveze.github.io/Mastodon_SN/main_course.md ] ) includes the code below:

I would like to have Mastodon meme as a caption and " Mastodon Mamouth stands in the middle of a quiet jungle with a cactus in its paws and says This is fine. This picture refers to a meme with a dog sitting in the middle of a burning house surrended by flames and yet having coffee and saying the same sentence" as an alt-text (hover) for people who cannot see the image.
but instead of that, I get the following with Firefox 118.0 : [ https://liascript.github.io/course/?https://raw.githubusercontent.com/damienbelveze/Mastodon_SN/main/main_course.md#1 | https://liascript.github.io/course/?https://raw.githubusercontent.com/damienbelveze/Mastodon_SN/main/main_course.md#1 ]
(screenshot attached to this mail) It's ok for the alt-text, but not for the caption which should be only "Mastodon meme"]
Regards,
Damien Belvèze
De: "andre-dietrich" @.>
À: "LiaScript/LiaScript" @.>
Cc: "Damien Belveze" @.>, "Mention" @.>
Envoyé: Jeudi 18 Janvier 2024 12:30:00
Objet: Re: [LiaScript/LiaScript] alt text for an image is interpreted as a caption (Issue #157)
Hi [ https://github.com/damienbelveze | @damienbelveze ] , what browser are you using or can you make a screenshot? I tried it with Firefox and Chrome and it shows the same behavior, except that the title is printed out below in LiaScript in any case.
[ https://liascript.github.io/LiveEditor/?/show/code/H4sIAAAAAAAAA82QsU4DMRBEe3/FYhoobAeFCuUoUoDSISEqRLHc+ZwltteyN4Tw9XBIEV0qBJRvNMW8OYVVwuCbUiePGMWIf5Ons7VIaVfObUtkHOyONpT8QGi5BjdRmcj1nBLn5uZu3rsli1DvYyRTKiV89RXtSwmg7w4Iz3u4xzxUhu82UAOEERNvGxSkLJQD8Aiy9nBxOZs1CyuZWpl3QPkrfxhHeie4xRh93U/pTeTqc+/1uTrqYu0fDDLGKLWgFKDVvtM/ea+GT9VOH3w1CEn03S87Xh/Rs/afbPwAlh5unewCAAA= | example-document ]
Do you mean, when there is no title, then the alt-text is used?
Regards,
André
—
Reply to this email directly, [ https://github.com/LiaScript/LiaScript/issues/157#issuecomment-1898303452 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AJEMQGREGYWFOQFLJ65SS63YPEBTRAVCNFSM6AAAAABCAB4IOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJYGMYDGNBVGI | unsubscribe ] .
You are receiving this because you were mentioned. Message ID: <LiaScript/LiaScript/issues/157/1898303452 @ github . com>
--
Damien Belvèze
Conservateur chargé de la formation des usagers
Equipe ARDEL aide aux chercheurs pour la gestion des données de recherche
= = = = = = = = = =
Université de Rennes
Service Commun de Documentation
33 (0)2 23 23 32 34
33 (0)6 69 61 10 52

Hi Damien,
the alt and title/caption attributes are simply passed to the image. These attributes can be overwritten, by attaching an HTML-comment, where you could also apply styling or add classes. The example would be the simplest solution, or plain old HTML, but I guess that is not what you want :see_no_evil: ... Swapping alt and title is at the moment not possible. We simply tried to expose the title as a caption, but in the future an additional caption configuration might be good feature...
![Mastodon Mamouth](https://damienbelveze.github.io/Mastodon_SN/images/mastodon.jpg "Mastodon Mamouth")<!--
title="Mastodon Mamouth stands in the middle of a quiet jungle with a cactus in its paws and says This is fine. This picture refers to a meme with a dog sitting in the middle of a burning house surrounded by flames and yet having coffee and saying the same sentence"
alt="Mastodon Mamouth V2"
-->

---- as HTML

<figure class="lia-figure">
<div class="lia-figure__media" data-media-type="image">
<img
    alt="Mastodon Mamouth"
    title="Mastodon Mamouth stands in the middle of a quiet jungle with a cactus in its paws and says This is fine. This picture refers to a meme with a dog sitting in the middle of a burning house surrended by flames and yet having coffee and saying the same sentence"
    src="https://damienbelveze.github.io/Mastodon_SN/images/mastodon.jpg" loading="lazy">
</div>
<figcaption class="lia-figure__caption">
Mastodon Mamouth
</figcaption>
</figure>


Option to retry from a previous step on failure of step

@authorjapps
In situations where we need to retry a step that is dependent on a previous step, for eg. an api call that uses the previous step to generate auth, when the step is retried on failure, it should retry from the previous step.
I can look into adding this as a feature

@a1shadows , makes sense. You can look at this and add a test scenario 1st to check if this feature fails and push it, let the CI build fail.
If fails, then please raise a PR to fix it.
Happy to merge this when you are ready.
Appreciate your great suggestions and support.

@authorjapps  Do you have any suggestions on approach?
The approaches I can think of are:

Define a retryFrom parameter in the Step and go to the retryFrom step on failure. We will have to maintain retry count for the step we retried even though execution will have moved to a different step.
We can have a special type of step called MultiStep which will contain Steps within it and for failure anywhere in the multi step, the whole Multi Step will be retried. Local retries in the Steps within the MultiStep should also be feasible. A MultiStep would be very similar to a Scenario, so maybe we can also think of it like enabling retry for a whole Scenario and allow composition of multiple Scenarios together

Can you think of any other approaches?

@authorjapps
In situations where we need to retry a step that is dependent on a previous step, for eg. an api call that uses the previous step to generate auth, when the step is retried on failure, it should retry from the previous step.
I can look into adding this as a feature

Apologies, I couldn't get the problem statement correctly.
Can you please give an example to explain it?
A scenario example with 2 steps should be easy ok I think.
Thanks

I'm talking about a scenario like this:
{
    "scenarioName": "Create employee by authenticating via Oauth2 token",
    "steps": [
        {
            "name": "auth",
            "url": "com.zerocode.authClass",
            "method": "authMethod",
            "request": "",
            "assertions": {
                "token": "$NOT.NULL"
            }
        },
        {
            "name": "create_emp",
            "url": "/api/endpoint",
            "method": "POST",
            "request": {
                "headers": {
                    "token": "${$.suth.response.token}"
                },
                "body": {
                    "id": 1000,
                    "name": "Larry Pg"
                }
            },
            "retry": {
                "max": 3,
                "delay": 2000
              },
            "assertions": {
                "status": 201
            }
        }
    ]
}

Now, let's say the auth has a TTL of 2 seconds and the API call step fails and goes into retry: Since the auth has already expired, the second step is now doomed to fail no matter what.
So, if we want to retry the second step, ideally we should be able to retry from the 1st step so that a fresh auth is generated for each time the api call step is executed.

Now, let's say the auth has a TTL of 2 seconds and the API call step fails and goes into retry: Since the auth has already expired, the second step is now doomed to fail no matter what.
So, if we want to retry the second step, ideally we should be able to retry from the 1st step so that a fresh auth is generated for each time the api call step is executed.

Understood. Thanks for explaining it.
Yes, in theory, this is possible, but in reality I think it would be very very rare.
This is because in test environments, the auth-token mostly(normally) kept for bit longer time so that the token is reused.
Are you really facing this problem in your current project i.e. in test envs ?

@authorjapps  Hey, yes, we faced this problem at my workplace. So, the use case is something like this:
There are 2 APIs:

A create request POST API: this initiates the creation process for the request on the backend. This process can take anywhere between 1 second to 20 seconds depending on the type of request. However, the API returns success immediately with a request_id for future use
A status check API:  This can be used to check the current status of a previously submitted request using status id.

Both APIs use a short lived dynamically generated auth strategy. Now, what I need is the capability to do a polling loop on the second API call in my test scenario with some poll interval and a timeout (similar to how the awaitability libs for java testing work).
For this, I need the capability to retry both the auth generation step and the API call step with every retry.

@authorjapps Hey, yes, we faced this problem at my workplace. So, the use case is something like this:
There are 2 APIs:

A create request POST API: this initiates the creation process for the request on the backend. This process can take anywhere between 1 second to 20 seconds depending on the type of request. However, the API returns success immediately with a request_id for future use
A status check API:  This can be used to check the current status of a previously submitted request using status id.

Both APIs use a short lived dynamically generated auth strategy. Now, what I need is the capability to do a polling loop on the second API call in my test scenario with some poll interval and a timeout (similar to how the awaitability libs for java testing work).
For this, I need the capability to retry both the auth generation step and the API call step with every retry.

Got you @a1shadows.
Note:
"method": "POST" ==> might create another employee on retry, which may be unwanted.
Anyway, have a thought once again and then, you really need,
my suggestion would be to go via following way to use withStep (instead of fromStep ).
Example:
    "max": 3,
    "delay": 2000,
    "withStep" : "auth"  <---- Step name which should be executed 1st before this Retry block
}

I think for your requirements,
an optional key withStep sounds better 🟢 , because you want to execute that n'th step, but execute the "auth_step" 1st (instead of executing all the steps from "auth_step" onwards 🔴 ) and use the output of that "auth_step" in this n'th step.

instead of executing all the steps from "auth_step" onwards 🔴

Because, you could have in some situations more steps in between the n'th step and "auth_step" and executing all other steps
step1 : auth_step
step2 : create_emp
step3 : get_emp

// or

step1 : auth_step
step2 : create_emp
step3 : create_identity
step4 : get_emp  <------ By this time "auth token" is expired

Hence, executing "auth_step" prior to "get_emp" would make sense.
Also you don't have to execute "create_emp" and "create_identity" steps in this scenario.

@authorjapps
Can we make withStep accept a list? That way just in case we need to execute multiple steps to get the auth, we can execute all of them. Something like "withSteps" : ["auth_step1", "auth_step2"] ?
The steps will be executed in the order specified

yep, I think that would be much better and this will accommodate various different usecases too. 👍
{
    "max": 3,
    "delay": 2000,
    "withSteps" : ["auth_step1", "auth_step2"]
}

The steps will be executed in the order specified

Yep, order is important

@authorjapps  Hey, I'm trying to figure out how to implement this feature and there are quite a few things to consider and work out.
What is the purpose of StepExecutionState and ScenarioExecutionState? I was planning to use these to get the previous step execuation status and replace the new execution state in ScenarioExecutionState for the steps in withSteps that were re-run. However, I am unable to understand the exact semantics and purpose for these classes. I need to be able to replace exectution info of a step in ScenarioExecutionState as well as fetch a specific step's StepExecutionState from it.
I am currently planning on making the changes in the executeRetry method in the ZeroCodeMultiStepsScenarioRunnerImpl class in the retry for loop.
There also need to be some validations to make sure that the user does not submit a future step in the withSteps parameter and that it is a step that was successful prior to this step.
Do you have any suggestions?

@authorjapps  I came up with a Draft of changes(PR linked to this issue) to StepExecutionState and ScenarioExecutionState that would be super useful while implementing this feature. Some minor changes will be required in a few test which I can take up.
Can you take a look?

@authorjapps  I've implemented a working approach for this in the linked PR. Can you take a look?

@authorjapps I've implemented a working approach for this in the linked PR. Can you take a look?

Thanks @a1shadows, was slightly busy with the day job,
As the CI is Green 🟢 , hoping all is well, but will have a look soon anyways. 👍


Can't Instance a class with parameters when compile with AOT

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.

Method 1 WITH Parameter - Compile with ERROR using ng build --prod ( with aot ) and without ERROR when compile using ng build --prod --aot=false (without aot)
Into the service:
@Injectable() export class MvsTest {      public Test: string = "";      constructor(param: string) {      this.Test = param;      } }
into the other service
 @Injectable() export class ApplicationService {       public test1 = new MvsTest ('New1');       public test2 = new MvsTest ('New'2);       constructor() { } }
Method 2 WITHOUT Parameter - Compile without ERROR using ng build --prod ( with aot ) and without ERROR when compile using ng build --prod --aot=false (without aot)
Into the service:
@Injectable() export class MvsTest {      public Test: string = "";      constructor() { } }
into the other service
 @Injectable() export class ApplicationService {       public test1 = new MvsTest ();       public test2 = new MvsTest ();       constructor() {          this.test1.Test= 'New1';          this.test2.Test= 'New2';  } }
The log given by the failure.

ERROR in Can't resolve all parameters for MvsTest in C:/DEVELOPER/_SHARED/mvs-test/mvs-test.service.ts: (?).
ERROR in ./src/main.ts..... etc...etc...etc...
ERROR in Can't resolve all parameters for MvsTest in C:/DEVELOPER/src/app/_SHARED/mvs-test/mvs-test.service.ts: (?).
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'C:\DEVELOPER\src'
resolve './$$_gendir/app/app.module.ngfactory' in 'C:\DEVELOPER\src'
using description file: C:\DEVELOPER\package.json (relative path: ./src)
Field 'browser' doesn't contain a valid alias configuration
after using description file: C:\DEVELOPER\package.json (relative path: ./src)
using description file: C:\DEVELOPER\package.json (relative path: ./src/$$_gendir/app/app.module.ngfactory)
no extension
Field 'browser' doesn't contain a valid alias configuration
C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory.ts doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory.js doesn't exist
as directory
C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory doesn't exist
[C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory]
[C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory.ts]
[C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory.js]
[C:\DEVELOPER\src$$_gendir\app\app.module.ngfactory]
@ ./src/main.ts 3:0-74
@ multi ./src/main.ts
Desired functionality.

I need to instantiate the class with parameters because it is more laborious to have to instantiate without the parameter and then set the parameter. When we create many inherited classes the code doubles in size if you have to create and then set. There will be many instances and I wish the code very clean.
I wish to compile with aot.
Mention any other details that might be useful.

I know I can instantiate the class and set the property later but I would really like a solution where I can instantiate the class already with the parameter.
But ... this does not solve what I really need but it exists provisionally as I create something like this hypothetical example:
public test1 = new MvsTest ().Test = 'Test1';  // **(hypothetical example)**
Thank You very much

Could you accomplish what you want with a simple value provider?
service.ts
import { Injectable, Inject } from '@angular/core';

@Injectable()
export class MyService {
  constructor(@Inject('foo') private foo: string) { }
}

module.ts
import { NgModule } from '@angular/core';

@NgModule({
  providers: [
    MyService,
    { provide: 'foo', useValue: 'Hello World' }
  ]
})
export class MyModule { }

nvm it seems you aren'y having an issue with the DI system. could you provide a simple repo that reproduces this issue?

It worked, I learned from you and I thank you very much, it was very important.
I instantiate an isolated service class for each component of my application, I had seen something about @Inject but could not figure out how to use it, had done tests that did not work. But with your explanation I understood exactly what to do. Thank you very much, hugs!


C++ language version detection

// source: github.com/martinmoene
// C++ language version detection (C++20 is speculative):
// Note: VC14.0/1900 (VS2015) lacks too much from C++14.

#ifndef SIMDJSON_CPLUSPLUS
#if defined(_MSVC_LANG) && !defined(__clang__)
#define SIMDJSON_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG)
#else
#define SIMDJSON_CPLUSPLUS __cplusplus
#endif
#endif

#define SIMDJSON_CPP98_OR_GREATER (SIMDJSON_CPLUSPLUS >= 199711L)
#define SIMDJSON_CPP11_OR_GREATER (SIMDJSON_CPLUSPLUS >= 201103L)
#define SIMDJSON_CPP14_OR_GREATER (SIMDJSON_CPLUSPLUS >= 201402L)
#define SIMDJSON_CPP17_OR_GREATER (SIMDJSON_CPLUSPLUS >= 201703L)
#define SIMDJSON_CPP20_OR_GREATER (SIMDJSON_CPLUSPLUS >= 202000L)

I am not sure I understand why it is so complicated. Can't we just use __cplusplus which is the standard compliant way to go? Admittedly, it is broken in old Visual Studio (prior to 2017), but  we probably won't support old Visual Studios anyhow.

Supporting old Visual Studios is a pain.

Nobody is suggesting supporting old Visual Studio versions.
#if ! SIMDJSON_CPP17_OR_GREATER
#error C++17 or better is required
#endif

Would be used most of the time, I assume. People can and will try to use SIMDJSON in all sorts of situations.  This will stop them.

@DBJDBJ I think @lemire's suggestion is to use the value of __cplusplus to detect C++ 17 or greater:
#if __cplusplus < 201703
#error C++17 or better is required
#endif

We're both curious whether there are potential issues with this?

Note, I couldn't find actual constants for the above values (i.e. no CPP17 = 201703) in the standard.

ISO C++ committee WG21 document N4835 is C++20 draft. Please look it up.

201703L is in there to indicate C++20 value is not decalred and defined yet. That 201703L C++17 value. Each and every compiler vendor declares 201703L for C++17 for __cplusplus. (Not so, yet for C++20.)
These macros are for:

situations when customers might try  simdbjson in systems or situations, which are undeclared as simdbjson operating requirements.
situation when simdbjson code uses C++20 or 23 in the future
Etc.

One could indeed simplify.
#ifndef __cplusplus
#error SIMDBJSON requires C++ compiler
#endif
#if ( __cplusplus < 201703L )
#error SIMDBJSON requires standard C++17 compiler
#endif
#if ( __cplusplus > 201703L )
#error SIMDBJSON is not ready yet for standard C++20 (or higher)
#endif

That would indeed cover the operational requirements about the C++ compiler and language requirements.

Cool, thanks for the explanation. I don't particularly mind if we define a portable SIMDJSON_CPLUSPLUS and this definitely reduces the code size.
As something of an ignoramus on C++ versions, I'm curious why we need to exclude C++20? Do we anticipate major incompatible changes? I (weakly) investigated "c++20 backwards compatibility" in Google and couldn't find a statement of intention on backwards compatibility
Not against the c++20 check, but if they're promising or even striving mightily for compatibility I (not the owner of this project :)) would prefer not to restrict it.

@jkeiser agree of course. We can not "cast in stone" C++17 requirement.  C++20 compilers are not yet "out" and C++20 draft is not finalized.
I suggest C++17 as a hard requirement intill C++20 compilers stabilize.
Here are just two "why's"

C++20 actually removes things that where deprecated in C++17.  Will some "thing" be actually removed from std lib or something else? What that actually means nobody knows ... yet. And it might be left to compiler vendors.
C++20 char8_t aka native utf-8 support is long-awaited and crucial for json libs ... but. it is in a very peculiar state right now.  Read: one can not use it to store multi-byte Unicode glyphs. Or one can not do std::cout << char8_t('A') << u8"utf8 literal --> no can do" ; ... etc

C++11 is another matter ... simdbjson is, fortunately (right now) very C like so it might be feasible to prove C++11 conformance. But it has to be carefully investigated with considerable effort. Another but. Code added/change to achieve C++11 conformance might have to be removed to achieve C++20 conformance.
I do think C++17 only. is a good idea.

@DBJDBJ
Hmmm... Might I offer a counterpoint?
I think that we want to support all future versions of C++ going forward. Thus if there is an issue with C++ 20 and simdjson, then it would qualify as a bug and we would want people to tell us about it, and we would want to fix it.
It seems wrong to have the code refuse to build as you upgrade your compiler. That could be very inconvenient.

Yeah, it feels like we should ensure we don't rely on anything in c++20, but let it compile if you have such a compiler. My personal take on it is we keep compiling until we find a backwards compatibility break. So I'm totally into the c++17 minimum check since I'm pretty sure we rely on 17 features, but less into the maximum check.

@jkeiser That really sounds best.

I am also really keen for this to get introduced so that C++17 is the minimum. This is just the first of changes I have in store for simdbjson.h :)
C++20 version of the three compilers are not officially out. Neither is  C++20. This is your project @lemire , I have just introduced the mechanism to control it in a compiler agnostic way.
Do you want me to do the change inside this PR and commit it?

This is your project, (...)

It is not. It is an open, collaborative project.
So let us exchange our views.
It is certainly beneficial to refuse to compile on a compiler that reports a C++ support that is known to be incompatible with the project... So this is good... it saves time and support... We want that. I am eager to merge your PR on this account.
But I think that @jkeiser and myself are of the view that your approach, to prevent compilation when a compiler reports supporting C++20 is too harsh. I think that our expectation is that simdjson should work on C++20... and if it does not, that will be a bug that we will fix.
What you describe as a strategy is only seen, I think, in end products. So if I make an accounting software, I might put a requirement in the code that it needs to be built by a specific compiler... and I will check carefully what the host platform is, and I might refuse to run if I don't recognize the platform...  because all the QA is done with specific expectations in mind... and I don't want to allow unknown compilers or unknown platforms...
I think that you take the view that we (the simdjson author) have to certify that everything works... and then, of course, it would make sense to verify that every possible component of the host system matches a tested platform, that the compiler has been vetted... but that's not our job. The testing, vetting and primary support belongs downstream to people who actually get paid.
If  some company wants to use simdjson, then we (the simdjson authors) will encourage them... but the deal is that they take on the primary responsability. They have to test that simdjson works for them, on their compiler and platform. And if it does not, they have to, at a minimum, send us back report with requests... and ideally, they have to provide patches and contributions...
The simdjson is not an end product. Hopefully, it is a well made, reusable piece of code. But we, the simdjson authors, are not responsible for the security, stability... of the systems built with simdjson. We are on a "best effort" basis.
Now, nothing stops you, or anyone else, from taking simdjson, packaging it, validating it, and selling support, and a validated version. And then, of course, it would make sense to be restrictive about how it can be used. But, in my view, this is not the job of the simdjson authors.
Meanwhile, the expectation is that if one company wants to use simdjson, they have to take it and pay some freaking engineers (ideally good, well paid ones) to validate everything.
Ultimately, this has to do with business models. If you grab simdjson, you get it for free. You get tremendous value, but you don't get to not hire great engineers. You still have to work with engineers who understand that a library grabbed from GitHub need to be tested, on their compiler, and on their platforms.
Meanwhile, we (the simdjson authors) want people to test simdjson on a wide range of platforms, so that they find issues and report back. We do want to learn about it if there is an issue with some compiler. So our incentives are quite different from a company providing an end service or product.
This does not mean that we don't have high standards of quality. In some sense, we have even higher standards than most businesses. A business can support just one thing. Apple software only needs to run on Apple devices and build with Apple-vetted compilers. We take on the whole world...
But there is a trade-off, and this trade-off is that we don't ever guarantee that things will work. If you can grab simdjson and it can burn a hole in your server. If you want guarantees, hire good engineers and pay them well... don't rely on free labor.
So, to sum up my point, the goal of the simdjson authors is not to substitute themselves to quality engineers, we are not here to guarantee that the software will work. We want to provide great value, but not free labor. If you want guarantees, pay engineers.
So this check you want to add, that you refuse to compile simdjson on some untested new compiler... I think that the responsibility of this test belongs with the engineer who decided to use simdjson in some product. They have to vet their compiler.
To come back to my earlier point, I am still eager to merge your PR. It is a fault that we are letting people compile simdjson on old compilers where we know that things won't work. We want to fix this. We just don't want to go all the way and "ensure" that it will work. We just want to prune out the cases where we know it won't work. When it may work, we want to leave the responsibility to the engineer in charge (not us) to find out.
It is a long rant... but I think I make an important enough point.

@lemire I do not suggest what it seems you think I suggest :)  I actually have written:
" ... I suggest C++17 as a hard requirement until C++20 compilers stabilize..."
All I am saying is: let people use C++20. But not before C++20 versions of all the three compilers are out.

I'll merge.


Please recommend various option values to upload 100 million data to qdrant.

Currently, I am engaged in a job related to natural language processing. The current qdrant can include the embedded vector value through various option values.
But I keep getting the error "broken pipe" when I put in 100 million embedded vectors. The parallel value is 4.
I use the upload_collection function when I put 100 million embedded vector data into qdrant. I would like to get a recommendation from you for various option values of this function.
I would also like to hear an approximate answer about how long it takes to put in 100 million data. I look forward to your good reply.
[vector info]

Number of embedding vectors: 100 million
embedding vector dimension : 768

[hardware spec]
1.cpu core : 10 core
2.cpu : Intel(R) Core(TM) i9-10900X
3.ram Capacity: 251 GiB (Free: 106 GiB)
[upload_collection function Option value]

payload = None
parallel : 4

[collection info]

distance: Cosine
shard_number : 5
memmap_threshold : 1,000,000,000
indexing_threshold : 100,000,000

Hi. Did you decide on the final values? Correct me if I am wrong but won't setting a very high memmap_threshold value lead to issues because, till 1,000,000,000 Kb, qdrant will store all the vectors into memory, leading to very high RAM usage.


Prevent color change of visited definitions in code blocks

Add a a:visited rule to web/sass/theme/agda{-dark}.scss files to override the general rule inside .Agda elements. Closes #989.

You're setting the text color to transparent?

Apparently transparent only works in Firefox (sigh) and it's indeed too much of a hack. But anyway the real issue is with specificity and there's no need to add an overriding a:visited rule.

Does the latest commit address the issue? I'd expect to see at least a modification to the base Sass to exclude .Agda.

The latest commit addresses the issue on both Firefox and Chromium. .Agda .{classname} has specificity weight 0-2-0, while a:visited has 0-1-1. I can have a look on using an exclusion rule instead, but as I pointed out in the corresponding issue this is how the original Agda html backend styles the code blocks.


Fix error in 'ensure_consistent_bilou_tagging'

Proposed changes:

Fix error in ensure_consistent_bilou_tagging.

Status (please check what you already did):

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

thanks for the fix :D should we release a patch directly?

yes, that was my plan, will do a patch release now


[CARBONDATA-1088] Added interfaces for Data Map frame work.

All Block index and blocklet indexes will be moved to this interface. And also the future secondary index also will be used the same interfaces.
Interfaces for DataMap storage.
1.DataMapStore class which maintains all DataMap  existed in carbondata. So it can be worked as independent service as well.
2. DataMap interface has facility to add and retrieve index data. It is single point contact for index writing, and retrieving.
3.Here all the data added to above interface will be stored in unsafe offheap/onheap memory.

retest this please

@jackylk Added only interfaces please review. And regarding pruning interfaces , we can use the org.apache.carbondata.hadoop.internal.index.Index and org.apache.carbondata.hadoop.internal.segment.Segment classes can be used, we can wire this up later.

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2190/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-2.1/86/Failed Tests: 1carbondata-pr-spark-2.1/org.apache.carbondata:carbondata-spark-common-test: 1org.apache.carbondata.spark.testsuite.allqueries.InsertIntoCarbonTableTestCase.insert into carbon table from carbon table union query

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/57/Failed Tests: 1carbondata-pr-spark-1.6/org.apache.carbondata:carbondata-spark-common-test: 1org.apache.carbondata.spark.testsuite.allqueries.InsertIntoCarbonTableTestCase.insert into carbon table from carbon table union query

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2191/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/58/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-2.1/87/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/117/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2244/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/239/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2360/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/240/Build result: FAILURE[...truncated 60.68 KB...][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn  -rf :carbondata-hadoop[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/processing/pom.xml to org.apache.carbondata/carbondata-processing/1.2.0-SNAPSHOT/carbondata-processing-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/integration/spark-common/pom.xml to org.apache.carbondata/carbondata-spark-common/1.2.0-SNAPSHOT/carbondata-spark-common-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/examples/spark/pom.xml to org.apache.carbondata/carbondata-examples-spark/1.2.0-SNAPSHOT/carbondata-examples-spark-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/integration/hive/pom.xml to org.apache.carbondata/carbondata-hive/1.2.0-SNAPSHOT/carbondata-hive-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/common/pom.xml to org.apache.carbondata/carbondata-common/1.2.0-SNAPSHOT/carbondata-common-1.2.0-SNAPSHOT.pomNo artifacts from carbondata-pr-spark-1.6 » Apache CarbonData :: Common #241 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/assembly/pom.xml to org.apache.carbondata/carbondata-assembly/1.2.0-SNAPSHOT/carbondata-assembly-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/pom.xml to org.apache.carbondata/carbondata-parent/1.2.0-SNAPSHOT/carbondata-parent-1.2.0-SNAPSHOT.pomNo artifacts from carbondata-pr-spark-1.6 » Apache CarbonData :: Parent #241 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/examples/flink/pom.xml to org.apache.carbondata/carbondata-examples-flink/1.2.0-SNAPSHOT/carbondata-examples-flink-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/core/pom.xml to org.apache.carbondata/carbondata-core/1.2.0-SNAPSHOT/carbondata-core-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/hadoop/pom.xml to org.apache.carbondata/carbondata-hadoop/1.2.0-SNAPSHOT/carbondata-hadoop-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/integration/presto/pom.xml to org.apache.carbondata/carbondata-presto/1.2.0-SNAPSHOT/carbondata-presto-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/integration/spark-common-test/pom.xml to org.apache.carbondata/carbondata-spark-common-test/1.2.0-SNAPSHOT/carbondata-spark-common-test-1.2.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/carbondata-pr-spark-1.6/integration/spark/pom.xml to org.apache.carbondata/carbondata-spark/1.2.0-SNAPSHOT/carbondata-spark-1.2.0-SNAPSHOT.pomchannel stoppedSetting status of 7240ac9dc4a86f3268a07ca472e9028fd9905f4e to FAILURE with url https://builds.apache.org/job/carbondata-pr-spark-1.6/240/ and message: 'Tests Failed for Spark1.6 'Using context: Jenkins(Spark1.6): mvn clean test -Pspark-1.6

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2362/

@jackylk I have updated the interfaces , please review it.

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2363/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/242/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2413/

@jackylk I have added a new interface TableDataMap to deal DataMap at table level. it internally holds datamaps at segment/file level. And also this datamap is supported to make it distributable. Please review it.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/293/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2443/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/324/

LGTM

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/carbondata-pr-spark-1.6/645/Failed Tests: 1carbondata-pr-spark-1.6/org.apache.carbondata:carbondata-spark-common-test: 1org.apache.carbondata.spark.testsuite.dataretention.DataRetentionConcurrencyTestCase.DataRetention_Concurrency_load_date