CoA defuzzification method error

Hello,
I'm trying to use the CoA defuzzification method with the minimum engine just like the code line below :
SYS = T1Mamdani(engine="Minimum", defuzzification="CoA")
But I keep getting the message :
nan
/usr/local/lib/python3.7/dist-packages/pyit2fls/pyit2fls.py:723: RuntimeWarning: invalid value encountered in double_scalars
return int1 / int2
If I use the "CoG" method with the same inputs everything works as intended. Am I doing something wrong ?
Here is the code I'm testing :
domain1 = np.arange(-1.8, 1.8, 0.001)
domain2 = np.arange(-2, 2, 0.001)
domain3 = np.arange(-1, 1, 0.001)

ze = 0.001406210978590027
dot_ze = 0.00234235235

vsp = [-0.000,0.001,0.04,0.07,1]
sp = [0.05,0.10,0.24,0.29,1]
mp = [0.24,0.34,0.48,0.58,1]
bp = [0.48,0.58,1.8,1.81,1]

VSP = T1FS(domain1,trapezoid_mf, [vsp[0],vsp[1],vsp[2],vsp[3],vsp[4]])
SP = T1FS(domain1,trapezoid_mf, [sp[0],sp[1],sp[2],sp[3],sp[4]])
MP = T1FS(domain1,trapezoid_mf, [mp[0],mp[1],mp[2],mp[3],mp[4]])
BP = T1FS(domain1,trapezoid_mf, [bp[0],bp[1],bp[2],bp[3],bp[4]])

VSN = T1FS(domain1,trapezoid_mf, [-vsp[3],-vsp[2],-vsp[1],-vsp[0],vsp[4]])
SN = T1FS(domain1,trapezoid_mf, [-sp[3],-sp[2],-sp[1],-sp[0],sp[4]])
MN = T1FS(domain1,trapezoid_mf, [-mp[3],-mp[2],-mp[1],-mp[0],mp[4]])
BN = T1FS(domain1,trapezoid_mf, [-bp[3],-bp[2],-bp[1],-bp[0],bp[4]])

#T1FS_plot(VSP,SP,MP,BP,VSN,SN,MN,BN)

der = 2

N = T1FS(domain2,trapezoid_mf, [-2.1,-2,-der,0,1])
P = T1FS(domain2,trapezoid_mf, [0,der,2,2.1,1])
Z = T1FS(domain2,tri_mf, [-der,0,der,1])
#T1FS_plot(N,P,Z)

fat = 1
fat1 = 1

mpp = [-0.0001,0.00,0.001,0.05,1]
pp = [0.0,fat*0.05,fat*0.1,fat*0.15,1]
mep = [fat*0.1,fat*0.18,fat*0.22,fat*0.3,1]
gp = [fat*0.22,fat*0.3,1,1.01,1]

MPP = T1FS(domain3,trapezoid_mf, [mpp[0],mpp[1],mpp[2],mpp[3],mpp[4]])
PP = T1FS(domain3,trapezoid_mf, [pp[0],pp[1],pp[2],pp[3],pp[4]])
MEP = T1FS(domain3,trapezoid_mf, [mep[0],mep[1],mep[2],mep[3],mep[4]])
GP = T1FS(domain3,trapezoid_mf, [gp[0],gp[1],gp[2],gp[3],gp[4]])

MPN = T1FS(domain3,trapezoid_mf, [-mpp[3],-mpp[2],-mpp[1],-mpp[0],mpp[4]])
PN = T1FS(domain3,trapezoid_mf, [-pp[3],-pp[2],-pp[1],-pp[0],pp[4]])
MEN = T1FS(domain3,trapezoid_mf, [-mep[3],-mep[2],-mep[1],-mep[0],mep[4]])
GN = T1FS(domain3,trapezoid_mf, [-gp[3],-gp[2],-gp[1],-gp[0],gp[4]])

T1FS_plot(MPP,PP,MEP,GP,MPN,PN,MEN,GN)

#SYS = T1Mamdani(engine="Minimum", defuzzification="CoG")
SYS = T1Mamdani(engine="Minimum", defuzzification="CoA")

SYS.add_input_variable("ze")  # E
SYS.add_input_variable("dot_ze")  # dot E
SYS.add_output_variable("vy")
#######################################################
SYS.add_rule([("ze", BP), ("dot_ze", N)], [("vy",MEN)])
SYS.add_rule([("ze", MP), ("dot_ze", N)], [("vy",PN)])
SYS.add_rule([("ze", SP), ("dot_ze", N)], [("vy",MPN)])
SYS.add_rule([("ze", VSP), ("dot_ze", N)], [("vy",MPN)])

SYS.add_rule([("ze", BN), ("dot_ze", N)], [("vy",MEP)])
SYS.add_rule([("ze", MN), ("dot_ze", N)], [("vy",PP)])
SYS.add_rule([("ze", SN), ("dot_ze", N)], [("vy",MPP)])
SYS.add_rule([("ze", VSN), ("dot_ze", N)], [("vy",MPP)])
########################################################
SYS.add_rule([("ze", BP), ("dot_ze", Z)], [("vy",GN)])
SYS.add_rule([("ze", MP), ("dot_ze", Z)], [("vy",MEN)])
SYS.add_rule([("ze", SP), ("dot_ze", Z)], [("vy",PN)])
SYS.add_rule([("ze", VSP), ("dot_ze", Z)], [("vy",MPN)])

SYS.add_rule([("ze", BN), ("dot_ze", Z)], [("vy",GP)])
SYS.add_rule([("ze", MN), ("dot_ze", Z)], [("vy",MEP)])
SYS.add_rule([("ze", SN), ("dot_ze", Z)], [("vy",PP)])
SYS.add_rule([("ze", VSN), ("dot_ze", Z)], [("vy",MPP)])
########################################################
SYS.add_rule([("ze", BP), ("dot_ze", P)], [("vy",GN)])
SYS.add_rule([("ze", MP), ("dot_ze", P)], [("vy",GN)])
SYS.add_rule([("ze", SP), ("dot_ze", P)], [("vy",MEN)])
SYS.add_rule([("ze", VSP), ("dot_ze", P)], [("vy",PN)])

SYS.add_rule([("ze", BN), ("dot_ze", P)], [("vy",GP)])
SYS.add_rule([("ze", MN), ("dot_ze", P)], [("vy",GP)])
SYS.add_rule([("ze", SN), ("dot_ze", P)], [("vy",MEP)])
SYS.add_rule([("ze", VSN), ("dot_ze", P)], [("vy",PP)])
########################################################

#t,s = SYS.evaluate({"ze":ze, "dot_ze":dot_ze})
s = SYS.evaluate({"ze":ze, "dot_ze":dot_ze})

vy = s["vy"]
print(vy)

Thank you for your work !

Hi!
Thanks a lot for writing to me!
This is the theoretical problem of the CoG defuzzification method. When you evaluate the Fuzzy rules, if a rule ends up with a Fuzzy set with zero membership value all over its domain, the denominator of the equation used to calculate the CoG would be zero. So if you try to calculate the CoG on a paper, you will also get division by zero. This problem originates from the fact that the trapezoid or triangular sets have zero membership value in some parts of their domain. Theoretically, this means that if you use Gaussian Fuzzy sets, you will not get trapped in such a situation. For example, using a triangular set "-1 is POSITIVE" yields an absolute zero, and then using a t-norm makes the resulting Fuzzy set an all zero Fuzzy set. But when you use Gaussian sets, it will be a small value like 0.0001, which prevents division by zero.
If you are forced to use triangular or trapezoidal sets along with the CoG method, as far as I know, you should verbally interpret the division by zero based on your problem. Please let me know if there are general rules about the ambiguity raised by this situation. So I will be able to update the codes.
Best regards,
Arslan

Hi!
Thanks a lot for writing to me!
This is the theoretical problem of the CoG defuzzification method. When you evaluate the Fuzzy rules, if a rule ends up with a Fuzzy set with zero membership value all over its domain, the denominator of the equation used to calculate the CoG would be zero. So if you try to calculate the CoG on a paper, you will also get division by zero. This problem originates from the fact that the trapezoid or triangular sets have zero membership value in some parts of their domain. Theoretically, this means that if you use Gaussian Fuzzy sets, you will not get trapped in such a situation. For example, using a triangular set "-1 is POSITIVE" yields an absolute zero, and then using a t-norm makes the resulting Fuzzy set an all zero Fuzzy set. But when you use Gaussian sets, it will be a small value like 0.0001, which prevents division by zero. This is about evaluating single rules, but when you use CoG for a whole system, there will not be an error. Because the resulting sets from each rule will be aggregated using an s-norm.
But wait, your problem is about CoA, not CoG!!! I know that, but in the CoA method, the sets achieved by each rule are defuzzified first! And it is done using the CoG in this toolkit. Consider that, while evaluating a fuzzy system, we are using the CoA and CoG to aggregate the achieved results from the fuzzy rules, not to defuzzify the fuzzy sets. These concepts are a bit different.
def _CoG(self, B):
    C = {}
    D = {}
    for out in self.outputs:
        C[out] = T1FS(B[out][0].domain)
        for B_l in B[out]:
            C[out] = T1FS_OR(B_l.domain, C[out], B_l, max_s_norm)
        D[out] = C[out].defuzzify()
    return C, D

def _CoA(self, B):
    D = {}
    for out in self.outputs:
        a = 0.
        b = 0.
        for B_l in B[out]:
            tmp = B_l.defuzzify()
            a += tmp * B_l(tmp)
            b += B_l(tmp)
        D[out] = a / b
    return D

Best regards,
Arslan

In short, I recommend you use Gaussian fuzzy sets, which are non-zero all over the domain and have a continuous derivative.

Thank you for your response. I'll use Gaussian fuzzy sets and test it again.


Bump MSRV to Rust 1.80

Summary
Prerequisit for https://github.com/astral-sh/ruff/pull/13654
UV's MSRV is 1.81
Test Plan
cargo test

I didn't know about the cargo change but I agree that we can do some of them as follow ups. I did go through the announcement blog posts to learn about obvious things (like the once_cell) that we can use now.


Adding Cortana setting

Creating a button on settings page to open Cortana for user consent.

Hi @rachitb777, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Rachit Bajpai). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


[WIP] Improve extension system

Improvements over the current extension system
Currently under work.
resolves #127

Is it possible for an extension to tell whether its code modifiers were loaded or not? Missing them may cause the extension to lose its functionality, so there should be a way for them to know.

Is it possible for an extension to tell whether its code modifiers were loaded or not? Missing them may cause the extension to lose its functionality, so there should be a way for them to know.

The latest commit adds this feature, exposed via getDescription() and a convenience method inside Extension: areCodeModifiersAllLoadedCorrectly()

With this last commit, the PR looks ready on my end.

I think the method of determining an extension's owner is somewhat fickle, but I don't think it is a huge problem since the system should not be used in a production environment anyway.

Are you talking about MinestomRootClassLoader#findExtensionObjectOwner ? If so, do you have ideas to improve upon it, or where it might fail?


Pytest plugin - align adapters API

This PR contains mainly changes of device adapters (classes dedicated to communication with different types of devices - hardware, QEMU, native simulator). Thanks to them, now iter_stdout generator was replaced by simple readline method, which is more intuitive in usage and safer due to introduction of timeout monitoring during execution read operation.
Changes introduced in this PR allow to create helper object Shell which can be used in shell tests.
To show how new adapters API and new Shell helper class can be used in practice, the main exemplary sample samples/subsys/testsuite/pytest/shell/pytest/test_shell.py was modified and adopted to new changes:
https://github.com/gopiotr/zephyr/blob/pr/align_adapters_API/samples/subsys/testsuite/pytest/shell/pytest/test_shell.py
The bug connected with "not respecting timeout provided in testcase.yaml file" was also solved - if user define his/her own timeout in testcase.yaml, then connection with dut in pytest test will not be disrupted until this particular timeout will be exceeded.
During work on this PR some simplifications of pytest plugin was introduced - the log.py file was removed and its settings was replaced by extending pytest run command (called by Twister), what gives similarly the same effect, but reduce code which required maintaining and extend flexibility of logging settings.
Appropriate unit tests were also modified/added and thanks to this code coverage for pytest plugin was increased from 72% to 90%.
In general, this PR contains following changes:

Unification of used timeouts for executed operations.
Rename DeviceAbstract to DeviceAdapter class and SimulatorAdapterBase to BinaryAdapterBase.
Introduction a new and common API and "a method of reading from device" for all adapters. Replacing iter_stdout generator by simple readline method. Introduction of launch and close methods which allow respectively to prepare "ready-to-test" device, and at the end of test close all open connections and cleanup workspace.
Refactorization of FifoHandler class.
Adding readlines_until method to adapters API.
Dividing dut fixture into smaller parts what makes it easier to user to change dut fixture scope or to write her/his own dut fixture.
Creating of Shell helper class.
Replace "logging configuration logic" from dedicated log.py file to pytest CLI options.
Removing log_file.py, constants.py and log.py files - their logic was moved to other places, and they are no longer needed.
Adding/improving description for available options in pytest plugin.
Adding new unit tests which allow to test introduced changes.
Fix of pytest warning about unregistered fixtures.
Adding conditional CONFIG in sample.yaml for native_posix to avoid warning during building on "non-posix" platforms.

@nashif is any chance to merge this PR?
When we are talking about code duplication between Twister and pytest-twister-harness plugin (Handlers in Twister and DeviceAdapter in the plugin), this PR does not introduce that code duplication. This PR, by refactoring of DeviceAdapter classes, just commonalizes the code inside the plugin. And this is a good step, if we want to reuse this code in a potential future refactoring of Handlers in Twister.
Moreover, what is important, this PR fixes the issue with blocking readline operations (by adding separate thread and queue to read output from the device).
I'm waiting also for that PR, to rework / simplify tests of MCUboot ( #58393 )

@hakehuang Not so easy.
Pytest is executed by Twister as a separate program and pytest-twister-harness is added as a plugin.
Sure, it is possible to import Handler class in pytest-twster-harness (ugly but possible), but in current implementation of Handlers (lot of dependencies, large methods) it is not possible to reuse it.
We can plan such commonalization of that code, but not in that PR (however, this PR can be treat as a step to do that)


Improved sorting criteria for extensions

We can currently sort extensions by rating or install count, both are not quite adequate for sorting by "popularity". Part of the problem is that the install count includes updates.
A (presumably additional) sort criteria useful for both "top 10" list and the extension viewlet should better reflect how popular an extension is at present - as opposed to over its entire lifespan.
With such a sort criteria we should hopefully be able to phase out some of our curated lists of extensions which take time to maintain and can be slow to pay tribute to the rising stars.
Related to #15159. Part of the outcome of #15383. /cc @joaomoreno @Tyriar

Ping @hamenon
Do we think trending could solve this? MP team has fine tuned this. We could look at trending for the last month, which would give us how "popular an extensions is at present"

Yup that was one of the primary things that Trending was looking to solve. The way I think of the split right now is as follows:

Featured - Manually curated - Extensions that we want to highlight on the Marketplace
Most Popular - Sorted by downloads - Helps address new users to VS Code extensions to understand whats popular on the Marketplace
Trending - Sorted by growth - Helps address the question of whats popular now
Recently Added - Sorted by upload date - Helps address the question of whats new on the Marketplace

We do provide sort options for each of the above in the search and category pages as well.
We are monitoring the performance of the trending extensions currently and trying to see if any tweaks to the algorithm are necessary or if it needs to incorporate additional factors like Page views or rating etc.

@hamenon With "popular" I really mean "most actively used in the field today". The download count we currently use in the product gives too much weight to previously popular extensions. I'm not sure if with "trending" you want to list the "hot and new", which would not be what we are looking for, this list would presumably change quickly.
Our goal is to have a good sorting criteria we can use in the product for (new) users interested in the must-haves for daily work.

It sounds to me like you want a sort order based on active installs of extensions in the field today? Is that right? Unfortunately we don't get active client install data in the Marketplace today. Since once the extension is downloaded from the Marketplace they don't talk back to the service. I believe this should be trackable within VS Code telemetry/usage number though? We could in fact base it on extension activations within the client as well. If there was some way we could query that (API etc) from VSCode then we could have a list based on active installs.

Extension activation might not be a good measure either because extensions can register to activate on startup and these would the win against others that are more specific in their activation triggers.
The number of active application installs where a particular extension is installed might be a better measure. That would require us to extract that data from telemetry though.
@hamenon What is the current definition of 'trending'? Is it trying to capture the 'hot & new' extensions?

@chrmarti It is intended to capture the growing extensions. We primarily look at extension growth and see which extensions are trending in the specified timeline. We do have a threshold to avoid just recently added extensions from showing up and thereby duplicating the Recently Added list.
Like you mentioned the number of active application installs would be a great measure to have as its a more accurate representation of popularity. But we don't have that information on Marketplace for VS Code today as the extensions don't contact our service after install/update.

Add number of active users of extension (extension was activated at least once in 7(n) days).
It can help solving some problems:

Extension was implemented in the core editor and now not needed
Extension was good at the start, but now dropped (not maintained)
Extension was good at the start, but after dramatically changed it functionality
Extension was and is good, but now has a competitor that does it better
Extension was bad from the start, but people downloaded it => didn't have the microsoft account (or were lazy) => removed extension not giving it feedback or rating on marketplace
...

The sorting has been improved some time ago. Closing this issue.


I cannot complete the installation. The error message is  "StableSwarmUI\src\WebAPI\API.cs:line 124". What should I do? Please advise me, thanks!

The primary author has migrated the codebase and (his) support over to this repo: https://github.com/mcmonkeyprojects/SwarmUI
I would start from scratch with that repo and follow the installation instructions there.
Also, looking at the API.cs file, that appears to be a closing brace character, not sure why that error would be thrown unless you were using a non-up-to-date version of the repo.


merge main to live Tues morning 10:30

Docs Build status updates of commit 95facb0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012-ps/nfs/New-NfsClientgroup.md
:white_check_mark:Succeeded
View (winserver2012-ps)

docset/winserver2012r2-ps/activedirectory/Search-ADAccount.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2012r2-ps/nfs/New-NfsClientgroup.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2016-ps/activedirectory/Search-ADAccount.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2016-ps/adfs/New-AdfsAzureMfaTenantCertificate.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2016-ps/adfs/Set-AdfsAzureMfaTenant.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2016-ps/hyper-v/Restart-VM.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2016-ps/nfs/New-NfsClientgroup.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2019-ps/activedirectory/Search-ADAccount.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2019-ps/adfs/New-AdfsAzureMfaTenantCertificate.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2019-ps/adfs/Set-AdfsAzureMfaTenant.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2019-ps/hyper-v/Restart-VM.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2019-ps/nfs/New-NfsClientgroup.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2022-ps/activedirectory/Search-ADAccount.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

docset/winserver2022-ps/adfs/New-AdfsAzureMfaTenantCertificate.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

docset/winserver2022-ps/adfs/Set-AdfsAzureMfaTenant.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

docset/winserver2022-ps/hyper-v/Restart-VM.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

docset/winserver2022-ps/nfs/New-NfsClientgroup.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Add Priority for Item Conduits

When extracting items from blocks, add a 'priority' option on the insertion end of the conduits, so that if there's multiple insertion points some can be prioritized over others. Here it is in the previous EnderIO GUI on the insertion side of the GUI:
https://github.com/SleepyTrousers/EnderIO-1.5-1.12/wiki/images/GUIs/Item-Conduit-GUI.png

it's planned to return in the future


User should be informed if the config files are missing

Description
When we run the NMS and the config files are not found (either UPF_CONFIG_PATH / GNB_CONFIG_PATH haven't been set or the files do not exist) there is only a log as follows:

To Reproduce

set WEBUI_ENDPOINT
don't set UPF_CONFIG_PATH or GNB_CONFIG_PATH
Run the service.
Expected behavior
The GUI should show a message indicating that the config files are missing.
Something similar to when the webui cannot be found

I believe this is not applicable anymore since we don't have such config files.


TypeError: unsupported operand type(s) for /: 'float' and 'str'

Getting TypeError for the symbol "BZG2.SG". Attached is the complete error log
Below is the code snippet:
try:
data = yf.download(
tickers = "BZG2.SG",
period = "100y",
interval = "1d",
auto_adjust = True,
threads = True,
proxy = None)
except:
print("Oops!",sys.exc_info()[0],"occured in function fetch_data()")
And for some reason my except block is not catching this error and the program terminates.
error_log.txt

Is it working if you use a valid period ?
From the readme:

valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
(optional, default is '1mo')

Take a look at the Y! Finance original results for the adjusted closing prices before Dec. 2019, I think there is a Yahoo! data bug here (leading to mis-adjustement for OHLC prices when setting autoadjust to true) :

The issue comes from auto_adjust=True (and disapear if you let it defaulted to false). Some Adj Close are sent to "Infinity", and the column isn't a float anymore. I'll take a look:)

Thanks @simonvdv
I am absolutely clueless how to catch this exception. Below is my code snippet and the program terminates as soon as yfinance.download() function is invoked for this particular symbol.
import yfinance as yf
try:
yf.download(
tickers = "BZG2.SG",
period = "100y",
interval = "1d",
auto_adjust = True,
threads = True,
proxy = None)
except:
print("Error")
What am I doing wrong?


fix: properly confiure rustls stack

Starting from the 0.22 release, rustls requires each application to configure its default crypto provider. Without that, the application will face a runtime panic.
This is something the "cert-reload" integration test allowed us to expose.

@viccuad this is the fix for the issue you've been looking into. The axum-server update caused a bump of the rustls crate, which lead to this issue.

I've switched to ring as crypto provider. I'll merge the PR once everything is green


Move plugin to next-translate-plugin package

@StLyn4 as a major contributor to version 2, I would appreciate it if you could give me some feedback on this change 😊

About this PR:
In version 2 of the next-translate library, we have made a significant change to the way the Webpack plugin is implemented. This change improves the library by solving many of the issues reported by users and makes it more powerful. However, it also means that two of the library's rules have been broken - it is now slightly larger and has a dependency on a specific version of the TypeScript parser.
To address this, we have split the library into two separate packages. The main package, next-translate, is used as before and handles all of the translation functionality. The new package, next-translate-plugin, is used specifically for the Webpack plugin and should only be used in the next.config.js file.
It's worth noting that by splitting the library into two packages and only using the next-translate-plugin in the next.config.js file, we are able to ensure that the extra kilobytes added by the TypeScript parser are only loaded during the build process and not included in the final bundle that is served to the client. This helps to keep the size of the final bundle as small as possible and improves the performance of your application. Additionally, by listing the next-translate-plugin will be installed as devDependency to reduce the extra kilobytes in the pipeline.
To migrate your project to use version 2, you will need to make the following changes:

Install the next-translate-plugin package as a devDependency using yarn add -D next-translate-plugin or npm install --save-dev next-translate-plugin
In your next.config.js file, replace require('next-translate') with require('next-translate-plugin')

Example of next.config.js:
const nextTranslate = require('next-translate-plugin')

module.exports = nextTranslate()

Calling tsc this way does not work on Windows - it breaks the build process (the change was in commit f134a17da01e40bb391342827bc04b9e1afc98b6, not in this PR. The old version works):
"tsc": "./node_modules/typescript/bin/tsc -p tsconfig.json && ./node_modules/typescript/bin/tsc -p tsconfig-cjs.json && node build-packages.js"
We also need to add changes to the README of the main package. There are still old installation instructions.
The rest LGTM and works fine if fix the "tsc" script.
By the way, as far as I remember, when I did the first tests in the fall, the bundle analyzer told me that the size of the final assembly had not changed in any way after switching to typescript. As I understand it, tree shaking works. But, nevertheless, I don’t see anything wrong with moving the plugin into a separate module 😊

Thanks @StLyn4 . I changed to tsc again.

but isn't next.js moving to swc and trying to deprecate webpack in the long term? Would this path mean that we can not benefit of the advancements on the swc front?

but isn't next.js moving to swc and trying to deprecate webpack in the long term? Would this path mean that we can not benefit of the advancements on the swc front?

It's possible that I misunderstood the messages, but the plugin has nothing to do with SWC. I mean SWC replaced babel, not webpack. In turn, Turbopack is going to replace Webpack.
But, we don't currently have the ability to create plugins for it (at least for now), so there's nothing we can do about it.
Besides, these are just my guesses, but I think that plugins will have to be done in Rust, so the plugin will have to be rewritten one way or another in such a situation. In this case, separating into separate modules will play a good role, as 2 independent modules can be created for Webpack and Turbopack. Maybe even something more exotic. While the main module can exist and be updated independently 😄

but isn't next.js moving to swc and trying to deprecate webpack in the long term? Would this path mean that we can not benefit of the advancements on the swc front?

We are enhancing the current plugin, instead of regex now we are parsing the files correctly. Currently, Turbopack is in alpha stage and has room for improvement, and it is likely that it will support Webpack plugins. If not, we are going to migrate in the future when Turbopack support it.

thanks for clearing that up, I was mixing things up there :) thanks alot to you for your contributions to this library


Shrink linux instance size: use 2 CPUs per VM instead of 4

This is to help with CPU quota issues.
We used to run with 2 CPUs for all instances until we boosted them all to 4 about a year ago to improve Windows startup times.

The remaining failures are flakes, particularly https://github.com/GoogleCloudPlatform/ops-agent/issues/407. Between the last few runs each test has turned up green. Merging.


Concepts section

Fixes #407

No pictures yet, but here is a revised version based on the items from our shared document.

OK, I cut the sections finer for better linking. Also got rid of the detailed player example.

@sumedhpathak I'll rebase this, and then do you want to take another look? I think it may connect with work on #522

Yep, I'm actually taking a look right now. Feel free to rebase it though.
On Tue, Dec 5, 2017 at 11:43 AM, Joe Nelson<EMAIL_ADDRESS>wrote:

@sumedhpathak https://github.com/sumedhpathak I'll rebase this, and
then do you want to take another look? I think it may connect with work on
#522 https://github.com/citusdata/citus_docs/issues/522
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/citusdata/citus_docs/pull/480#issuecomment-349418614,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACeeC1I33hBB7uKIUtXyGb3qC2IPD7aeks5s9Zz9gaJpZM4PbXdU
.

--
Sumedh Pathak
Co-founder and VP Engineering | Citus Data |<PHONE_NUMBER>
Elastically scalable PostgreSQL as a service.
https://www.citusdata.com/blog/2016/10/03/designing-your-saas-database-for-high-scalability/
Learn how CloudFlare handles billions of events in real-time.
https://blog.cloudflare.com/scaling-out-postgresql-for-cloudflare-analytics-using-citusdb/


AGDIGGER-81 OSX sandbox definition file for CocoaPods

See https://issues.jboss.org/browse/AGDIGGER-81
Comments in https://github.com/aerogear/digger-jenkins/pull/28 apply here too!

Verification:
cd /tmp
git clone https://github.com/feedhenry-templates/helloworld-ios.git
cd helloworld-ios
sandbox-exec -f /path/to/cocoapods_sandbox.sb pod install

If you want to try it again, make sure you delete everything that is fetched: git clean -fdX

how does this related to the sandbox-pod file, directly from CocoaPods

Has stuff in common. I developed the file checking there too.

@odra @wtrocki

Reviewed. Works good as example. More work would be carried later in integration phase.


Make user input fields consistent

Depending on the type of field a user interacts with the text will either be serif or sans-serif. This is slightly confusing because it means there's a lack of visual consistency between items the user can editorially control. It was something that was discussed changing at the Bristol sprint.
In #3942 there was a commit to change input, textarea, select, .richtext, and .tagit to always use $font-serif. That perhaps goes too far since login and search will then be serif - though I have to say that feels like the right direction to take if we're aiming for consistency. In any case something that I think requires more discussion before it's put in a PR.

I wonder if there is a meaningful difference between content an editor is creating being serif and all input text being serif. For example I think that it makes sense for all fields used on the page edit screen being serif because it's content the editor is creating. However I'm not sure about fields such as search, login etc that are part of the admin. Certainly worth thinking about and there should be a rational either way.

This has been addressed as part of #7724, where we decided to use sans serif everywhere.


Seaport 1.2

This PR highlights changes from Seaport 1.0 to Seaport 1.1 and is meant to facilitate review and discussion of those changes.

Codecov Report

:exclamation: No coverage uploaded for pull request base (seaport-1.1@821a049). Click here to learn what that means.
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@              Coverage Diff               @@
##             seaport-1.1     #940   +/-   ##
==============================================
  Coverage               ?   99.91%
==============================================
  Files                  ?       21
  Lines                  ?     1231
  Branches               ?      219
==============================================
  Hits                   ?     1230
  Misses                 ?        0
  Partials               ?        1

Flag
Coverage Δ

reference
99.91% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Implement Pre-Built Movie Review Sentiment Classifier [resolves #218]

sadedegel/prebuilt/README.md:

Added how to use prebuilt pipeline
Added cv score
Added test set score

sadedegel/prebuilt/model/movie_sentiment.joblib:

Dumped pretrained model weights

sadedegel/prebuilt/movie_reviews.py:

Added cv, build, load and evaluate functions
Model and vectorizer parameters selected using optimizer with 3 fold results.

tests/prebuilt/context.py:

Added import line for the base model

tests/prebuilt/test_movie_review_sentiment.py:

Added assertions for testing purposes.

can you reimplement the model using icu tokenizer.

Thanks for updating me, I'm already on it.
One question though, what would be the limit for small dataset? You have any number in your mind?

Of course no I dont :) But for majority of the problems ~30K training instance can be used for training without mini batch. Please do check

Profanity (pipeline)
Sentiment (pipeline)
News Categorizer (onelinepipeline)

@ertugrul-dmr waiting for your prebuilt model confirming  sadedegel/prebuilt/CONTRIBUTING.md  conventions


Use is-promise to check if objects are Promises

This adds support for alternative Promise implementations.
In particular, we had seen several cases where our command Inhibitors were producing ugly error messages about invalid return types, even though we are returning what should be a valid value (an object with a string reason and a Promise response generated by message.reply). For example:
        client.dispatcher.addInhibitor(function(message){
            if (message.command && message.command.name === 'set-name' && !TrainManager.isTrainChannel(message.channel.id)) {
                return {reason: 'invalid-channel', response: message.reply('use this command from a train channel.')};
            }
            return false;
        });

Switching to use is-promise resolves the issue by correctly handling all thenables as Promises, including alternative Promise implementations like Bluebird.

Why do you need to use a package who have only 2 lines to check if it is a promise ?

As for why you need a package, I guess you don't - if you'd rather copy that code locally and cite the source instead of adding a lightweight dependency, that's your call. Personally in my node development experience, the only times I've seen people averse to adding dependency packages for functionality are projects that are dependency-free to start with, which Commando clearly isn't. That said, whatever the maintainers prefer.
As for any object with a then method being treated as a Promise, that's kind of the point. There are many Promise implementations (jQuery, Bluebird, Q, ES6 native, ...), and they will not always be instanceof Promise, hence my code snippet above not working in my project even though it pretty clearly should. Per my understanding of the spec (see Promises/A+), an object/function with a then method is a thenable (admittedly yes, a thenable must confirm to the rest of the spec to be a real promise) and can reasonably be awaited, which is really what matters here. Take a look at this StackOverflow post for more.

@HarmoGlace (or anyone else who looks at these PRs) any more thoughts on this? It's been two weeks since I submitted this. Just to give a bit more justification, here is a minimal example of code that causes this problem:
bot.js:
// Use Bluebird promise implementation
global.Promise=require("bluebird");

const path = require('path');
const Commando = require('discord.js-commando');

const client = new Commando.Client();
client.registry.registerGroup('test', 'Test commands');
client.registry.registerCommandsIn(path.join(__dirname, 'commands'));
client.on('error', console.error);
client.login('<TOKEN>');

commands/test/test.js:
const Commando = require('discord.js-commando');

class TestCommand extends Commando.Command {
    constructor(client) {
        super(client, { name: 'test', group: 'test', memberName: 'test', description: 'Test the inhibitor'});

        client.dispatcher.addInhibitor(message => {
            return {reason: 'unauthorized', response: message.reply('this command can never be run')};
        });
    }

    async run(message, args) {
        return await message.reply("this should never happen");
    }
}

module.exports = TestCommand;

Error output when the !test command is run:
TypeError: Inhibitor "" had an invalid result; must be a string or an Inhibition object.
    at CommandDispatcher.inhibit (/home/alec/my_test/node_modules/discord.js-commando/src/dispatcher.js:206:12)
    at CommandDispatcher.handleMessage (/home/alec/my_test/node_modules/discord.js-commando/src/dispatcher.js:126:27)
    at CommandoClient.<anonymous> (/home/alec/my_test/node_modules/discord.js-commando/src/client.js:64:51)
    at CommandoClient.emit (events.js:315:20)
    at MessageCreateAction.handle (/home/alec/my_test/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (/home/alec/my_test/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/alec/my_test/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (/home/alec/my_test/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/alec/my_test/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/alec/my_test/node_modules/ws/lib/event-target.js:125:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (/home/alec/my_test/node_modules/ws/lib/websocket.js:797:20)
    at Receiver.emit (events.js:315:20)
    at Receiver.dataMessage (/home/alec/my_test/node_modules/ws/lib/receiver.js:437:14)
    at Receiver.getData (/home/alec/my_test/node_modules/ws/lib/receiver.js:367:17)
    at Receiver.startLoop (/home/alec/my_test/node_modules/ws/lib/receiver.js:143:22)


Ask about implement the PLUS !

Dear administrator of plus-lib,
I am studying about PLUS and want to run some experiment on PLUS. Has your side done about building plus-lib completely?
If it is built completely, could you show me how to implement plus-lib? Could you share me it?
Thank you in advance!

It may be subject to minor changes but should be fairly stable API-wise. See
https://github.com/mami-project/plus-lib/blob/master/HOWTO.md


🐛 Bug Report: NullPointerException when trying to fetch teams list

👟 Reproduction steps
When I try to fetch teams list using Teams object, I get NPE.
Demo code:
val client = Client().setEndpoint(Application.appWriteEndpoint).setProject(Application.appWriteProjectId).setKey(Application.appWriteApiKey)
val teamsClient = Teams(client)

val teams = teamsClient.list().teams // this line causes NPE, see below

teams.forEach {
    println(it.name)
}

👍 Expected behavior
Teams list should load.
👎 Actual Behavior
The call crashes with following stack trace:
Exception in thread "OkHttp Dispatcher" java.lang.NullPointerException: null cannot be cast to non-null type kotlin.collections.Map<kotlin.String, kotlin.Any>
	at io.appwrite.models.Team$Companion.from(Team.kt:83)
	at io.appwrite.models.TeamList$Companion.from(TeamList.kt:43)
	at io.appwrite.services.Teams$list$converter$1.invoke(Teams.kt:43)
	at io.appwrite.services.Teams$list$converter$1.invoke(Teams.kt:42)
	at io.appwrite.Client$awaitResponse$2$1.onResponse(Client.kt:507)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

I've investigated the crash and found the point. The error occurs in mapping the Team object's preferences in Team.kt file:
@Suppress("UNCHECKED_CAST")
fun <T> from(
    map: Map<String, Any>,
    nestedType: Class<T>
) = Team<T>(
    id = map["\$id"] as String,
    createdAt = map["\$createdAt"] as String,
    updatedAt = map["\$updatedAt"] as String,
    name = map["name"] as String,
    total = (map["total"] as Number).toLong(),
    prefs = Preferences.from(map = map["prefs"] as Map<String, Any>, nestedType),
)

In last line, where prefs is assigned, actual value of maps["prefs"] is null, while cast expects it to be Map<String, Any>. So the prefs field in data class Team should be nullable, and I suggest that the cast should be rewritten, something like that:
prefs = (map["prefs"] as? Map<String, Any>)?.run { prefs = Preferences.from(map = this, nestedType),

🎲 Appwrite version
Version 1.3.x
💻 Operating system
MacOS
🧱 Your Environment
I use io.appwrite:sdk-for-kotlin:2.0.0 which automatically fetches all required dependencies.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Hey @Narmo, in this case, prefs should not be null. It is supposed to default to an empty map. Did you happen to recently upgrade from a previous Appwrite version?

Hey @Narmo, in this case, prefs should not be null. It is supposed to default to an empty map. Did you happen to recently upgrade from a previous Appwrite version?

Hello @abnegate Yes, we've recently updated our server instance from I think 1.2.x.

Hello @abnegate Yes, we've recently updated our server instance from I think 1.2.x.

@Narmo Please check if the migration was run, that should be adding the default values for team prefs: https://appwrite.io/docs/upgrade#migration

@Narmo Please check if the migration was run, that should be adding the default values for team prefs: https://appwrite.io/docs/upgrade#migration

@abnegate Sorry, my mistake. We did not update the server instance to latest (1.3.7) version. After the update and migration everything works fine with latest SDK version.
So I think that this ticket can be closed now.

@Narmo Awesome glad it's sorted :grin:


System output selfContained support

I've just been integrating 6to5 into the SystemJS builder project, and it would be quite nice when generating a bundle to use the selfContained transform so that helpers are only defined once per bundle.
When I enable the transformer though, I get the following error:
TypeError: file:/Users/guybedford/Projects/systemjs-builder/test/tree/first.js: Cannot set property '_importSource' of undefined
    at SystemFormatter._addImportSource (/Users/guybedford/Projects/6to5/lib/6to5/transformation/modules/system.js:23:22)
    at SystemFormatter.importSpecifier (/Users/guybedford/Projects/6to5/lib/6to5/transformation/modules/system.js:64:8)
    at File.addImport (/Users/guybedford/Projects/6to5/lib/6to5/file.js:256:26)
    at /Users/guybedford/Projects/6to5/lib/6to5/transformation/transformers/other/self-contained.js:66:19
    at File.get (/Users/guybedford/Projects/6to5/lib/6to5/file.js:239:28)
    at File.addHelper (/Users/guybedford/Projects/6to5/lib/6to5/file.js:276:22)
    at ReplaceSupers.superProperty (/Users/guybedford/Projects/6to5/lib/6to5/transformation/helpers/replace-supers.js:40:15)
    at ReplaceSupers.specHandle (/Users/guybedford/Projects/6to5/lib/6to5/transformation/helpers/replace-supers.js:234:28)
    at visitor.enter (/Users/guybedford/Projects/6to5/lib/6to5/transformation/helpers/replace-supers.js:127:21)
    at TraversalContext.enterNode (/Users/guybedford/Projects/6to5/lib/6to5/traverse/index.js:65:16)

Any tips on how I could go about setting this up would be appreciated.

Any chance I can get the source for /Users/guybedford/Projects/systemjs-builder/test/tree/first.js?

Sure - the source I'm testing is the following:
import 'jquery-cdn';
import '@empty';
import { dep } from "./second";
import './amd';
import './component.jsx!./jsx';

export var p = 5;
export class test {
  constructor() {
    super();
  }
}

Nice!! Thanks so much for the quick response.

No problem! Fixed as of 3.0.16, thanks!


Installing Pre Built Error

Maybe it's not an issue but I'm newbie at Ubuntu. I get this when I execute the prebuilt:
MAIN    : 2022/11/19 01:16:55 main.go:130: INFO     windscribe-proxy client version v1.3.0 is starting...
MAIN    : 2022/11/19 01:16:55 main.go:197: WARNING  Failed to load client state: open wndstate.json: no such file or directory. Performing cold init...
MAIN    : 2022/11/19 01:16:56 main.go:200: CRITICAL Cold init failed: Session call failed: bad http status: 400 Bad Request, headers: http.Header{"Access-Control-Allow-Headers":[]string{"Origin, X-Requested-With, Content-Type, Accept"}, "Access-Control-Allow-Origin":[]string{"*"}, "Cache-Control":[]string{"no-cache, no-store, max-age=0, must-revalidate"}, "Cf-Cache-Status":[]string{"DYNAMIC"}, "Cf-Railgun":[]string{"b4be6faa50 99.99 0.002847 0032 57da"}, "Cf-Ray":[]string{"76c51a75389603ee-LIS"}, "Connection":[]string{"keep-alive"}, "Content-Type":[]string{"text/html; charset=UTF-8"}, "Date":[]string{"Sat, 19 Nov 2022 01:16:56 GMT"}, "Server":[]string{"cloudflare"}, "Strict-Transport-Security":[]string{"max-age=16000000; includeSubDomains; preload;"}}, body: "{\n    "errorCode": 502,\n    "errorMessage": "2 arguments had validation errors",\n    "errorDescription": "Argument did not validate",\n    "logStatus": null,\n    "validationFailuresArray": {\n        "0": {\n            "password": {\n                "lengthMin": {\n                    "argValue": "",\n                    "validationValue": "4"\n                }\n            }\n        },\n        "1": {\n            "username": {\n                "lengthMin": {\n                    "argValue": "",\n                    "validationValue": "3"\n                }\n            }\n        },\n        "validationErrorMessageArray": [\n            "password is too short. Minimum value is 4 characters",\n            "username is too short. Minimum value is 3 characters"\n        ]\n    }\n}"

Hi! Nowadays they require Windscribe account, which login and password has to be specified with respective options.


Add type Millisecs and use it for interpreting timestmaps

We are moving this type here from https://git.sr.ht/~cryptix/go-toolbelt which is a module called "go.mindeco.de" for easier maintenance. This removes dependency on that module. At the same time we are fixing a bug in this type described in the issue below. Next steps will involve using this type in other ssb libraries that use this module.
See https://github.com/ssbc/go-ssb/issues/324.

I removed the constructor completely as it wasn't used anywhere where a simple cast wouldn't suffice, we can add it later.


Add a test program which reuses variables

Dear @KareemErgawy, excuse my intrusion, but I noticed your email on TYPES and took a quick look at your implementation of lambda calculus, but there's one thing I don't understand.

I tried adding, as test program, (l x. x x) y, to test that it reduces to y y, but that doesn't seem to work.

I added this program because I don't understand your implementation of substitution: when you substitute x by t, you modify t in place — but what if you need to substitute t for another occurrence of x? I didn't get how it worked, then I didn't find a test exercising this, so I added one. Then, I added a second that reuses variables under different sizes of binding contexts.

Modifying the term you're reducing in place is an unusual and interesting idea, but you need to be careful. The simplest correct solution is to copy the term t you are substituting before shifting it and substituting it. The copy must happen before substitution, in case other occurrences of t occur under another context.

Hello Paolo,
Your intrusion is more than welcome :smile:. Thanks for the tests, that case is certainly something that I missed.  I opened an issue (https://github.com/KareemErgawy/types-and-programming-languages/issues/2) and currently working on a fix.


[ADAM-937] Adding check for aligned read predicate or limit projection flags and non-parquet input path

Fixes #937

I'm not sure this is comprehensive enough, e.g. sometimes even Parquet files won't have .seqdict files
$ ./bin/adam-submit fasta2adam \
  adam-cli/src/test/resources/contigs.fa contigs.contig.adam

$ ./bin/adam-submit transform -aligned_read_predicate \
  contigs.contig.adam output.adam

Command body threw exception:
java.io.FileNotFoundException: File contigs.contig.adam.seqdict does not exist
  Exception in thread "main" java.io.FileNotFoundException:
    File contigs.contig.adam.seqdict does not exist

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/ADAM-prb/1079/
Test PASSed.

Sorry; should be checking that the file is a Parquet file of alignment records.
Alternatively, we could make this a ValidationStringency effect. E.g., if you have ValidationStringency.LENIENT, we give a RecordGroupDictionary.empty/SequenceDictionary.empty if they're missing.

Sorry; should be checking that the file is a Parquet file of alignment records.

What do you mean by this, flipping the logic of isNonParquet around?

What do you mean by this, flipping the logic of isNonParquet around?

Oh, I just meant that it shouldn't check for any Parquet dataset. Rather, the check should be more specific and check that it is a Parquet dataset of AlignmentRecords.

Can't do that by filename check, so it would have to come later, instead of fail fast in the cli class.

Ah, yes, fair. I think we suggest "*.contig.adam" as a convention for files of NucleotideContigFragments, but we don't enforce it anywhere. We can patch that later, if needed.
Do you want to do any of the ValidationStringency stuff I suggested earlier, or shall we skip that for now and possibly come back to it later?

I think we suggest "*.contig.adam" as a convention for files of NucleotideContigFragments, but we don't enforce it anywhere.

Yep, I cribbed from here
https://github.com/bigdatagenomics/adam/blob/master/adam-core/src/main/scala/org/bdgenomics/adam/rdd/ADAMContext.scala#L858
I can add the check for *.contig.adam if useful.  I think validation strategy might be overkill.

I can add the check for *.contig.adam if useful. I think validation strategy might be overkill.

This is probably sufficient for now. We can add the two later if need be. I'll merge this shortly.

Thanks, Michael.

Merged manually.


Build.SourcesDirectory should be adjusted to point to the self repos directory in multi-repo scenarios

With the addition of multiple repos in checkout we get into a situation that build scripts need to be aware of whether or not the build they are running against is using multi-repos or not. For example our builds are completely template driven. We have no knowledge of the location where Azure decided to put the actual source code of the repo we're building. We historically have used Build.SourcesDirctory for this but in a multi-repo world this no longer works. Understandably putting each repo into a subfolder is the correct option and we don't disagree with this approach.
But the whole point of using these kinds of variables is to avoid hard coding paths into your build scripts. With multi-repos we have to go back to hard coding paths relative to this root directory. This shouldn't be necessary. "Properly" written build scripts already assume that Build.SourcesDirectory is the root of the repo being built. Multi-repos shouldn't change the meaning of this variable. This would avoid breaking most builds out of the box.
Build.SourcesDirectory should be modified when using multi-repos to point to the path where the self repo was checked out, if any. Existing code can then use this directory whether you have a single or multiple repos checked out. If necessary a new variable can be added to indicate the "root" of the sources directory. Looking back this would have been best for this variable but since Build.SourcesDirectory is already used everywhere it would be hard to change that behavior now. I guess you could argue that we instead need a Build.SourceDirectory that points to the "self" repo and that would solve the same problem but we still have to update every build script/task that relied on the old variable.
Note that since Build.SourcesDirectory is an alias for Build.Repository.LocalPath it is unclear how that variable would be impacted by this change.

After looking at the behavior more and rereading the docs it seems like we can get single-repo directory structures when using multi-repo setups. I have created an issue against the docs to consider documenting the steps. Therefore I don't believe this behavior is critical anymore. I'm going to close this and let the docs issue be sufficient.


Bootstrap not good in Ultra HD monitor

In Ultra HD(3840 pixel x 2160 pixel)，All of things are too small。

I beg your pardon but our crystal ball is out of order ATM.
Could you please give us some more information, e.g. browser, browser version, OS, zoom factor, default font size, …?

There are currently no plans to make any specific styles for these sorts of high resolutions.


Add support for int8 and bfloat16 tensor type

Today we support double (8 bytes) and float (4 bytes) but we can observe that number of parameters is more important than precision used for the weights/data so many models uses int8 (1byte) and bfloat16 (2 bytes) instead without significant drop in accuracy but with a significant speedup and lowered memory resource.  Example of model which will greatly benefit from this is the ColBERT model described in https://github.com/vespa-engine/vespa/issues/15854
Today using float
 field dt type tensor<float>(dt{}, x[32]){
      indexing: summary | attribute
    }

field dt type tensor<int8>(dt{}, x[32]){
      indexing: summary | attribute
    }

Would reduce memory footprint of the dt tensor by a factor of 4.

As the documentation is live, it this issue ready to be closed?

Support for int8 and bfloat16 tensor types is part of 7.407.36 (late May 2021).
Relevant documentation:

https://docs.vespa.ai/en/reference/tensor.html
https://docs.vespa.ai/en/tensor-user-guide.html#bfloat16
https://docs.vespa.ai/en/tensor-user-guide.html#int8

The int8 type can be fed using a new hex format:

https://docs.vespa.ai/en/reference/document-json-format.html#tensor-hex-dump
https://github.com/vespa-engine/system-test/blob/master/tests/search/tensor_feed/tensor_feed_hex.rb

It can also be used in combination with the hamming distance metric when using nearest neighbor search:

https://docs.vespa.ai/en/reference/schema-reference.html#distance-metric


maintainers: update

This updates the maintainers list to current reality.

I'll abuse this to also ping people who still have access, but it could be worth a confirmation:

[ ] @yifan-gu
[ ] @dgonyeo
[ ] @krnowak

/cc @alban @iaguis

Pong.
Who's going to handle issues in the damn build system if I'm gone? ;)


Source cluster reference

Changes

🎁 Now the Source uses a RabbitCluster Reference like the Broker
🧹 Refactored some helper methods regarding rabbitmq url extraction
🧹 Adapted tests, samples and docs

/kind api-change deprecation

Fixes #

Release Note

Now the Source uses a RabbitCluster Reference like the Broker

/hold

/hold cancel

nit with the release notes: Let's not start all points with "Now", that's kind of implied. It can just be something like `Rabbitmq sources changed to use rabbitmq cluster references for connectivity"

/lgtm


[fr] fix link about Katacoda

Fix the Katacoda link by #34428
Original page: https://github.com/kubernetes/website/blob/main/content/fr/includes/task-tutorial-prereqs.md

Need wait for #34496 to be merged.

/lgtm
/approve


shap_values for multi-classification

First of all, thanks so much for providing this powerful tool.
A rookie question:  i got a 3 classes(labeled 0,1,2) classification problem, the shap_values obtained is a list with 3 np.arrays. I tend to believe that each array is the shap_value for each classes, respectively. Right?

Yes. Your thought is right.


Lost data after docker compose down | docker compose up

Hi, when I use redis exporter with zeebe simple monitor, no matter if I set in the environment:

ZEEBE_REDIS_MAX_TIME_TO_LIVE_IN_SECONDS=0
ZEEBE_REDIS_DELETE_AFTER_ACKNOWLEDGE=false
ZEEBE_REDIS_CLEANUP_CYCLE_IN_SECONDS=0
Every time after docker reload, data are gone, and simple monitor is empty.
I have a persistent volume for both redis and zeebe, zeebe keeps all just fine, but redis, even if I have dump.rdb in it, does not restore values, those are most probably cleaned up by exporter.
I expect it to restore values.
Without docker reload, values are persistent.
It seems, that when initialized, it runs cleanup, even if it should not.
When I have cleanup cycle set to default, and I reload container before 60 seconds, weirdly - data stays! But after another reload after 60 secs, data are gone :(
Do you have any hint, how to set it up properly?

Here is my compose file:
services:
  zeebe:
    container_name: zeebe-broker
    image: ghcr.io/camunda-community-hub/zeebe-with-redis-exporter:8.4.4
    hostname: zeebe
    environment:
      - ZEEBE_REDIS_REMOTE_ADDRESS=redis://redis:6379
      - ZEEBE_REDIS_MAX_TIME_TO_LIVE_IN_SECONDS=0
      - ZEEBE_REDIS_DELETE_AFTER_ACKNOWLEDGE=false
      # - ZEEBE_REDIS_CLEANUP_CYCLE_IN_SECONDS=0
      - ZEEBE_LOG_LEVEL=debug
    env_file:
      - .env
    ports:
      - "26500:26500"
      - "9600:9600"
    networks:
      - onboarding_network
    volumes:
      - ./redis/application.yaml:/usr/local/zeebe/config/application.yaml
      - ./zeebe-data:/usr/local/zeebe/data

  redis:
    container_name: redis
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - ./redis-data:/data
    networks:
      - onboarding_network

  simple-monitor:
    container_name: zeebe-simple-monitor
    image: ghcr.io/camunda-community-hub/zeebe-simple-monitor:2.7.2
    environment:
      - zeebe.client.broker.gateway-address=zeebe:26500
      - zeebe-importer=redis
      - zeebe.client.worker.redis.connection=redis://redis:6379
    ports:
      - ${MONITOR_PORT}:8082
    depends_on:
      - zeebe
    networks:
      - onboarding_network

Here is the debug log after start:
io.camunda.zeebe.broker.exporter.redis - Starting Redis exporter with configuration: [remoteAddress='Optional[redis://redis]', useClusterClient='false', enabledValueTypes='', enabledRecordTypes='', format='protobuf', name='zeebe', cleanupCycleInSeconds=0, minTimeToLiveInSeconds=0, maxTimeToLiveInSeconds=0, deleteAfterAcknowledge=false, ioThreadPoolSize=8, batchSize=250, batchCycleMillis=500]

io.camunda.zeebe.broker.exporter - Set event filter for exporters: ExporterEventFilter{acceptRecordTypes={COMMAND_REJECTION=true, SBE_UNKNOWN=true, EVENT=true, NULL_VAL=true, COMMAND=true}, acceptValueTypes={MESSAGE_START_EVENT_SUBSCRIPTION=true, PROCESS_INSTANCE_MIGRATION=true, JOB_BATCH=true, MESSAGE=true, RESOURCE_DELETION=true, COMMAND_DISTRIBUTION=true, ESCALATION=true, MESSAGE_BATCH=true, USER_TASK=true, CHECKPOINT=true, DECISION=true, PROCESS_INSTANCE_MODIFICATION=true, DEPLOYMENT_DISTRIBUTION=true, COMPENSATION_SUBSCRIPTION=true, JOB=true, PROCESS_INSTANCE_RESULT=true, DECISION_REQUIREMENTS=true, SIGNAL=true, PROCESS_EVENT=true, TIMER=true, ERROR=true, DEPLOYMENT=true, PROCESS_MESSAGE_SUBSCRIPTION=true, FORM=true, PROCESS_INSTANCE=true, INCIDENT=true, SBE_UNKNOWN=true, VARIABLE_DOCUMENT=true, DECISION_EVALUATION=true, NULL_VAL=true, PROCESS=true, MESSAGE_SUBSCRIPTION=true, PROCESS_INSTANCE_BATCH=true, VARIABLE=true, PROCESS_INSTANCE_CREATION=true, SIGNAL_SUBSCRIPTION=true}}

Well, most probably not an exporter issue, I solved it by adding mysql for persistence. Let's not waste any more time with this.


Introduce reference implementation for standard EKS cluster using Terraform

The core function of this entire repository is to describe an Azavea-standard Kubernetes deployment.  What are the hardware, system, and application requirements that meet our minimum needs?  What kind of interface for deploying this (potentially complex) infrastructure should we provide?  How should users of this infrastructure interact with it as they deploy their own custom applications?  These are some of the questions that we will need to answer in due time as we learn more about this space.
This PR is an initial answer to how we should proceed, suggesting one potential method for deploying a Kubernetes cluster to AWS.  The approach taken here is an iteration on a Terraform-based deployment that has been used for other projects at Azavea, which is hopefully a refinement of those previous efforts, eventually offering a standard cluster architecture that can be targeted by application-specific repositories that wish to place resources onto company-wide clusters.  The shape of these standard clusters is emerging, but not yet fixed.  See the documentation in this repo for more details.
The Terraform code in this PR has been segmented into several stages: (1) configuring the cluster hardware and API access, including OIDC for IRSA and some RBAC setup; (2) setting up basic cluster services, in this case, Karpenter, and possibly an ingress controller; and (3) provisioning system-wide applications, beginning with Franklin.
This basic setup is delivered through the use of an updated STRTA infrastructure.  The standard approach to deployment will consist of executing cibuild followed by cipublish.  The latter script will be aware of both the AWS region that we are targeting and the target environment.  (The reference deployment of this system currently lives on us-west-2, with only a staging environment.)  I've also improved the script infrastructure for iterating on these deployments, offering a console script that facilitates interaction with the infra script during development.
The basic structures suggested by this PR's contributions are to be considered as a starting point for future discussions as we develop best practices in the future.

This is still a bit WIPpy.  Some amount of work is still required to

[ ] Figure out how to grant RBAC roles to users (the Terraform EKS module has a sequencing issue with the aws-auth ConfigMap not yet existing when custom user maps are supposed to be applied)
[ ] Create a route53 alias to the Franklin ELB

There are probably other requirements that I'm not currently remembering.

Another thing to update:

[ ] Roll the infrastructure module into stage 0-hardware

I've deferred the outstanding tasks in this PR to separate issues so that I can just merge the feature.  This code, after all, does work as desired, even if it isn't perfect.  We can improve things at a later date.


add ability to specify the vue-scrollactive wrapper html tag

As per the name suggest,
This pr add a new property named tag And handle correctly the ability to specify a a tag for the component

Your welcome.
Thank you for the well tailored package :)


Date filter not working with compressed files

sudo zcat -f /var/log/nginx/access.* | sudo sed -n '/30/Jun/2020/,/30/Jun/2020/ p'  | goaccess -a --log-format=COMBINED

Please elaborate on your question. Also, if it's for the same date, you could simple use grep e.g.,
sudo zcat -f /var/log/nginx/access.* | grep '30/Jun/2020' | goaccess - -a --log-format=COMBINED


Add docs for Calico, set the annotation by default.

Please provide a description of this PR:
Mostly readme additions, attempting to simplify the install for Calico.
For Ztunnel, the default is set to <IP_ADDRESS> - we have other docs suggesting a more complex install that
only allows impersonation for the pod range, but ztunnel may need to also set it for other clusters,
east-west and even ingress. So far not clear how IPv6 will be handled.

@costinm: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
aefd15405ac7faaf42533e3b7597ed85a14a37f1
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@costinm: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
c86e5ad6a3a2b19c8fb0b1dccd48da318930e227
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Navigation issues

On a virigin rails app made purely to test this gem, I can't get any of the navigation components show on the Zurb website working. Is this a known problem?

Can you put your app on GitHub and share the link here please?

Certainly. I can do that this evening.
--
Jeremy Whitman

On May 4, 2017, at 1:46 PM, Arnaud Thomas Desessarts<EMAIL_ADDRESS>wrote:
Can you put your app on GitHub and share the link here please?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Here you go Arnaud,
https://github.com/jeremyawhitman/rails_foundation
On Thu, May 4, 2017 at 2:16 PM, Jeremy Whitman<EMAIL_ADDRESS>wrote:

Certainly. I can do that this evening.
--
Jeremy Whitman
On May 4, 2017, at 1:46 PM, Arnaud Thomas Desessarts <
<EMAIL_ADDRESS>wrote:
Can you put your app on GitHub and share the link here please?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zurb/foundation-rails/issues/225#issuecomment-299304023,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL01PcZohUxG2Bk43RTx9jWOtoQyOSL_ks5r2jkwgaJpZM4NRLSf
.

I don't have any issue with the app your provided.
You may have forgotten to restart your Rails server after installing the gem?

I do apologize, I should have looked at that a bit harder at the app
yesterday before I sent it.
The problem I'm having is with any menu that has a drop down in it.
I have updated the application on git and I also attached a screenshot of
the problem.
It is using a copy and paste of the responsive menu from this page.
http://foundation.zurb.com/sites/docs/responsive-navigation.html
with some internal links added to replace the defaults.
I very much appreciate your help on this.
On Fri, May 5, 2017 at 2:34 AM, Arnaud Thomas Desessarts <
<EMAIL_ADDRESS>wrote:

I don't have any issue with the app your provided.
You may have forgotten to restart your Rails server after installing the
gem?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zurb/foundation-rails/issues/225#issuecomment-299422355,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL01PQd8UbgBE9turVUe--s7VUb_LhpJks5r2u0XgaJpZM4NRLSf
.

Your problem comes from javascript not working due to turbolinks
I spent few hours to make it works
Follow this issue here to solve your problem https://github.com/zurb/foundation-rails/issues/201
If you're on Rails 5.1, you'll need to bring jQuery again and so remove the new ujs from Rails 5.1
//= require jquery //= require jquery.turbolinks //= require jquery_ujs //# require rails-ujs


Add tests to root dirs to allow checking imports in tests

It will make my work-life so much better, because people mess up the order of imports all the time.

I tested it on our repository and it works great!

Released in v0.1.5


fix Issue 13007 - Wrong x86 code: long negate

https://issues.dlang.org/show_bug.cgi?id=13007
I could not duplicate the problem in the test case given (it's very tricky to reproduce), but the fix I made should definitely fix it. The problem is the scheduler is re-ordering the instructions, the fix is to mark the one where the flags result matters, then the scheduler won't re-order it.

@MartinNowak this should go into 2.068 the next time it's updated.

std.net.curl again. It was a mistake to include curl.

Makes sense.

Auto-merge toggled on


Systemd Integration and Docs

Thanks for the awesome project. Since it has made my life so much easier on self-hosting some services I wanted to contribute back some of the stuff that I had setup to make it easier.
This PR adds a systemd service file for the server & and a template service file for clients.
I have also written up how to use it all in the systemd-integration.md file.
Just let me know if there is anything missing or any changes you would like.

Hi @voidrot. Thanks for the contribution; systemd integration is very useful. I'd be happy to merge this after a few modifications:

The official name is boringproxy, not BoringProxy. Please rename it in the new docs.
Create a docs directory and move the new md file into there. I've already been bloating the root directory too much...
Create a systemd directory and move the unit files into there. The scripts directory is mostly for runnable tools.
I really prefer not to encourage people to run commands as root, including curl and wget. I know you mention it at the bottom, but can you re-arrange things so root isn't used for anything except what is required, ie creating the systemd files and enabling the services?

Thanks again, and let me know if you have any questions.

Hi @voidrot. Thanks for the contribution; systemd integration is very useful. I'd be happy to merge this after a few modifications:

The official name is boringproxy, not BoringProxy. Please rename it in the new docs.
Create a docs directory and move the new md file into there. I've already been bloating the root directory too much...
Create a systemd directory and move the unit files into there. The scripts directory is mostly for runnable tools.
I really prefer not to encourage people to run commands as root, including curl and wget. I know you mention it at the bottom, but can you re-arrange things so root isn't used for anything except what is required, ie creating the systemd files and enabling the services?

Thanks again, and let me know if you have any questions.

@anderspitman Updated as requested. I apologize for the project name, bad habits with my keyboard.
The systemd unit files have been updated to run as the boringproxy user and group as the default and moved into the systemd directory.
The commands in the docs have sudo prefixed as an assumption that the user will be running the commands from a standard user account that has sudo access. other than the setup commands nothing else requires root/sudo privileges.
I also moved the systemd doc into the docs directory and also reworked it a bit to try and make it easier to understand.

@anderspitman Updated as requested. I apologize for the project name, bad habits with my keyboard.
The systemd unit files have been updated to run as the boringproxy user and group as the default and moved into the systemd directory.
The commands in the docs have sudo prefixed as an assumption that the user will be running the commands from a standard user account that has sudo access. other than the setup commands nothing else requires root/sudo privileges.
I also moved the systemd doc into the docs directory and also reworked it a bit to try and make it easier to understand.

Looks much better, thanks. Only thing I would still request changed is the sudo curl and sudo wget. curl and wget are both fairly complex programs that could have security bugs. Would you mind splitting it into separate commands so you download to a temporary location without sudo and then sudo cp the files to the final location?

Looks much better, thanks. Only thing I would still request changed is the sudo curl and sudo wget. curl and wget are both fairly complex programs that could have security bugs. Would you mind splitting it into separate commands so you download to a temporary location without sudo and then sudo cp the files to the final location?

One option might be to put the service files in the binary itself, just as a const systemdUnit = [...], and then print that with boringproxy systemdand/orboringproxy systemd > path/to/whatever`.
Then you don't need to fetch anything from the network with anything, and just the boringproxy binary is enough.
You could even add some options to automate steps like:

Edit<EMAIL_ADDRESS>and replace the server address bp.example.com with the domain that the server is located at. EX: -server proxy.bpuser.me:

$ boringproxy systemd -server proxy.bpuser.me

Will print the unit file with the correct address printf'd in.

One option might be to put the service files in the binary itself, just as a const systemdUnit = [...], and then print that with boringproxy systemdand/orboringproxy systemd > path/to/whatever`.
Then you don't need to fetch anything from the network with anything, and just the boringproxy binary is enough.
You could even add some options to automate steps like:

Edit<EMAIL_ADDRESS>and replace the server address bp.example.com with the domain that the server is located at. EX: -server proxy.bpuser.me:

$ boringproxy systemd -server proxy.bpuser.me

Will print the unit file with the correct address printf'd in.

Actually, I see now it already uses go-rice to embed the template files, so could use that as well if you want to go down this route. Go 1.16 will make this easier with go:embed as well.

Actually, I see now it already uses go-rice to embed the template files, so could use that as well if you want to go down this route. Go 1.16 will make this easier with go:embed as well.

@arp242 I like the idea, but would prefer to keep the systemd stuff in the docs for now. Docs can be removed at any time, but built-in commands become part of the public API that must be maintained.
This does make me think though. @voidrot rather than having separate files for the systemd units, what do you think about just putting the examples in the markdown docs and telling them to copy/paste it?

@arp242 I like the idea, but would prefer to keep the systemd stuff in the docs for now. Docs can be removed at any time, but built-in commands become part of the public API that must be maintained.
This does make me think though. @voidrot rather than having separate files for the systemd units, what do you think about just putting the examples in the markdown docs and telling them to copy/paste it?

Yeah, fair enough; just a suggestion :-)

Yeah, fair enough; just a suggestion :-)

@anderspitman yeah I can update the commands, also would you want me to throw it all into a bash script that is run as such wget https://<raw github link> | bash

@anderspitman yeah I can update the commands, also would you want me to throw it all into a bash script that is run as such wget https://<raw github link> | bash

@voidrot nah I think it's fine as-is. Thanks again!

@voidrot nah I think it's fine as-is. Thanks again!


Continuation lines in REPL don't work as expected

As a coffeescript newb, under both Mac OSX and Linux with CoffeeScript versions 1.1.1 and current branch master head,
attempt to continue line in the REPL results in a parse error:

coffee
coffee> obj =
Error: In repl, Parse error on line 1: Unexpected ')'
at Object.parseError (/Users/kludge/Downloads/github.com/jashkenas/coffee-script/lib/coffee-script/parser.js:473:11)
at Object.parse (/Users/kludge/Downloads/github.com/jashkenas/coffee-script/lib/coffee-script/parser.js:522:22)
at /Users/kludge/Downloads/github.com/jashkenas/coffee-script/lib/coffee-script/coffee-script.js:41:20
at Object.eval (/Users/kludge/Downloads/github.com/jashkenas/coffee-script/lib/coffee-script/coffee-script.js:128:10)
at Interface. (/Users/kludge/Downloads/github.com/jashkenas/coffee-script/lib/coffee-script/repl.js:116:40)
at Interface.emit (events.js:67:17)
at Interface._onLine (readline.js:162:10)
at Interface._normalWrite (readline.js:236:10)
at ReadStream. (readline.js:75:12)
at ReadStream.emit (events.js:88:20)
coffee>

Expected behavior is:
coffee> obj =
......> "a"
'a'
coffee>

I couldn't reproduce with node 0.6.x, but I could reproduce on 0.4.8. I'm not sure what may have changed between those versions that would change the REPL behaviour. Since CS only supports 0.6.0+, I'm thinking this is a wontfix.

I'm working with node v0.7.0-pre, not sure what it's based on but some behavior may have reverted to a former state.  Maybe an "early warning"?

If your patch in #2106 fixes it, that'd do fine.


document and explain all installs before the steps

in trying to use this guide i have had to stop and start many times to install more software that is required to do a single database migration. so start by telling the user that they need toi download and install the migration tool, the hosted agent and the dacpac tool so that we can install all of them BEEFORE we are half way thru the first tools wizzard!
so many time i have had to exit install and then come back and then get 3 steps farther and then another install / stop and re-start...

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

ID: 4d07acc7-3a8c-13f9-abf7-f7effb7700f2
Version Independent ID: c236823a-06c3-2803-9cde-5dc5cc95059f
Content: Tutorial: Migrate SQL Server to Azure SQL Managed Instance online by using Azure Data Studio - Azure Database Migration Service
Content Source: articles/dms/tutorial-sql-server-managed-instance-online-ads.md
Service: dms
GitHub Login: @croblesm
Microsoft Alias: roblescarlos

@DennyFiguerres
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

also i have one other item:   in trying to use that tool in the end i am not even sure it was needed !
i had to install the dacpac / backpac tool and it copied my database to azure.
so why did i even spend time with the rest of the steps ?
export baccpack to a file.
import the baccpack to the azure server.... done.
so much simpler.

Hi @AjayBathini-MSFT, thanks for the heads up. @abhims14, and I will take a look at @DennyFiguerres feedback.

Updated documentation https://learn.microsoft.com/en-us/azure/dms/tutorial-sql-server-managed-instance-online-ads#prerequisites
Now you can perform Schema migration to Azure SQL DB using DMS only. Refer:
https://techcommunity.microsoft.com/t5/microsoft-data-migration-blog/public-preview-schema-migration-for-target-azure-sql-db/ba-p/3990463

#please-close


(packaging) Add Artix to pacman.rb

Add Artix to the list of Arch-based distros. This will greatly simplify the process of packaging Puppet for Artix.

Can one of the admins verify this patch?

I rebased.

Can someone please look at this? I'm the Artix package maintainer that packages puppet and currently I have to patch this file to package it. I signed the CLA and I believe I followed all the contribution guidelines. Any feedback would be greatly appreciated.


Julia implementation

Implementation of the notebooks in Julia

Wow, this looks amazing! I wonder if we should merge these into the ThinkBayes2 repo, or start a ThinkBayesJulia repo. What do you think?

Up to you... that was a learning project for me (mostly: learning Julia).
Feel free to use this code in whatever way you think is best.
No copyright.


Add Github Project Link on website

Add the GitHub Project link in the Navbar or the footer of the website so that visitors may view the GitHub repo and they can contribute to the project if they wanted to.

Hi @arpitghura, can you assign this to me?

hey i want to work on this issue

hey can you assign it to me

Hey @arpitghura,
Hope you're doing great!
I am interested in working on the code part too of this repo. I can work on this issue faster.
Kindly assign it to me.

Hey @arpitghura, is it okay to replace either Typing Test or Practice in the navbar with the GitHub Icon and Link, since both redirect to the same page?

Hey @arpitghura, is it okay to replace either Typing Test or Practice in the navbar with the GitHub Icon and Link, since both redirect to the same page?

Okay Replace typing test and add GitHub icon with link at the end of all links.


How to obtain the dataset?

On the official website of imageclef there is no information on how to obtain the BirdCLEF2017 dataset. Where does one can obtain it from in the right format to use with your code?

They can be obtained from the BirdCLEF2018 challenge here: https://www.crowdai.org/clef_tasks/5/task_dataset_files?challenge_id=24 which apparently uses the same dataset as BirdCLEF2017.


Test Starboard on Amazon EKS

Configure Starboard CLI with an Amazon EKS and walk through the Getting Started steps. Note any issues and problems that you might have.

Hey @danielpacak, I'd quite like to take a look at this. Shall I note what I find in this thread?

Hi. I tested the Getting Started steps on an Amazon EKS cluster (using EC2 node pool). No issues.

@sam-robson I think we can note down the validation steps in in this thread and create follow up issues if we found some issues. And it would be great to see some evidence that you've actually run those tests such as logs dump or screencast if you will.

@borkod Would you provide more details about your EKS cluster and logs dump?

Hi.
I don't have the cluster any longer. I just provisioned an EKS cluster to test the Getting started steps and then destroyed it. IIRC there wasn't anything special about it. EKS cluster with 3 EC2 instances for node pool.
I don't think I ran kube-bench or kube-hunter.
The only output I have are the audit report and vulnerability report:
eks-reports.zip
I can repeat the the test to see if there are any issues with kube-bench and kube-hunter (similar to issues I saw on AKS). Let me know if there are any specific logs I can provide once I repeat the test (e.g. kube-hunter job logs ?)

I had a cluster in EKS, and AKS I could tested it and validate too

Hi @danielpacak
I tested in EKS, no issues. This is the details and steps:
k8s version: v1.17.9-eks-a84824
Starboard Version: {Version:0.6.0 Commit:ad6b9b99931d7524806f79b1329fdda82c75a715 Date:2020-10-14T20:14:11Z}

starboard sample deployment nginx
starboard kube-bench
starboard kube-hunter
starboard polaris
starboard config

Thank you @borkod and @krol3 for testing. I assume that there're no major issues when using Starboard with Amazon EKS and will proceed with closing this issue.


Feature request: skip methods for precompilation?

Hi,
I have been looking at a very strange allocation in searchsorted or insorted used in my package Vlasiator.jl. I notice that this somehow relates to the usage of PrecompileSignatures.jl: if I manually precompile the methods detected by PrecompileSignatures.jl instead of relying on @precompile_signatures(Vlasiator), the strange allocation of tiny vectors is gone.
I checked methods detected for precompilation from PrecompileSignatures.precompilables(Vlasiator): when I skip the ones that looks like
 Tuple{Vlasiator.var"##fillmesh#173", Bool, Bool, typeof(Vlasiator.fillmesh), MetaVLSV, Vector{String}}
 Tuple{Vlasiator.var"##write_vlsv#182", Bool, typeof(write_vlsv), String, String, Vector{Tuple{VecOrMat, String, VarInfo}}}
 Tuple{Vlasiator.var"##write_vtk#180", Vector{String}, Bool, Bool, Bool, Bool, typeof(write_vtk), MetaVLSV}
 Tuple{typeof(Vlasiator.__init__)}

It may be hard for me to fully understand the situation, but my feeling is that PrecompileSignatures.jl is aggressively searching for methods that can be precompiled that occasionally leads to unexpected behaviors. Is it possible to skip certain methods for precompilation? For example, I don't know why __init__ needs to be precompiled.
For now I may simply explicitly list all the methods that I think are valid suggested by precompilables. If you have any insights into this issue, please let me know!

I have been looking at a very strange allocation in searchsorted or insorted used in my package Vlasiator.jl. I notice that this somehow relates to the usage of PrecompileSignatures.jl: if I manually precompile the methods detected by PrecompileSignatures.jl instead of relying on @precompile_signatures(Vlasiator), the strange allocation of tiny vectors is gone.

Could you provide a MWE? If precompile manages to create a different method than what is created by running via the just-in-time compiler then that would be a Julia bug

It may be hard for me to fully understand the situation, but my feeling is that PrecompileSignatures.jl is aggressively searching for methods that can be precompiled that occasionally leads to unexpected behaviors. Is it possible to skip certain methods for precompilation?

Preferably, I would like to fix those problems instead of asking users to fine-tune such problems. In theory, precompile shouldn't have negative effects apart from some allocations

I tried to come up with a MWE, but I couldn't reproduce the error without using the method in my package. And what makes it strange is that for small data files I don't see allocations; it only happens for large data sizes.
Here is how I reproduce the issue:

Check out current master branch of Vlasiator

git clone https://github.com/henry2004y/Vlasiator.jl.git

After the end of precompilations, add the following

# Extra allocation triggered by PrecompileSignatures
precompile(fillmesh, (MetaVLSV, String))
precompile(fillmesh, (MetaVLSV, Vector{String}))

Download the test file from my Google Drive
Run the following julia script

using Vlasiator

file = "bulk.0000003.vlsv"
meta = load(file)
@time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);

On my Linux laptop,
# Master
julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.389661 seconds (468.68 k allocations: 45.322 MiB, 1.75% gc time, 85.16% compilation time)

julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.078479 seconds (496 allocations: 20.267 MiB, 12.25% gc time)

# Master + two extra precompilations of fillmesh
julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.689447 seconds (3.64 M allocations: 137.799 MiB, 2.88% gc time, 87.91% compilation time)

julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.100166 seconds (2.30 M allocations: 67.053 MiB, 15.35% gc time)

Note that on current master I removed
using PrecompileSignatures: @precompile_signatures
@precompile_signatures(Vlasiator)

Thanks for the extensive information! Before I go in and download the files and set everything up, could you double check that the problem persists if you benchmark with @time @eval instead of @time? For compilation time, use @time @eval as is described in the docstring of @time:

In some cases the system will look inside the @time expression and compile some of the called code before execution of the top-level expression begins. When that happens, some compilation time will not be counted. To include this time you can run @time @eval ....

and which Julia version are you running?

I am running on Julia v1.7.3. Results with @time @eval:
# Master 1st time
1.288102 seconds (3.02 M allocations: 179.112 MiB, 4.44% gc time, 93.05% compilation time)
# Master 2nd time
0.107818 seconds (609 allocations: 20.273 MiB, 19.43% gc time)
# Master + 2lines 1st time
1.105118 seconds (3.66 M allocations: 138.418 MiB, 2.61% gc time, 90.55% compilation time)
# Master + 2lines 2nd time
0.117375 seconds (2.30 M allocations: 67.058 MiB, 18.13% gc time)

Hmm there is definitely something interesting going on there. Thanks for letting me know. Unfortunately, I will likely not investigate this further. The first times are as expected namely a large decrease in allocations and a small decrease in running time. The running time should become much lower once Julia caches binaries too (https://github.com/JuliaLang/julia/pull/44527).
Till that time, what you can do is to add a real-time workload to your package too as is described in https://timholy.github.io/SnoopCompile.jl/stable/snoopi_deep_parcel/. See also the Makie example in the README of this repository. The workload can trigger compilation on methods that PrecompileSignatures can’t hit and PrecompileSignatures can trigger compilation on methods that the workload doesn’t hit

Thanks for the tips! My gut feeling is that somehow PrecompileSignatures in my case accidentally triggers an undesired precompilation that interferes the real-time workload. I will look at SnoopCompile a bit more careful and see what I can achieve.
However, for now it may be still useful to skip certain methods in @precompile_signatures as a temporary solution. I still have no idea what the real cause is.

I will look at SnoopCompile a bit more careful and see what I can achieve.

Yes SnoopCompile is useful and generic profiling can also help a lot with StatProfilerHTML.jl.
Also try Julia 1.8. It's very likely that the problem is solved there. The compiler team is really doing great stuff at the language-side.

Indeed! I just tried Julia v1.8.0-rc1:
# master + 2lines for precompilation
julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.440889 seconds (932.38 k allocations: 68.000 MiB, 8.31% gc time, 89.19% compilation time)

julia> @time data, vtkGhostType = Vlasiator.fillmesh(meta, ["proton/vg_blocks"]; verbose=true, skipghosttype=false);
[ Info: scanning AMR level 0...
[ Info: reading variable proton/vg_blocks...
[ Info: scanning AMR level 1...
[ Info: reading variable proton/vg_blocks...
  0.048697 seconds (457 allocations: 20.265 MiB)

Can't wait for the official release of Julia v1.8!

One more question: what is the difference between the SnoopCompile way of forcing precompilation by executing code, and precompile as either written explicitly or generated by PrecompileSignatures?


Issues on installing mxnet on R with GPU support on Windows 10

I am attempting to install mxnet on R with GPU support on windows 10, but encountered numerous errors during the process.
After some digging, I have identified the root of the issues. Overall, the installation file and source code for R is a total mess. I followed the instruction in this link http://mxnet.io/get_started/windows_setup.html. After running R CMD INSTALL --no-multiarch R-package on the command prompt, the first issue encountered is this:

installing to library 'D:/R/R-3.3.3/library'
installing source package 'mxnet' ...
ERROR: a 'NAMESPACE' file is required
removing 'D:/R/R-3.3.3/library/mxnet'`

After resolving this by referring to this link http://stackoverflow.com/questions/17196225/error-a-namespace-file-is-required, another issue occuered due to missing "nnvm" file. Error as follow:

installing to library 'D:/R/R-3.3.3/library'
installing source package 'mxnet' ...
** libs
c:/Rtools/mingw_64/bin/g++  -I"D:/R/R-3.3.3/include" -DNDEBUG -I../inst/include   -I"D:/R/R-3.3.3/library/Rcpp/include" -I"d:/Compiler/gcc-4.9.3/local330/include"     -O2 -Wall  -mtune=core2 -c mxnet.cc -o mxnet.o
In file included from mxnet.cc:9:0:
./ndarray.h:11:24: fatal error: nnvm/c_api.h: No such file or directory
#include <nnvm/c_api.h>
^
compilation terminated.
make: *** [mxnet.o] Error 1
Warning: running command 'make -f "Makevars.win" -f "D:/R/R-3.3.3/etc/x64/Makeconf" -f "D:/R/R-3.3.3/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="mxnet.dll" WIN=64 TCLBIN=64 OBJECTS="executor.o export.o io.o kvstore.o mxnet.o ndarray.o symbol.o"' had status 2
ERROR: compilation failed for package 'mxnet'
removing 'D:/R/R-3.3.3/library/mxnet'

After resolving this by downloading the nnvm from some other place, then there is issue with source code. The source code apparently is missing some functions. Error as follow:

installing to library 'D:/R/R-3.3.3/library'
installing source package 'mxnet' ...
** libs
c:/Rtools/mingw_64/bin/g++  -I"D:/R/R-3.3.3/include" -DNDEBUG -I../inst/include   -I"D:/R/R-3.3.3/library/Rcpp/include" -I"d:/Compiler/gcc-4.9.3/local330/include"     -O2 -Wall  -mtune=core2 -c mxnet.cc -o mxnet.o
In file included from mxnet.cc:8:0:
./base.h: In function 'std::string mxnet::R::toPyString(const string&, const RObject&)':
./base.h:276:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (size_t i = 0; i < vec.size(); ++i) {
^
./base.h: In function 'std::vector mxnet::R::Dim2InternalShape(const Rcpp::Dimension&)':
./base.h:340:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (size_t i = 0; i < rshape.size(); ++i) {
^
mxnet.cc: In function 'void mxnet::R::ProfilerSetConfig(int, const string&)':
mxnet.cc:27:53: error: 'MXSetProfilerConfig' was not declared in this scope
MX_CALL(MXSetProfilerConfig(mode, filename.c_str()));
^
./base.h:81:14: note: in definition of macro 'MX_CALL'
int e = (func);
^
mxnet.cc: In function 'void mxnet::R::ProfilerSetState(int)':
mxnet.cc:31:35: error: 'MXSetProfilerState' was not declared in this scope
MX_CALL(MXSetProfilerState(state));
^
./base.h:81:14: note: in definition of macro 'MX_CALL'
int e = (func);
^
make: *** [mxnet.o] Error 1
Warning: running command 'make -f "Makevars.win" -f "D:/R/R-3.3.3/etc/x64/Makeconf" -f "D:/R/R-3.3.3/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="mxnet.dll" WIN=64 TCLBIN=64 OBJECTS="executor.o export.o io.o kvstore.o mxnet.o ndarray.o symbol.o"' had status 2
ERROR: compilation failed for package 'mxnet'
removing 'D:/R/R-3.3.3/library/mxnet'

Overall, the installation file and source code for R is pretty sloppy. Would appreciate if anyone have any means on installing mxnet.

After some fiddling, I realised that the newest version of mxnet might not support R. To install mxnet in R on windows, I have to use the windows binaries along with the source code that is released on the same date.
This is actually kind of disappointing. It would be great if mxnet for R is kept up to date.

Please follow my instruction from https://gist.github.com/thirdwing/89aa9bfc588ade138496e6932072152c
The installation has been test on a Windows Server machine with GPU. It will be merged into the documents later.