Merit charts

Related and please merge first: https://github.com/quintel/etsource/pull/1108

The pricing and flexibility charts look good. I'm having an issue with the hourly supply chart though:
It loads with "Jan 01 - Jan 07" selected, but in fact displays the whole year (possibly without downsampling?), and the dashboard at the bottom of the page remains greyed out, even after the chart has loaded.

There appears to be a JS error when the data loads (which can be reproduced by changing the selected week):

I played with some of the supply and flexibility sliders (added a lot of wind production, and P2P batteries and EV). If you can't reproduce, let me know and I'll see if it's specific to my scenario.
--
I'm a bit concerned about the amount of data needed for the load chart; about 3.7MB for me. That's quite a lot to be transferring every time a user moves a slider, especially on a slow connection. However, it might be a bit better in production where the JSON will be compressed. Let's proceed but keep our eye on it; if the feature is popular we may have to figure out ways to send less data.

There appears to be a JS error when the data loads (which can be reproduced by changing the selected week):

I'm trying really hard to break it locally. Or should I use the beta version of et-engine?

Might be specific to my scenario then, I'll check it out. These are the inputs being used (it's all local, not on beta):
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
households_flexibility_p2p_electricity_market_penetration: 32.4
transport_car_using_electricity_availability: 38.9
number_of_energy_power_wind_turbine_coastal: 1315.4
number_of_energy_power_wind_turbine_inland: 16574.4

I literally copy/pasted your inputs into my scenario and my chart looks as:

Date selector also works. I'll check Chrome, maybe it's a browser thing? (Highly unlikely but you never know).

Doesn't seem to be scenario or browser specific. I tried a brand new scenario in Firefox and got the same error:

Date selector also works. I'll check Chrome, maybe it's a browser thing? (Highly unlikely but you never know).

Sorry, let me clarify. The problem I have is with the "Merit order hourly supply" chart; the flexibility and price charts work perfectly so I think it's specific to the hourly load chart.

Merit order hourly supply

That one also works just fine.. let me try to break it. Is the updateData() method line 85. Is that the totalDemand or the chartData throwing an error?

I think I found something. The loads for a technology may be an empty array, []. If I change merit_transformator.js line 26 to:
if (this.scope.stack && this.data.length) {
  // ...

... then the problem is solved. Perhaps it's trying to down-sample an empty array?

Wait, do you have a total demand output element serie in your database for the hourly supply?

@antw that's it. I just set the is_target_line attribute for the total_demand output_element_serie for merit order hourly supply to false and I got the same error you have 😄


If started with GDM, pressing ctrl-alt-f will freeze Hyprland.

Steps to reproduce

Launch Hyprland session from GDM.
Get current vt number with fgconsole, e.g. 3
press ctrl+alt+f3
Hyprland freezes

Notes
Cannot be reproduced in sway and gnome-shell.
Can be reproduced in a virtual machine using virgl.

isnt that a gdm issue

I am not sure if this is a GDM bug because mutter, kwin and other compositors like sway, cage do not behave like this.

This is also reproducible with ly tui display manager

Replicated as well with GDM

can someone ssh into a frozen session like this and show the stacktrace of the hang?

https://github.com/hyprwm/Hyprland/blob/4986d74ef201171a930c312a8e3b72a22d9b84ee/src/managers/KeybindManager.cpp#L520-524
In a hyprland session started from GDM, fd 0 is /dev/null', thus ioctl VT_GETACTIVE fails with inappropriate ioctl for device' when using 0 as `fields'.
As the ioctl failed, the ttynum remains 0.
https://github.com/hyprwm/Hyprland/blob/4986d74ef201171a930c312a8e3b72a22d9b84ee/src/managers/KeybindManager.cpp#L531-L540
ttynum == TTY will evaluate to true even if TTY is the VT number of Hyprland, causing g_pCompositor->m_bSessionActive = false, effectively disabling both keybinding handling and graphical updates.


Suggestion: Remove outdated griffin hash implementation

The current Griffin hash implementation was a deviation from an older design of the primitive family, which latest design has been completely broken for high branch count (typically the number of branches at use here), see https://eprint.iacr.org/2024/347.pdf (table 1, p18).
As such, I'd recommend simply removing the primitive from the library out of caution. I can open such PR if needed.

Thank you for bringing this up!

I can open such PR if needed.

That would be awesome!


build(config): update makefile and mergify for 2.3 release

Welcome to Cryostat! 👋
Before contributing, make sure you have:

[x] Read the contributing guidelines
[x] Linked a relevant issue which this PR resolves
[x] Linked any other relevant issues, PR's, or documentation, if any
[x] Resolved all conflicts, if any
[x] Rebased your branch PR on top of the latest upstream main branch
[x] Attached at least one of the following labels to the PR: [chore, ci, docs, feat, fix, test]
[x] Signed all commits: git commit -S -m "YOUR_COMMIT_MESSAGE"

Related to https://github.com/cryostatio/cryostat/issues/1459

oh thanks!! Updated now :))

Updated 'createAt' field for CSV tho I think the bundled CSV is always up-to-date?


[CI] Bump up owasp version

Purpose of the pull request
Bump up owasp version due to Versions earlier then 9.0.0 are no longer supported and could fail to work after Dec 15th, 2023.
https://github.com/jeremylong/DependencyCheck?tab=readme-ov-file#900-upgrade-notice

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (dev@4a76a07). Learn more about missing BASE report.

:exclamation: Current head 2898aa6 differs from pull request most recent head 096c67b
Please upload reports for the commit 096c67b to get more accurate results.

Additional details and impacted files
@@          Coverage Diff           @@
##             dev   #16187   +/-   ##
======================================
  Coverage       ?   41.01%
  Complexity     ?     5148
======================================
  Files          ?     1399
  Lines          ?    44877
  Branches       ?     4759
======================================
  Hits           ?    18406
  Misses         ?    24663
  Partials       ?     1808

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


???

I'm searching for a step by step tutorial to install OpenDroneMaps (ODM) on windows. The tutorial I found in the internet is very simple and I can not make it run on my computer.

Hi @zepaulopl -- check out https://github.com/OpenDroneMap/odm_vagrant for running it inside a VM on Windows.

It´s very simple... i need more detailed... if possible.

@smathermather I am trying to follow the directions as well and they could use a little improvement for a newb like myself.
If I can get it figured out I'll make a pull request to improve the step-by-step some.
Thank you for everything so far!

@zepaulopl
I started to clarify the step by step instructions some, maybe you could try my version and see if that gets you any farther:
https://github.com/bgirardot/odm_vagrant/blob/bgirardot-steps-suggestion/README.md
I am not quite done yet, but that covers most of the directory confusion in the original I think.

Outstanding, @bgirardot. Submit a pull request, and I'll put it in.


[Event Request] Table 7335 Bin Template - OnSetUpNewLineOnBeforeSetUpNewLine

Hi Team,
In table 7335 we need possibility to replace and avoid using standard code with our own. Having event with handling in the procedure SetUpNewLine, would be perfect solution:

    [IntegrationEvent(false, false)]
    local procedure OnSetUpNewLineOnBeforeSetUpNewLine(var BinTemplate: Record "Bin Template"; var IsHandled: Boolean)

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Compile pattern before creating predicate

The method FieldPredicates.named(string) has a major performance issue. The predicate compiles the name to regex pattern inside the test method. This makes it extremely slow when creating a large number of randomized objects.
Pattern is immutable and thread-safe and can be compiled before creating the predicate. This reduces execution time a lot and also saves quite some memory garbage.

Thanks! 👍


added support for user-defined functions

check if supported feature list needs to be updated

@mfussenegger IMO the sql_features.tsv should be update like so:
T321	Basic SQL-invoked routines			NO
T321	Basic SQL-invoked routines	1	User-defined functions with no overloading	YES
T321	Basic SQL-invoked routines	2	User-defined stored procedures with no overloading	NO
T321	Basic SQL-invoked routines	3	Function invocation	YES
T321	Basic SQL-invoked routines	4	CALL statement	NO
T321	Basic SQL-invoked routines	5	RETURN statement	NO
T321	Basic SQL-invoked routines	6	ROUTINES view	YES
T321	Basic SQL-invoked routines	7	PARAMETERS view	NO

remove udf.enabled setting (there will be  lang_js.enabled setting in the javascript module instead.

Codecov Report

Merging #5343 into master will increase coverage by 0.14%.
The diff coverage is 86.81%.

@@             Coverage Diff              @@
##             master    #5343      +/-   ##
============================================
+ Coverage     82.34%   82.49%   +0.14%
- Complexity    10990    11259     +269
============================================
  Files          1329     1348      +19
  Lines         43393    44322     +929
  Branches       5476     5615     +139
============================================
+ Hits          35733    36563     +830
- Misses         5107     5152      +45
- Partials       2553     2607      +54

Impacted Files
Coverage Δ
Complexity Δ

...java/io/crate/metadata/settings/CrateSettings.java
96.1% <ø> (ø)
35 <0> (ø)
:arrow_down:

...ate/operation/BaseImplementationSymbolVisitor.java
71.42% <0%> (-11.91%)
5 <0> (ø)

...er/src/main/java/io/crate/sql/tree/AstVisitor.java
32.23% <0%> (-0.82%)
39 <0> (ø)

sql/src/main/java/io/crate/analyze/Analyzer.java
96.38% <100%> (+0.18%)
5 <0> (ø)
:arrow_down:

...va/io/crate/action/sql/DDLStatementDispatcher.java
98.38% <100%> (+0.17%)
6 <1> (ø)
:arrow_down:

.../src/main/java/io/crate/sql/parser/AstBuilder.java
94.06% <100%> (+0.19%)
232 <7> (+7)
:arrow_up:

...main/java/io/crate/metadata/doc/DocSchemaInfo.java
87.21% <100%> (+2.81%)
34 <4> (+4)
:arrow_up:

...ate/operation/udf/UserDefinedFunctionResponse.java
100% <100%> (ø)
4 <4> (?)

.../src/main/java/io/crate/executor/task/DDLTask.java
100% <100%> (ø)
2 <1> (ø)
:arrow_down:

sql/src/main/java/io/crate/metadata/Schemas.java
90.99% <100%> (+0.79%)
42 <1> (+3)
:arrow_up:

... and 82 more

Continue to review full report at Codecov.

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

I think we'll need to do something about the documentation, as there is right now no mentioning of the availability (or rather, lack of) the languages.


Breadth First Search Tool

Breadth First Search Tool with trace. It currently only supports cyclic search and not tree.

It took 4 commits, but I did narrow down the files to just what is needed.

All right I'll port the code over in the next commit. Closing this PR.


selinux-module failing on RHEL 7, Makefile not there

Regarding a comment from Pull Request #73
It appears RedHat decided to split selinux into the selinux-policy and selinux-policy-devel packages for RHEL 7, and put /usr/share/selinux/devel/Makefile in the devel package.  I assume this would also affect CentOS 7 and recent versions of Fedora as well.
The .te file gets created but no .mod or .pp file in /usr/share/selinux.
I didn't notice it until recently because the .mod and .pp files were already there, but I think the addition of the prefix caused it to attempt to install the module under a new name and then start giving puppet errors.
RHEL 6 seams to have the Makefile in selinux-policy and as best I can tell there is no selinux-policy-devel for RHEL 6.
Thoughts on the best way to fix this?

I'd suggest that either:

The "package_name" param should be changed to allow a list of packages, which includes selinux-policy-devel on RHEL7-based distros
A separate "module_package_name" param is added and used to include the package only when the selinux::module definition is used.

I'm happy to provide a patch for whichever of these is preferable (or something else :) as I'm adding the package explicitly for now and it would be nice to have the selinux module handle this on my behalf.

Currently the package is policycoreutils-python which causes selinux-policy to install as well.  I have already submitted a pull request #89 to change it to policycoreutils-devel, which requires policycoreutils-python and also causes selinux-policy-devel to install.

Fab -- I'll clobber this as that will fix the problem.  Also gives a handy workaround of overriding the package_name to be policycoreutils-python-devel for now  :)

policycoreutils-devel (no 'python' on the name)


chart: disable annotation-based scraping for promscale

Description

Quick fix to address issues discovered in https://github.com/timescale/promscale/issues/1344
Type of change
What type of changes does your code introduce to the Prometheus operator? Put an x in the box that apply.

[ ] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[x] FEATURE (non-breaking change which adds functionality)
[x] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[ ] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Changelog entry
Please put a one-line changelog entry below. This will be copied to the changelog file during the release process.

Prevent double scraping of promscale metrics

Fixes #352


Path not found inventory_id (vscode)

query: table('db_name.public.table_name') -> {
  project: [ inventory_id ]
  where: asn_id=11371
}

It's great to have compile time check, but the error msg seems not right. I double checked that the 'inventory_id' exists.

Hi @swuecho - your syntax looks right to me at first look. Just to check, have you tried any other fields here, and did they work? has anything else successfully run for you yet?

query: table('titan.pg_catalog.pg_tables') -> {
  project: [ tablename ]
  where: tableowner='titan'
}

 select * from titan.pg_catalog.pg_tables where tableowner = 'titan';

I tried above malloy query. no luck too. The sql works fine. I can not run anything with postgres yet.

Thanks @swuecho -- what is the datatype  of that field in postgres?
another thing to try - can you try making it an explore and see if it comes up in the schema view? using the example you provided, that would look like:
explore: table_name is table('db_name.public.table_name') {}

you can find the schema viewer in the malloy tab on the left. You may need to click into the open file to see it.

❯ node -v
v17.2.0

@swuecho I'm also hitting a bump querying the pg_catalog tables; looking into this.
In the mean time, was the other query you were trying to run also against pg_catalog? I am wondering if that was a different issue (and hopefully one we can solve quickly!)

If I left the db prefix, unknown postgres type boolean malloy will reported.
and seems wherever the problem is, the error message is always on the first line.

The boolean type is currently not supported in postgres; we're working to get that addressed asap. Lots of booleans in the pg_catalog tables which seems to be the cause of our trouble here.

The boolean type is currently not supported in postgres; we're working to get that addressed asap. Lots of booleans in the pg_catalog tables which seems to be the cause of our trouble here.

I see. the tables I query all has boolean type, which is used to make soft delete.

That explains it. we should have a fix for you soon.

Added boolean support.  Please not that date/time support is not currently implemented in postgres (should be happening pretty soon).  Postgres support is currently incomplete.
https://github.com/looker-open-source/malloy/pull/262

Hey @swuecho  - Lloyd's fix which should unblock you went into the marketplace this evening. If you uninstall, quit vscode, then reopen & install, this should have you back in business--let me know if not.

@anikaks works great!


feat: Added ability to adjust label order for iam roles

Description

Motivation and Context

Breaking Changes

How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[ ] I have tested and validated these changes using one or more of the provided examples/* projects

[ ] I have executed pre-commit run -a on my pull request

This PR is included in version 1.1.0 :tada:


ettercap: fix pango not finding hb.h from harfbuzz

Motivation for this change
It's broken, fixed it
The error message
In file included from /nix/store/6n6icd9pmmzdl7k39mdksv3k8y2z1bfn-pango-1.44.7-dev/include/pango-1.0/pango/pango-font.h:25,
                 from /nix/store/6n6icd9pmmzdl7k39mdksv3k8y2z1bfn-pango-1.44.7-dev/include/pango-1.0/pango/pango-attributes.h:25,
                 from /nix/store/6n6icd9pmmzdl7k39mdksv3k8y2z1bfn-pango-1.44.7-dev/include/pango-1.0/pango/pango.h:25,
                 from /nix/store/i1akaw2n7ryr3gms1yap6i463j9819xw-gtk+3-3.24.12-dev/include/gtk-3.0/gdk/gdktypes.h:35,
                 from /nix/store/i1akaw2n7ryr3gms1yap6i463j9819xw-gtk+3-3.24.12-dev/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
                 from /nix/store/i1akaw2n7ryr3gms1yap6i463j9819xw-gtk+3-3.24.12-dev/include/gtk-3.0/gdk/gdk.h:32,
                 from /nix/store/i1akaw2n7ryr3gms1yap6i463j9819xw-gtk+3-3.24.12-dev/include/gtk-3.0/gtk/gtk.h:30,
                 from /build/source/src/interfaces/gtk3/ec_gtk3.h:4,
                 from /build/source/src/ec_interfaces.c:31:
/nix/store/6n6icd9pmmzdl7k39mdksv3k8y2z1bfn-pango-1.44.7-dev/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: hb.h: No such file or directory
 #include <hb.h>
          ^~~~~~
compilation terminated.

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @pSub

I think the the main thing is that most documentation says to do:
#include<hb.h>

but they publish the headers as $dev/include/harfbuzz/hb*
In their defense, the harfbuzz.pc correctly states the includedir, but a lot of packages seem to disregard this.

I think this PR fixes it upstream https://github.com/Ettercap/ettercap/pull/969/files. Can you apply it here?

Still the same
diff --git a/pkgs/applications/networking/sniffers/ettercap/default.nix b/pkgs/applications/networking/sniffers/ettercap/default.nix
index 164d11bd39f..5ca7aac7468 100644
--- a/pkgs/applications/networking/sniffers/ettercap/default.nix
+++ b/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, libpcap, libnet, zlib, curl, pcre
 , openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip, harfbuzz
 , pkgconfig }:

@@ -13,6 +13,13 @@ stdenv.mkDerivation rec {
     sha256 = "0m40bmbrv9a8qlg54z3b5f8r541gl9vah5hm0bbqcgyyljpg39bz";
   };

+  patches = [
+    (fetchpatch {
+      url = "https://github.com/Ettercap/ettercap/compare/ebc85131c656ea13907195b6e1981e0f8c121c50...78da46d1488fa9903344fc993555461f54ae9c6a.diff";
+      sha256 = "02nzps4ca3d20gvykyaz8qjnsgjvks2czfmq8ic9xk17v2pn19ji";
+    })
+  ];
+
   strictDeps = true;
   nativeBuildInputs = [ cmake flex bison pkgconfig ];
   buildInputs = [
@@ -31,8 +38,6 @@ stdenv.mkDerivation rec {
     "-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
   ];

-  NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
-
   meta = with stdenv.lib; {
     description = "Comprehensive suite for man in the middle attacks";
     homepage = http://ettercap.github.io/ettercap/;

Thanks, I pushed this in b9f7819bd337491b0dda0ee6962653ef5d1a19b5 (with an additional TODO).
It should work with the next release / https://github.com/Ettercap/ettercap/commit/02960cbc8a7993819f9a03681066602db838837d but NIX_CFLAGS_COMPILE should be fine for the meantime (it's hacky but definitely way better than a broken build and cherry-picking patches can sometimes also cause problems).

backported to 20.03 in 834841cd1eb759159cb96cf392848737f23f6132


Benford analysis on net_values

Script with basic Benford analysis on the net_values using R.
I'm having trouble to run the R kernel inside Jupyter Notebook. I'll try to work on it in the next few days, but in the meantime, this PR has the initial script.

Great idea for analysis, @pingfreud. Contact me in private if you want help with your environment. Better solve this issue with you and document so new contributors don't have it again.

Hello @Irio ,
Thanks for the help with Jupyter and R kernel.

All of this look very good, @pingfreud. Going to ask you a few things to be changed before merging your analysis:

[ ] Rename your notebook to contain your GitHub username (2016-09-20-im-benford-analysis becomes 2016-09-20-pingfreud-benford-analysis.
[ ] Export the notebook to .py and .html. This will make them easier to be read in GitHub. Highly recommended to autogenerate on every file save, following config change at https://github.com/datasciencebr/serenata-de-amor/blob/59687a7a087f3326538979fef30306c8c2083e99/CONTRIBUTING.md#best-practices
[ ] Move benford.subquota.R to src folder. It's the intended place for auxiliary scripts, making them easily accessible for future contributors.
[ ] I feel benford.R would be better if directly put in the notebook cell, since is not generic enough to be reused in other analysis. Thoughts against doing so?
[ ] About your conclusions and formatting the output to Serenata's Machine Learning model, could you output the whole DataFrame at the end of the notebook and conclude with a few words why you think these results can be useful for our domain? I have ideas, but would be better to have them documented for everyone.

In general, excellent analysis with good documentation and background research. Hope we can merge it soon.

Close by inactivity. But anyone – specially @jtemporal who loves R and, now, Benford's Law — is free to jump in and take this awesome contribution further.


Add pyenv for python2/python3

Branched of to separate PR as per request in https://github.com/thoughtbot/laptop/pull/456

I think we should use asdf for this. I have a branch where I'm working on converting the ruby and node installs to use asdf.

See #502

https://github.com/asdf-vm/asdf-plugins Python listed as supported.


Bump version to 1.5.2-SNAPSHOT and 0.22.2-SNAPSHOT for development

Codecov Report

Merging #349 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #349   +/-   ##
=========================================
  Coverage     76.66%   76.66%
  Complexity      478      478
=========================================
  Files           105      105
  Lines          2503     2503
  Branches        185      185
=========================================
  Hits           1919     1919
  Misses          513      513
  Partials         71       71

Continue to review full report at Codecov.

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

LGTM


Web Search

Add some defaults and allow custom web search, a feature I very much appreciate in Ueli
d?privacy settings

so?[rust] mutex


Designs to Implement

Here is an ever-growing collection of designs to implement in Filament as well as interesting links worth reading.
FFT

FFT Generator
FFT + CORDIC
Chisel FFT

Papers

Parametric implementation of benchmarks from Aetherling paper
Genome Kernel
Crypto/ECC/Homomorphic accelerators
Systolic arrays
Hardware debugging paper from Michigan people
FINN matrix-vector RTL

Processors

RISC-V, especially if we show going from 3-stage to 5-stage pipeline we get the right errors

PicoRV32 from Chris batten’s class

Actionable Apps

Applications from: https://github.com/KastnerRG/pp4fpgas
CORDIC: https://github.com/cebarnes/cordic/blob/master/cordic.v
Multiply core generator: https://github.com/ZipCPU/fwmpy
FloPoCo: http://www.flopoco.org/
DSP filters: https://github.com/ZipCPU/dspfilters
Polynomial multipliers: https://arxiv.org/pdf/2110.12127.pdf
Accelerators: https://github.com/aolofsson/awesome-opensource-hardware#accelerators
HardCaml libs: https://blog.janestreet.com/growing-the-hardcaml-toolset-index/
Spiral hardware generators
Efficient Multi-Cycle Folded Integer Multipliers
zk-SNARK accelerator from Jane Street

Less Actionable

Match action tables?

Memories have a specific latency
Some network processing function
They are often fixed-latency

Extract pipelines from Rosetta benchmarks

Rosetta: https://github.com/cornell-zhang/rosetta

Polybench Benchmark Suite
Kernels from google/xls?
BF16 float mult

Links

Pipelining: https://davidthings.github.io/spokefpga/pipelines

FIR Filter with Vivado synthesis analysis

Educational RISC-V implementation: https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/README.md
CC @gabizon103

The Genesis 2 project from Stanford has a bunch of publications on generators they built: https://github.com/StanfordVLSI/Genesis2/wiki/Publications

vlsiffra parameterized adders and multipliers implemented using Amaranth HDL

Vitis BLAS library: https://xilinx.github.io/Vitis_Libraries/blas/2022.1/index.html
Probably provides a reasonable baseline for an FPGA based BLAS implementation

Constant-time curve25519


Musl as default instead of glibc

Thanks to many distributions such as Alpine Linux, a lot of software compiles with musl nowadays.
It would mainly reduce the closure size significantly and improve static linking support. See https://www.etalabs.net/compare_libcs.html
It would be interesting to see how much compiles under pkgsMusl attribute and make the switch at some point.

I don't think as default, but musl is still interesting to me, e.g. pkgsStatic.  IIRC some people do submit musl-specific fixes, but I haven't seen that significant interest around NixOS.org so far.

musl advertises that it is "lightweight, fast, simple, free, correct", but one thing they do not advertise is resistance against exploitation.
glibc has long been in an arms race against hackers, and as new techniques are found for attacking the glibc heap, glibc introduces mitigations against them.  A small part of this history is found here:
http://phrack.org/issues/61/6.html
http://phrack.org/issues/66/10.html
https://github.com/shellphish/how2heap
What mitigations does musl offer to protect users from malicious input attempting to corrupt their processes' heaps?  Without this information, we can't tell if switching to musl is a security regression or not.

Oh, now I recalled that systemd tends to be problematic: https://github.com/NixOS/nixpkgs/pull/37715
Part of the reason will be that systemd does lots of low-level stuff, another part that people choosing "lightweight" libcs usually don't care much for systemd... for some mysterious reasons ;-)    (the correlation might go both ways)
Of course, problems can be patched, etc.  For most packages one can probably find a solution somewhere already.  The key question there would be whether there's enough motivation to maintain also this divergence from majority.

What mitigations does musl offer to protect users from malicious input attempting to corrupt their processes' heaps? Without this information, we can't tell if switching to musl is a security regression or not.

To determine the level of robustness between the glibc and musl malloc implementations, I constructed the following (rough) metric.
I searched through each implementation's malloc.c file to see how many error conditions will lead to an immediate abort.  The results:
musl-1.2.0:
src/malloc/malloc.c:388: 		if (extra & 1) a_crash();
src/malloc/malloc.c:406: 	if (next->psize != self->csize) a_crash();
src/malloc/malloc.c:450: 	if (next->psize != self->csize) a_crash();
src/malloc/malloc.c:515: 	if (extra & 1) a_crash();
(4 results)
glibc-2.31:
malloc/malloc.c:1454:     malloc_printerr ("corrupted size vs. prev_size");
malloc/malloc.c:1460:     malloc_printerr ("corrupted double-linked list");
malloc/malloc.c:1468: 	malloc_printerr ("corrupted double-linked list (not small)");
malloc/malloc.c:2537: 	    malloc_printerr ("break adjusted to free malloc space");
malloc/malloc.c:2830:     malloc_printerr ("munmap_chunk(): invalid pointer");
malloc/malloc.c:2858:     malloc_printerr("mremap_chunk(): invalid pointer");
malloc/malloc.c:3175:       malloc_printerr ("realloc(): invalid pointer");
malloc/malloc.c:3594: 		malloc_printerr ("malloc(): memory corruption (fast)");
malloc/malloc.c:3644: 	    malloc_printerr ("malloc(): smallbin double linked list corrupted");
malloc/malloc.c:3736:             malloc_printerr ("malloc(): invalid size (unsorted)");
malloc/malloc.c:3739:             malloc_printerr ("malloc(): invalid next size (unsorted)");
malloc/malloc.c:3741:             malloc_printerr ("malloc(): mismatching next->prev_size (unsorted)");
malloc/malloc.c:3744:             malloc_printerr ("malloc(): unsorted double linked list corrupted");
malloc/malloc.c:3746:             malloc_printerr ("malloc(): invalid next->prev_inuse (unsorted)");
malloc/malloc.c:3786:             malloc_printerr ("malloc(): corrupted unsorted chunks 3");
malloc/malloc.c:3868:                             malloc_printerr ("malloc(): largebin double linked list corrupted (nextsize)");
malloc/malloc.c:3874:                         malloc_printerr ("malloc(): largebin double linked list corrupted (bk)");
malloc/malloc.c:3957: 		    malloc_printerr ("malloc(): corrupted unsorted chunks");
malloc/malloc.c:4061: 		    malloc_printerr ("malloc(): corrupted unsorted chunks 2");
malloc/malloc.c:4107:         malloc_printerr ("malloc(): corrupted top size");
malloc/malloc.c:4173:     malloc_printerr ("free(): invalid pointer");
malloc/malloc.c:4177:     malloc_printerr ("free(): invalid size");
malloc/malloc.c:4201: 		malloc_printerr ("free(): double free detected in tcache 2");
malloc/malloc.c:4249: 	  malloc_printerr ("free(): invalid next size (fast)");
malloc/malloc.c:4266: 	  malloc_printerr ("double free or corruption (fasttop)");
malloc/malloc.c:4276: 	    malloc_printerr ("double free or corruption (fasttop)");
malloc/malloc.c:4288:       malloc_printerr ("invalid fastbin entry (free)");
malloc/malloc.c:4309:       malloc_printerr ("double free or corruption (top)");
malloc/malloc.c:4314: 	malloc_printerr ("double free or corruption (out)");
malloc/malloc.c:4317:       malloc_printerr ("double free or corruption (!prev)");
malloc/malloc.c:4322:       malloc_printerr ("free(): invalid next size (normal)");
malloc/malloc.c:4332:         malloc_printerr ("corrupted size vs. prev_size while consolidating");
malloc/malloc.c:4356: 	malloc_printerr ("free(): corrupted unsorted chunks");
malloc/malloc.c:4477: 	    malloc_printerr ("malloc_consolidate(): invalid chunk size");
malloc/malloc.c:4493: 	    malloc_printerr ("corrupted size vs. prev_size in fastbins");
malloc/malloc.c:4553:     malloc_printerr ("realloc(): invalid old size");
malloc/malloc.c:4564:     malloc_printerr ("realloc(): invalid next size");
(37 results)
Admittedly, this is not a perfect metric, because the glibc malloc is more complicated, has a fastpath and slower paths, etc.  But in general it seems like glibc is being much more careful.
I think sticking with glibc is the smarter decision from a security perspective.

@domenkozar what would be the advantages of musl over glibc?

@markuskowa smaller closure size, easier static linking. See https://www.etalabs.net/compare_libcs.html

Having tried to use pkgsStatic for the Mobile NixOS stage-1, as @vcunat said, systemd won't play ball, and we need a bunch of work still to make a large proportion of Nixpkgs work.  In the end I decided to go with glibc.
Though, with that said, I'm not opposed to the idea, but as a default, I'm not sure when and if it'll happen. It'd need many person-hours to get there.

What mitigations does musl offer to protect users from malicious input attempting to corrupt their processes' heaps? Without this information, we can't tell if switching to musl is a security regression or not.

To determine the level of robustness between the glibc and musl malloc implementations, I constructed the following (rough) metric.
I searched through each implementation's malloc.c file to see how many error conditions will lead to an immediate abort. The results:
musl-1.2.0:
(4 results)
glibc-2.31:
(37 results)
Admittedly, this is not a perfect metric, because the glibc malloc is more complicated, has a fastpath and slower paths, etc. But in general it seems like glibc is being much more careful.
I think sticking with glibc is the smarter decision from a security perspective.

musl 1.2.0 malloc.c: 548 lines
glibc 2.31 malloc.c: 5610 lines
musl asserts per line: .007299
glibc asserts per line: .006595
therefore, musl is more secure.

glibc malloc has more sanity checks. At least compared to glibc before thread caching was added (major caveat), the current generation musl malloc is not security aware and is friendlier to exploitation. Both use a similar design based on trusted inline metadata that's inherently friendly to exploitation. glibc now has thread caches which are a huge boon for easier and more reliable exploitation, especially in complex situations involving parallelism, while musl won't be taking that approach. Thread caches bypassed a substantial amount of the previous work put into bolting on sanity checks to glibc malloc. They also make exploitation much more reliable for threaded programs and fundamentally get in the way of more meaningful deterministic security checks.
musl has a new malloc implementation landing soon, with a fundamentally more security-oriented design than glibc's approach. It isn't possible to build the same kind of security through adding weak sanity checks like glibc. It's a base that can be turned into a truly hardened allocator by bolting on additional features, unlike the traditional dlmalloc-like design used by glibc and musl (glibc makes the fundamental issues worse with tcache). You can't build decent security by bolting it on top of a fragile foundation preventing robust security checks. I strongly recommend reading this thread from Rich Felker on some of the security properties of oldmalloc vs. malloc-ng, and perhaps the other discussions about it on the mailing list and Twitter:
https://www.openwall.com/lists/musl/2020/05/13/1
If you care about exploit mitigation, wait until the next generation malloc lands. There are also other security features missing that should be added.
FORTIFY_SOURCE isn't implemented in musl, although the glibc implementation is lackluster (only checks writes, not reads, etc.) and doesn't bother with Clang compatibility. Clang actually has superior extensions for implementing it... but an implementation compatible with both that's strictly better than the glibc one is straightforward. I think the stance on this is that it should be done with a header-only approach, but I don't think a high quality production implementation is available, so it's effectively not available.
musl also doesn't currently have setjmp or much attempt at function pointer protection, although the implementations in glibc are lackluster and quite incomplete. Only really matters if you're using type-based CFI elsewhere, and neither musl or glibc has support for Clang type-based CFI. Neither supports the arm64 ShadowCallStack feature which is the approach to protecting return addresses there (hopefully CET shows up for x86 soon for a superior hardware implementation, and MTE on arm64 for similar reasons). ShadowCallStack doesn't exist for x86 since their approach didn't meet the same standards (races, etc.).
There's a fork of musl for Fuchsia with some of these features added, but not in a way that would ever be possible to land upstream since they wrote it in C++ and did it specifically for that OS with assumptions that wouldn't hold elsewhere.
glibc has a lot of security misfeatures and far more attack surface / bugs. Exploit mitigation isn't everything, especially when it's done poorly as glibc does in many cases. It also introduces problems with features like secondary stack caching that are not present in musl. I think it's a mixed bag right now. malloc is quite important so there's a very strong argument that the current generation glibc beats musl on exploit mitigation (and the libc attack surface isn't substantial in the big picture anyway) but that's not going to be true for much longer.

Thanks all for the input. Seems like we still have a long way to go.

To chime in here, I see Nix as a possible Yocto/Alpine alternative for embedded linux and docker image builds, where size is important. Musl being significantly smaller is a very desirable feature when space is a premium and I'd really love to see hydra testing the package set against pkgsStatic and pkgsMusl for a large swath of things. Understandable if NixOS chooses to stick with glibc for desktop/laptop sized systems for the foreseeable future. It's featureful, and well trodden ground.
I'd be happy to contribute my time towards doing so!

I get the feeling that there isn't enough momentum behind this.
It'd be really cool to have but, given the workload of maintaining an alternative libc brings with it, I don't see proper widespread musl support (much less using it by default) coming any time soon.

I have made a lot of progress on the pkgsMusl (native musl bootstrap, dynamically linked) package set.
One can build a small VM with a desktop environment (sway) and some programs (firefox, thunderbird, wireshark, dino) from my flake.
nix run gitlab:cyberchaoscreatures/musl-nixos?host=cyberchaos.dev#nixosConfigurations.x86_64.config.system.build.vm -- -vga virtio

is this being worked on/considered? sure would be a nice to have

musl advertises that it is "lightweight, fast, simple, free, correct", but one thing they do not advertise is resistance against exploitation.
glibc has long been in an arms race against hackers, and as new techniques are found for attacking the glibc heap, glibc introduces mitigations against them. A small part of this history is found here:
http://phrack.org/issues/61/6.html http://phrack.org/issues/66/10.html https://github.com/shellphish/how2heap
What mitigations does musl offer to protect users from malicious input attempting to corrupt their processes' heaps? Without this information, we can't tell if switching to musl is a security regression or not.

Note: The XZ-utils backdoor would only work if you had Glibc and Systemd

Note: that particular backdoor never seemed to work on nixpkgs-built SW anyway.

Note: that particular backdoor never seemed to work on nixpkgs-built SW anyway.

Ofc not, since it required a patched OpenSSH, just a remark tho

The backdoor targeted Debian and Fedora running their libc and their version of OpenSSH because those are the most popular, high‐value targets. The OpenSSH patch linking libsystemd rather than hand‐coding the notification may have been sub‐optimal, but it’s a fallacy to think that the attacker would have been stymied and given up if it wasn’t there. There are many other equally‐easy routes it could have used to inject a remote code execution exploit and you can’t pin the blame on the one it used as being especially bad for security without doing actual analysis to show concrete ways in which they meaningfully increase the attack surface compared to the counterfactual alternatives that could have been used. In any case it’s not really on‐topic for this issue.
I don’t have anything against Musl, but I think it’s extremely unlikely it will be the default on NixOS any time soon unless the feature parity and compatibility compared to glibc changes dramatically – maybe we should close this for now?

unless the feature parity and compatibility compared to glibc changes dramatically

It is clear that the Musl dev team is not interested in adding bugs to Musl. (everything that is non-conformant to the POSIX & ISO C specs is considered a bug. There are some rare exceptions, like wtmp, which is not implemented on Musl because it is insecure)
I think the approach to this should be like Gentoo's. They made their codebase (mostly)compiler-independent & libc-independent, by fixing the things that wouldn't compile under Musl and LLVM, they offer flavors of Gentoo instead of having a default one. Same thing Void Linux does for Musl and Glibc. There is no default.
Nix being a rare case, I think binaries could be compiled against a Musl shipped with Nix (package manager, no OS) itself, which would make Nix and its packages both smaller, and also portable, without necessarily being statically linked. Patchelf exists too, so it could be done the dirty way or the clean way.
Void Linux is the proof that you can unify Glibc and Musl by fixing the non-compliant code in programs, then upstreaming the patches, and then shipping in the repos.

Feel free to set pkgs = pkgsMusl on your systems then. Nixpkgs supports it.
For anyone building a productive general purpose distro that is supposed to cover a wide range of use-cases OOTB without insane maintenance overhead and constant edge-cases however, they'll be well advised to stick with glibc.
Oh, and anyone who targets a userbase that doesn't only speak the one true great American language because locale support is non-existent in Musl.
I don't like glibc (I don't think anyone really does) but fact of the matter is that it's the most well supported libc on Linux by applications and until that changes, it doesn't make sense for Nixpkgs to default to anything else.

how and where would i set pkgs = pkgsMusl? i'm at a loss... any docs or source you could reference me to?

@Thiago-Assis-T I'm assuming they're referring to this fork of nixpkgs which contains a musl branch. You can check out @yu-re-ka 's flake here for example usage https://cyberchaos.dev/cyberchaoscreatures/musl-nixos

I'm actually not sure of the mechanism (perhaps something like _module.args.pkgs = pkgs.pkgsMusl?) but the branch you linked appears to merely contain musl-specific patches that haven't made it upstream yet. Likely useful but not necessary.

pkgsMusl is part of Nixpkgs proper, like pkgsStatic and pkgsCross.*. You could set nixpkgs.hostPlatform to lib.systems.examples.musl64 to use it system-wide.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/rebuild-nixos-with-musl/47655/1

@YoshiRulz, i'm still having some problems, do you mind hopping over to discourse as to not clutter this issue any further?

@awilfox has been working on musl-based SystemD, including upstreaming patches: https://catfox.life/2024/09/05/porting-systemd-to-musl-libc-powered-linux/

@awilfox has been working on musl-based SystemD, including upstreaming patches: https://catfox.life/2024/09/05/porting-systemd-to-musl-libc-powered-linux/

:(
Musl-based systems not having systemd was the biggest advantage IMO...

@xplshn, it's seemingly a long way until this is deployed in PROD as a service manager. And I am sure the present way (the OpenRC) will remain as a strong option. Probably dinit and even s6-something-something will be added to that list too.
So, I see no need to worry as a user.

@xplshn, it's seemingly a long way until this is deployed in Adelie Linux PROD as a service manager.
And even then I am sure the present way (the OpenRC) will remain as a strong, possibly as the primary option. Probably dinit and even s6-something-something will be added to that list too.
So, I see no need to worry as a user of #AdelieLinux.

Yeah, I'm trying to see the positive side of it as well, such as helping people migrate servers from Systemd systems to OpenRC-based ones.

Closing as unlikely to happen any time soon and as something that would surely require an RFC rather than just a tracking issue, so as to not mislead people into thinking anyone is actively planning this.


[BUG] Trying to start CRC from MacOS tray, get error about pull secret in 1.25

General information

OS:  macOS
Hypervisor: hyperkit
Did you run crc setup before starting it (Yes/No)? Yes
Running CRC on: Laptop

CRC version
# Put `crc version` output here
crc version
CodeReady Containers version: 1.25.0+0e5748c8
OpenShift version: 4.7.5 (embedded in executable)

CRC status
# Put `crc status --log-level debug` output here
DEBU CodeReady Containers version: 1.25.0+0e5748c8
DEBU OpenShift version: 4.7.5 (embedded in executable)
DEBU Running 'crc status'
DEBU Checking file: /Users/btofel/.crc/machines/crc/.crc-exist
DEBU Checking file: /Users/btofel/.crc/machines/crc/.crc-exist
DEBU Found binary path at /Users/btofel/.crc/bin/crc-driver-hyperkit
DEBU Launching plugin server for driver hyperkit
DEBU Plugin server listening at address <IP_ADDRESS>:60482
DEBU () Calling .GetVersion
DEBU Using API Version 1
DEBU () Calling .SetConfigRaw
DEBU () Calling .GetMachineName
DEBU (crc) Calling .GetState
DEBU (crc) DBG | time="2021-04-15T09:33:30-04:00" level=debug msg="exe=/Users/btofel/.crc/bin/crc-driver-hyperkit uid=0"
DEBU (crc) Calling .GetBundleName
DEBU Making call to close driver server
DEBU (crc) Calling .Close
DEBU Successfully made call to close driver server
DEBU Making call to close connection to plugin binary
DEBU (crc) DBG | time="2021-04-15T09:33:30-04:00" level=debug msg="Closing plugin on server side"
CRC VM:          Stopped
OpenShift:       Stopped (v4.7.5)
Disk Usage:      0B of 0B (Inside the CRC VM)
Cache Usage:     82.05GB
Cache Directory: /Users/btofel/.crc/cache

CRC config
# Put `crc config view` output here
- consent-telemetry                     : no
- cpus                                  : 12
- memory                                : 20480

Host Operating System
# Put the output of `cat /etc/os-release` in case of Linux
# put the output of `sw_vers` in case of Mac
# Put the output of `systeminfo` in case of Windows
ProductName:	macOS
ProductVersion:	11.2.3
BuildVersion:	20D91

Steps to reproduce

Choose Start from CRC MacOS tray

Expected
crc starts
Actual
UX error dialog pops up
Logs
Before gather the logs try following if that fix your issue
$ crc delete -f
$ crc cleanup
$ crc setup
$ crc start --log-level debug

Please consider posting the output of crc start --log-level debug  on http://gist.github.com/ and post the link in the issue.

time="2021-04-14T16:51:51-04:00" level=error msg="Cannot load machine: machine crc does not exist"
time="2021-04-14T16:51:51-04:00" level=debug msg="rpc:0xc000c12078: Sending answer: {\"Name\":\"crc\",\"CrcStatus\":\"\",\"OpenshiftStatus\":\"\",\"OpenshiftVersion\":\"\",\"DiskUse\":0,\"DiskSize\":0,\"Error\":\"Cannot load machine: machine crc does not exist\",\"Success\":false}"
time="2021-04-14T16:51:56-04:00" level=debug msg="rpc:0xc000824300: Received request: {\"command\":\"status\"}"
time="2021-04-14T16:51:56-04:00" level=debug msg="Checking file: /Users/btofel/.crc/machines/crc/.crc-exist"
time="2021-04-14T16:51:56-04:00" level=error msg="Cannot load machine: machine crc does not exist"
time="2021-04-14T16:51:56-04:00" level=debug msg="rpc:0xc000824300: Sending answer: {\"Name\":\"crc\",\"CrcStatus\":\"\",\"OpenshiftStatus\":\"\",\"OpenshiftVersion\":\"\",\"DiskUse\":0,\"DiskSize\":0,\"Error\":\"Cannot load machine: machine crc does not exist\",\"Success\":false}"
time="2021-04-14T16:52:01-04:00" level=debug msg="rpc:0xc000c12008: Received request: {\"command\":\"status\"}"
time="2021-04-14T16:52:01-04:00" level=debug msg="Checking file: /Users/btofel/.crc/machines/crc/.crc-exist"
time="2021-04-14T16:52:01-04:00" level=error msg="Cannot load machine: machine crc does not exist"
time="2021-04-14T16:52:01-04:00" level=debug msg="rpc:0xc000c12008: Sending answer: {\"Name\":\"crc\",\"CrcStatus\":\"\",\"OpenshiftStatus\":\"\",\"OpenshiftVersion\":\"\",\"DiskUse\":0,\"DiskSize\":0,\"Error\":\"Cannot load machine: machine crc does not exist\",\"Success\":false}"```

@bentito The logs you provided is only showing the status command, can you please upload the entire logs in a gist

I don't have the problem any more Believe this behavior was artifact if old tray app with newer CRC installed both fresh with pkg instead of tar and working well now..


Fix wrong name comment etc

cc @mlaventure
Minor fix for wrong name/comment/ etc
Signed-off-by: Harry Zhang<EMAIL_ADDRESS>

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "minor-fix" git@github.com:resouer/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "minor-fix" git@github.com:resouer/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "minor-fix" git@github.com:resouer/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "minor-fix" git@github.com:resouer/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

LGTM.


Serde for DescriptorPublicKey

Save me from ever writing the following code again:
pub mod serde_descriptor_key {
    use std::str::FromStr;

    use miniscript::DescriptorPublicKey;
    use serde::{Deserialize, Deserializer, Serializer};

    pub fn serialize<S>(dpk: &DescriptorPublicKey, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        serializer.serialize_str(&dpk.to_string())
    }

    pub fn deserialize<'de, D>(deserializer: D) -> Result<DescriptorPublicKey, D::Error>
    where
        D: Deserializer<'de>,
    {
        let s = String::deserialize(deserializer)?;
        DescriptorPublicKey::from_str(&s).map_err(serde::de::Error::custom)
    }
}

LGTM! Will let @sanket1729 take a look before merging. I have two points of hesitation:

One is that we have an existing serde_string_impl_pk macro...but it looks like it's inapplicable, and anyway this code is very short.
The other is that we're allocating a String just to dereference it, which feels wasteful ... but OTOH I don't know how to get around this without a ton of boilerplate (and even then I'm doubtful). The serde_with crate might be worth exploring in the future once we have cargo-crev going and once we've vetted all our existing deps. Amusingly, when I searched for how to do this, I found an old serde issue where dtolnay suggests doing your exact approach.


Direct writing to/reading from of underlying buffer without Bincode

This crate has a fantastically designed API but at times the hard dependency on bincode introduces excessive overhead for very low latency/high throughput applications. I've included an identical set of methods for Sender and Receiver (the _direct_ versions) that allow for:

The simple ShmWriter trait allows implementing structs to customize their encoding logic and directly write to the mmap backing buffer without additional costs around bincode's layer and additional allocations this may have originally resulted in (i.e. no intermediary Vec<u8> gets setup)
Retrieving a direct slice of an encoded message for reading one layer up. This will allow for true zero copy casts from the backing memory. Large &[u8]'s contained within a message should be able to be easily offset to with no real overhead

@andrew-manifold Thanks so much for this, and sorry for the delayed response.  I'm planning to review this as soon as I have the chance -- probably this Friday.

Ah, I just realized that using bincode to receive a &[u8] on the receiver end would not be correct if send_direct* was used on the sender end, since bincode will presumably expect a length prefix at the beginning of the message.  So we probably will need to add {try_}recv_direct methods to ZeroCopyContext.

Thanks again for this. I think the send_direct* parts look good overall (see some comments inline), but I have concerns about the {try_}recv_direct parts, and I think ZeroCopyContext::{try_}recv::<_, &[u8]> can do the job just as efficiently and more correctly.
If you can demonstrate that bincode is adding significant overhead even for the &[u8] case, then perhaps we could add {try_}recv_direct functions to ZeroCopyContext, but I don't believe they can be added soundly to Receiver.

The context of my interest in adding these methods is that I've run into some corner cases with bincode where the combination of writing to a shared memory space and trying to do zero copy deserialization leads to memory alignment issues when using crates like bytemuck to cast a large &[u8] that's contained within a struct. Ideally the safe api on this crate would have been enough but the alternative was to then do a memcpy on any slices to the heap to guarantee alignment which defeats the purpose of zero copy deserialization.
All the feedback is very much appreciated, I'll try to get updates into this PR soon that address all the issues you've pointed out.

@dicej I believe all major issues have been fixed, let me know if you think other tweaks would be helpful. I managed to unify both the sender and receiver api's to use one common implementation underneath for each

I have everything besides the arbitrary_case issue figured out. Can confirm that the hanging is happening on my end too, trying to determine what is the root issue.

@dicej so after doing more digging I've found a few takeaways:

the regression on arbitrary size is always for the first test case but how far along in the test that it fails is not deterministic. this would imply that a contributing factor would be the environment (machine) this test runs on and hence how quickly messages can be processed
increasing the channel size to something larger (3x+) then the tests default of ~1024 bytes allows for the test to pass
simple tests are able to pass because the message size is substantially smaller then the channel size and the ring buffer recv is able to keep a similar pace with the send
I believe the issue is relating to corner cases for wrap arounds. an example of a failed unit test:

arbitrary_case test 1:
channel size: 761 bytes
total size: 897 bytes (includes header + 8 bytes)

msg 0: encoded msg len = 288, start index = 132, end index = 420
msg 1: encoded msg len = 410, start index = 424, end index = 834
write wraps around ring buffer
msg 2: encoded msg len = 618, start index = 132, end index = 750
       -> recv fails as the data for msg 2 being received is inconsistent with the actual data

Dumping out the raw bytes from each message shows that parts of the prior message are indeed overwriting the current message.
As fas as how this is happening with my PR and not on master is still an unknown to me. My hypothesis is that the compiler is able to possibly do some optimizations in one of the two versions that allows for faster processing.
running this test on my branch on one of my dev servers and not a Mac book pro (my laptop) has it pass (machine specs below):
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  24
  On-line CPU(s) list:   0-23
Vendor ID:               AuthenticAMD
  Model name:            AMD Ryzen 9 7900 12-Core Processor
    CPU family:          25
    Model:               97
    Thread(s) per core:  2
    Core(s) per socket:  12
    Socket(s):           1
    Stepping:            2
    Frequency boost:     enabled
    CPU max MHz:         5481.3472
    CPU min MHz:         3000.0000
    BogoMIPS:            7385.91
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mc
                         a cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall n
                         x mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_go
                         od nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl p
                         ni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2api
                         c movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_le
                         gacy svm extapic cr8_legacy abm sse4a misalignsse 3dnow
                         prefetch osvw ibs skinit wdt tce topoext perfctr_core p
                         erfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw
                         _pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1
                         avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq
                         rdseed adx smap avx512ifma clflushopt clwb avx512cd sha
                         _ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cq
                         m_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_
                         bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat
                         npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushb
                         yasid decodeassists pausefilter pfthreshold avic v_vmsa
                         ve_vmload vgif v_spec_ctrl avx512vbmi umip pku ospke av
                         x512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bita
                         lg avx512_vpopcntdq rdpid overflow_recov succor smca fs
                         rm flush_l1d
Virtualization features:
  Virtualization:        AMD-V
Caches (sum of all):
  L1d:                   384 KiB (12 instances)
  L1i:                   384 KiB (12 instances)
  L2:                    12 MiB (12 instances)
  L3:                    64 MiB (2 instances)

Additional unit tests are now included that cover _direct_ methods too.


Add CodeCTRL to COMMUNITY.md

PR Info

In relation to #403 and https://github.com/Authentura/codectrl/issues/53

Adds

Adds a link to the CodeCTRL website and repository

That's a cool project!


Release Google.Cloud.BinaryAuthorization.V1 version 2.3.0

Changes in this release:
New features

Change netstandard2.1 target to netstandard2.0 (commit 82bea85)

Created release for Google.Cloud.BinaryAuthorization.V1-2.3.0


move fit config modification to on-build-config lib

BUILD RackHD #657 : FAILURE

test this please

BUILD RackHD #658 : FAILURE

test this please

@PengTian0  to review

Please update the Usage according to your change

BUILD RackHD #665 : FAILURE

test this please

👍
@iceiilin  to review


SUGGESTION: Slowmode

Hello, I have no idea where to add this so I will add it here. Discord has a "Slowmode" feature that is really useful in servers. People would appreciate it if you add it.

Duplicate of https://github.com/matrix-org/matrix-doc/issues/1949


Install guide for Windows!

It was a nightmare trying to install it on windows, I spent about 6 hours finally find a way to make it work, following are main problems I encountered along the way:
Assume you already initialize your conda environment, and cloned this project
In windows, use cmake --build . instead of make
When build [DMeshRenderer](https://github.com/SonSang/dmesh_renderer), if you encounter error:

fatal error C1083: Cannot open include file: 'glm/glm.hpp': No such file or directory

Solution:

Installing Vcpkg:
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
# Add environment variable: VCPKG_ROOT = "Your vcpkg directory" e.g. C:\Users\reall\Softwares\vcpkg
# Add same path to Path environment variable

Install GLM: vcpkg install glm
Copy glm folder from vcpkg\packages\glm_x64-windows\include to your conda environment’s include folder

When build & install [OneTBB](https://github.com/oneapi-src/oneTBB)  if you encounter error:

CMake Error at src/tbb/cmake_install.cmake:51 (file):  file INSTALL cannot find "C:/Users/reall/Softwares/Miniconda/envs/AI3D_Exp/_Projects/dmesh/external/oneTBB/build/msvc_19.39_cxx_64_md_release/tbb12.dll": File exists.

Solution:

https://github.com/oneapi-src/oneTBB/issues/708#issuecomment-1015170539
cd external/oneTBB
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DTBB_TEST=OFF ..
cmake --build . --config release
cmake --install . --config release

Install [CGAL 5.6.1 - Manual: Using CGAL on Windows (with Visual C++)](https://doc.cgal.org/latest/Manual/windows.html#install-from-source)
When build cgal_wrapper, if you encounter error:

dmesh\external\cgal\Installation\include\CGAL\config.h(111,10): error C1083: Cannot open include file: 'boost/config.hpp': No such file or directory

Solution:

In dmesh\cgal_wrapper\CMakeLists.txt add additional line after target_include_directories() to include_directories("boost folder’s parent folder, e.g. C:/Users/reall/Softwares/boost_1_85_0")

When build DMesh (running pip install -e . in dmesh directory), If you encounter error

LINK : fatal error LNK1181: cannot open input file 'cgal wrapper.lib’
Solution:

Move cgal wrapper.lib from dmesh\cgal_wrapper\Debug\ under dmesh\cgal_wrapper
Or move it to other include library path, check dmesh\setup.py

LINK : fatal error LNK1181: cannot open input file 'gmp.lib’ or 'mpfr.lib’
Solution:

Move gmp.lib or 'mpfr.lib’ from vcpkg\packages\gmp_x64-windows\lib or vcpkg\packages\mpfr_x64-windows\lib to your conda environment’s libs folder

@SonSang
Awesome work based on a great idea. But a little suggestion, if you want people to use your work and create more useful tools or research papers with it, then you definitely want to put in some effort to make it easy to install. This project is easily one of the hardest project I ever installed.
Cheers, have a good day :)

Thanks for your effort in writing the installation guide for Windows, I really appreciate it.
Unfortunately, me and all of my collaborators worked in Linux environment, we did not have a chance to test our project in Windows environment.
In the Readme, we will specify that the installation guides are for Linux environment, and direct Window users to this guide.
Sorry for your inconvenience, and thank you again for writing this guide.


Change Issue Templates to Issue Forms

@vvbandeira @habibayassin this looks nice, perhaps we should do the same.


Hauki-271 Add tests for EditOpeningPeriodPage

Supress expected console.errors in CreateOpeningPeriodPage-tests
Fix time-span description default value issue -- api value was ignored
Add tests for EditOpeningPage

Good job! 🏅


(1002) Not applicable task

Changes
Add an optional task model
We have a bunch of tasks which can be optional/not applicable.
Add a derived class of TaskList::Task which computes the status of a optional
task.
Add subleases task to involuntary task list
This adds an "optional" Sublease task for the involuntary conversion task
list.
Checklist

[x] Attach this pull request to the appropriate card in Trello.
[x] Update the CHANGELOG.md if needed.

 Tasks can be not applicable


Migration to Angular 6, RxJs 6 and Webpack 4

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Update of configuration and dependencies

What is the current behavior? (You can also link to an open issue here)
Current version is based on Webpack 3, Jasmine 2 and Angular 5.

What is the new behavior (if this is a feature change)?

Migrated to Webpack 4 with optimized configs
Got rid of outdated ngcWebpack (it's pretty much deprecated by the author) - using directly ngtools/webpack
Migrated to Angular 6 and RxJs 6.2
Added TSLint rules for RxJs 6.2
Improved Karma config for local development - should now work similar to Angular/cli based projects
Migrated to Jasmine 3

Other information:

looks good to me.

@gdi2290 when you get a chance please review this PR. A big step forward with this PR, so need more people to look into changes here before we merge it.

Looking forward for this to be merged.

Not sure whether I'm the only one experiencing the issue, but updating from the branch to my project, angular seems to be unable to resolve any css whatsoever, neither the ones package-related, nor the inline ones (or included ones).
Was that tested already or am I the only one experiencing that?

@briosheje Maybe you merged something incorrectly? I have the same changes in our production code already and everything seem to be fine. You need to make sure path for mini-css-extract-plugin is set up correctly in your branch (webpack.prod.js)

@lanovoy No, sorry, everything was merged properly, the issue was slightly thinner: any css file should be included in styles.scss, I'm using some third-party libraries which were included in polyfills.browsers.ts (official guides explicitly recommended to include these files in *.ts files instead of .scss ones), moving them to scss imports apparently solved the issue, I'm only experiencing some strange icon sizes, but it's not related to the PR itself.
Perhaps it's worth mentioning that with this commit you won't be able to import .scss files in .ts files anymore, or, at least, that it may not work exactly as expected.

Hmm, that's worth investigating more, since future versions of libSass will disallow importing css files using '@import'

@lanovoy the easiest you can try is importing twitter bootstrap, in my case version 4:
package.json:
"bootstrap": "^4.0.0",
If you import through styles.css:
@import '~bootstrap/dist/css/bootstrap.min.css';
It properly works.
If you try to import it through polyfills.browser.ts, it doesn't work:
import 'bootstrap/dist/css/bootstrap.min.css';
It does not throw any error or whatever, it just silently fails with no error (the css seems not to be bundled at all to me, but I might be wrong).
I'm not sure how to investigate further on that topic, I've always had issues with webpack's css resolving with electron some time ago, and literally gave up after hours of guessing. In that case, however, I had no issues at all (until angular 6, of course).

@briosheje Did you try to import from app.module or main? polyfill.browser.ts is a separate entry point, so I'm not exactly sure if importing css from it and from the main would be effectively the same.
Also is it only a problem with production builds or is it the same with dev builds?
If you will have time, can you check if projects generated with latest angular cli have a same problem with importing css from ts files?

Sure, I quel try tomorrow morning.
Currently, importing from the css, i have some strange outputs in my production build, while in dev mode it’s properly working.
I will try to import everything in the main file and check both dev and prod builds
Ottieni Outlook per iOShttps://aka.ms/o0ukef

From: lanovoy<EMAIL_ADDRESS>Sent: Thursday, June 28, 2018 8:55:20 PM
To: gdi2290/angular-starter
Cc: Marco Iamonte; Mention
Subject: Re: [gdi2290/angular-starter] Migration to Angular 6, RxJs 6 and Webpack 4 (#2019)
@brioshejehttps://github.com/briosheje Did you try to import from app.module or main? polyfill.browser.ts is a separate entry point, so I'm not exactly sure if importing css from it and from the main would be effectively the same.
Also is it only a problem with production builds or is it the same with dev builds?
If you will have time, can you check if projects generated with latest angular cli have a same problem with importing css from ts files?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/gdi2290/angular-starter/pull/2019#issuecomment-401137624, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABz5gDOkpOEXWzeXILUbUQ_ncN0fUlNWks5uBSaYgaJpZM4U01PQ.

@lanovoy sorry for the late answer, but I had to test some stuff before being able to go on with gfx tests.
Apparently, external libraries does NOT work if they are included either in app.module or in main.browser.
Local scss and css files are fine, but whenever a .scss or css points to anything under node_modules I'm unable to make it work in devmode (not sure in prod mode, but I'm not going to test it).
For instance, I'm including "regular" local .scss and css files in my app.module, while I'm importing third party libraries through scss @import in some .scss files, though it's probably not the best practice.
I will keep you updated if I'm able to find any reason or any workaround to make it work through .ts

When I try to change target output from es5  to es2015 in tsconfig.webpack.json.
I got:
error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.

@lanovoy Just to keep you updated, both dev and prod mode seems to somehow work by importing css in .scss files, regardless whether they are referenced locally (local css files) or npm dependencies.
I'm still confused about some strange css behaviors in devmode, while in prod mode they seems to be working fine.
I think this pull should just be release asap regardless the .scss issues, perhaps in the near future we may find a way to import .scss directly from .ts files instead (despite there still are so many libraries recommending to import through .scss).
What is interesting enough, and I think this should be mentioned, importing fontawesome now properly works both in dev and prod mode, in my case I'm following this approach in styles.scss:
$fa-font-path: "~font-awesome/fonts" !default;
@import "~font-awesome/scss/font-awesome";

and it's working beautifully, while in the previous version (webpack 3 and angular 5) this was not working in prod mode, so some magic happened there :).


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-25-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3253

Questions ?
Please refer to the Backport tool documentation


PhantomFlow won't run inside project

Hello!
I've previously gotten PhantomCSS integrated into my app, and it works great!
I want to explore using PhantomFlow, but I'm having problems getting it integrated. I'm more designer than developer, so my Node and CLI troubleshooting skills are a little pedestrian, and I apologize ahead of time if the solution should be obvious :confused:
Anyway, cloning the repo works fine; however when I try to install PhantomFlow as a module in my project, it doesn't run.
$ cd my-project
$ npm install phantomflow --save-dev

I set up my directories to mirror the demo.
my-project/
|
└── test/
    ├── my-test.js
    |
    └── flows/
        └── hello.test.js

For my-test.js, I used the NodeJS setup example from the documentation.
// my-test.js

var flow = require('../node_modules/phantomflow').init({
    debug: 1,
    // createReport: true,
    // test: 'coffee'
});

// flow.report(); // Show report

flow.run(function(code){
    process.exit(code); // callback is executed when PhantomFlow is complete
});

The example seems considerably less complicated than the test.js file from the demo.
That file didn't run either, though, so I figured I'd go with the less complicated version?
The flow is a simple file...
// hello.test.js

(function(){

	/*
		User flows described in one decision tree
	*/

	flow("Say hello", function(){
		step("Open mouth", openMouth);
	});

	/*
		Steps
	*/

	function openMouth(){
		casper.log('Opening mouth...', 'debug');
	}

}());

But, when I attempt to run the test, I get the following error. Although, it's not really an error, I guess, but the Terminal prompt just sits there and blinks at me :confused:
$ cd my-project/
$ node test/my-test.js
Parallelising 0 test files on 1 threads.

Hey, great to hear you're finding PhantomCSS useful.
PhantomFlow expects the test files to have a '.test.js' suffix, so hello.js should be hello.test.js.  I'll update the README.
Your file my-test.js can of course be called whatever you want, it's just the entry point.  The Demo test.js file is more complicated than the README example because it's parsing CLI arguments and setting up a server to serve the page under test.  You'll probably want to do something similar, but it's up to you how you do that.

Hey, @jamescryer, thanks! Sorry... it looks as though it might already have been in the documentation to use the *.test.js suffix, I just completely missed it.
However, changing hello.js -> hello.test.js didn't seem to resolve the problem. I still get the same "error". The only other thing I changed from the example was to change the phantomflow require to point to my ../node_modules/phantomflow folder.

It's not finding the tests, but It not obvious to me why. To rule out the require, put your my-test.js in the root and require('phantomflow') instead.
The grunt plugin has another init example https://github.com/Huddle/grunt-phantomflow/blob/master/tasks/phantomflow.js.
Let us know if you figure it out.

Sorry... I really messed all this up... there was a typo in my real code that I didn't represent in my examples. This thread can probably be completely disregarded.

Thanks for letting us know.  PhantomFlow needs to surface syntax errors better.


when and why is the NodeFactory.isAttr method passing an object as "name" argument?

Maybe an object should be checked with a "hasAttr" method.

the code has moved to AttributeFactory and is never used.


Cannot assign ACL in terraform despite tag existing via online console

Describe the bug
I cannot assign a new ACL in terraform despite the tag existing via online console. Why does this happen? Why is it not able access the tag information?

Access Control file on console:

"tagOwners": {
		"tag:tag1":        ["autogroup:admin"],
		"tag:tag2":        ["autogroup:admin"],
		"tag:tag3":        ["autogroup:admin"],
	},

Tailscale terraform ACL (authenticated via API key):

resource "tailscale_acl" "as_json" {
  acl = jsonencode({
    acls : [
      {
        // Allow all users access to all ports.
        action = "accept",
        users  = ["tag:tag1", "tag:tag2"],
        ports  = ["tag:tag3:*", ],
      },
    ],
  })
}

The Error:

Error: ACL validation failed: src=tag not found: "tag:tag1"; []
│
│   with module.aws.tailscale_acl.as_json,
│   on modules/aws/ec2_tailscale.tf line 43, in resource "tailscale_acl" "as_hujson":
│   43: resource "tailscale_acl" "as_json" {

Desktop:

OS: [Linux]
Terraform Version [v1.3.1]
Provider Version [0.16.1]

Fixed. You need to send your full set of ACL and not just the part you want to update (as shown in docs, which are immensely lacking in detail). Tested it on Client API in Python and was reliably able to recreate the error and discover ways to fix it.

The issue persists. Even simply fetching existing acl from the tailnet and applying it back to the resource gives an error during terraform apply.

Hello @bpatwa-sanimax! Is the error you are seeing now still the same validation error that you originally reported, or are you seeing a different error now when you fetch the existing ACL and attempt to apply that?

Hello @mpminardi thanks for your response. I was able to debug the error from the error messages. I didn't knew the error messages existed in the diagnostics tab.

No worries, glad to hear you were able to resolve your issue!


trouble creating link

Hi @brockfanning, i'm having trouble creating a link using this coding method, any ideas?  Here's the result:

Thanks!

I used the same approach on 11.4, but am not sure what's different above.

Yes, I think that's a quirk that may need clarification in the documentation. The content below the "---" in the metadata supports Markdown. But most other content (like the contents of localization.yml) does not support Markdown.
If you want to put a link in a place that doesn't support Markdown, you'll need to use HTML. So, instead of:
[here](http://sdglamayor.cityofla.acsitefactory.com)

...you would do this:
here

Obviously not as clean as the Markdown syntax, but at least it gets the job done.

thanks @brockfanning for the clarification.

@brockfanning something is happening with the spacing.  i've looked at the source code and can't quite figure it out.  Also, maybe the here can be underlined?   I've changed it to at this link...in case 'here' isn't obvious to folks.

Hi @dawncomer yes this is a case where some CSS in Open SDG is causing an issue. There is CSS that was meant to be applied only to the goal icon, but is inadvertently affecting your link.
Probably the quickest way to resolve it would be to add some more custom CSS here: https://github.com/dawncomer/open-sdg-site-starter/blob/develop/assets/css/custom.scss#L5
For reference, here is the chunk of CSS that's affecting your link: https://github.com/open-sdg/open-sdg/blob/master/assets/css/default.scss#L555

Hi @brockfanning , I'm not following the steps to take to how to resolve this.  Can we do a walk-thru on CSS  Friday AM?


[FEATURE REQ] Discussion about support for HTTP Exception and Error

Is your feature request related to a problem? Please describe.
Guideline: https://azure.github.io/azure-sdk/java_introduction.html#java-errors-exception-tree
Currently, DPG codegen will use core Exception like ClientAuthenticationException, ResourceNotFoundException, HttpResponseException in SDK.
However, the value (response body of the error) of HttpResponseException and its subclass in core is Object. In runtime, it is JSON deserialized to Object type, which usually is a LinkedHashMap class.
Test: https://github.com/azure/autorest.java/blob/main/typespec-tests/src/test/java/com/cadl/builtin/ExceptionTests.java#L53-L61
We may actually wish the Exception from runtime has value be class ResponseError, which is easier for customer to use, as ResponseError has code and message on interface.
User may write
if (exception.getValue() instanceof ResponseError) {
    switch (((ResponseError) exception.getValue()).getCode()) {
        ...
    }
}

There is also some service that may want to have their own Error class, either subclass of ResponseError, or a different one e.g. BatchError.
Describe the solution you'd like
There may be 2 solutions, if service want a different Error class.

Use a different Exception class, e.g. BatchException with value type BatchError (or with ResponseError, if not change to error)
Use HttpResponseException and its subclass in core, but deserialize error body to either BatchError or ResponseError (though the type of value is still Object)

If follow (1), there is no change to azure-core. But it may introduce more inconsistency across SDKs, as in some user can catch ResourceNotFoundException to handle 404, in other user had to catch BatchException or HttpResponseException and check status code.
Some lib uses (1) https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/storage/azure-storage-blob/src/samples/java/com/azure/storage/blob/StorageErrorHandlingExample.java#L33
If follow (2), we may need to modify azure-core, to have error body deserialized differently.
I can think of one solution to have UnexpectedResponseExceptionType annotation augmented to be e.g.
        @UnexpectedResponseExceptionType(
                value = ResourceNotFoundException.class,
                code = {404},
                error = ResponeError.class)

So that RestProxyBase can deserialize based on error = ResponeError.class here.
Some lib uses (2), but with handwritten code https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/containerregistry/azure-containers-containerregistry/src/main/java/com/azure/containers/containerregistry/implementation/UtilsImpl.java#L325-L347
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Description Added
[x] Expected solution specified

@weidongxu-microsoft I like the second proposal where the exception type and the exception payload can be specified in UnexpectedResponseExceptionType. This can be done in a non-breaking way as well as a default Class type of Object.class could be used and where needed the more specific types can be used.

Thanks Alan. If error is not specified, I guess we would just use UnexpectedExceptionInformation.exceptionBodyType (as e.g. BatchException would have BatchError).
Will try to see if we can bring it up in azure-core weekly meeting (I assume there is one), and get design finalized. Then I may able to make a PR (seems not very hard, as UnexpectedExceptionInformation appears already have data structure ready).

value is an Object in HttpResponseException and anything can be assigned to this. However, we should not eagerly do this in order to avoid presenting users with a type that has inner error details and non-contractual APIs exposed. So, as a first step, let's make this explicit with adding error = ResponseError.class. If this is not specified and if the response body of a non-2xx response matches ResponseError shape, then we can eagerly map this to ResponseError type.


Got "TypeError: Cannot read property 'call' of undefined" while using TerserPlugin and set mangle.properties to true.

Bug report

What is the current behavior?
Got error message "TypeError: Cannot read property 'call' of undefined" if I set the mangle.properties to true in terser-webpack-plugin's options.
If the current behavior is a bug, please provide the steps to reproduce.

What is the expected behavior?

Other relevant information:
webpack version:  4.42.1
Node.js version: v13.5.0
Operating System: MacOS
Additional tools<EMAIL_ADDRESS>

This is not related to webpack, but terser instead. Probably a problem in your codebase. Nobody can help you with this without a minimal reproduction case.


License

This software should have a license.  Could we use AL V2?

I think so !

On 7 Feb 2015, at 01:26, Yolanda Gil<EMAIL_ADDRESS>wrote:
This software should have a license. Could we use AL V2?
—
Reply to this email directly or view it on GitHub https://github.com/IKCAP/organicdatascience/issues/2.


Proposal: fix string representation for tensor in malt/learner

By default, the tensors in malt/learner is displayed as dual (i.e. #(#<procedure:dual> 0.0 #<procedure:..>)); this is inconsistent with other implementation and distracting during implementation.
Propose to change it to display only the /rho part of the dual.

Do you mean when you (require malt/learner) on its own? In general, that is not recommended except for small experiments. I would generally recommend switching implementations using local.cfg, in which case the REPL is properly configured to print duals properly:
~/work/malt % cat local.cfg
(tensor-implementation learner)
~/work/malt % make clean && make
find . -name 'compiled' | xargs -I% rm -rf %
Building ...
Tensor implementation: learner
Tensor implementation (no-duals): learner
Tensor implementation (no-overrides): learner
Tensor implementation (no-duals, no-overrides): learner
Running tests ...
575 tests passed
~/work/malt % racket
Welcome to Racket v8.2 [cs].
> (require malt)
> (tensor (+ 2 3))
(tensor 5)
> (+ 2 3)
5
>


Discover tags

Hi,
how we can do for discover tags from online services?
thanks

how we can do for discover tags from online services?

I'm curious, what's the ask?  I don't really follow, sorry.


fix subscription exception handling

Regression introduced in pull request #2925.

Now all synchronous exceptions are squelched.
Fixes #2977
Description

Linked issue

Type of change

[x] 🐞 Bug fix (non-breaking change which fixes an issue)
[ ] 🛠 New feature (non-breaking change which adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[ ] I have read the style guide document, and my code follows the code style of this project.
[ ] If my code deals with exceptions, it follows the guidelines.
[ ] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.

Testing checklist

[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

QA Steps

Screenshots (if available)

Great!


Association to mapped select that uses @Param arguments fails

I was attempting to upgrade a project from an old version of mybatis (3.2.2) and ran into an issue where associations that select on multiple columns fail when the nested query uses @Param annotations.    The same queries work fine in 3.2.2.  I have confirmed the problem exists in 3.2.8, 3.3.1 and 3.4.0.

MyBatis version
3.2.3 +
Database vendor and version
Any
Test case or example project
Pull request with failing test  https://github.com/mybatis/mybatis-3/pull/648
Steps to reproduce
I have modified the existing complex column test suite to add a failing test case that uses an association to a mapped statement that uses @Param annotations.  Other than the query being defined in the java interface and using @Param instead of being in the XML the test is the same as the existing scenarios.
Expected result
Test should pass and result should be identical to the query that uses XML.
Actual result
Test throws the following exception
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.apache.ibatis.binding.BindingException: Parameter 'firstName' not found. Available parameters are []
### The error may exist in org/apache/ibatis/submitted/complex_column/PersonMapper.java (best guess)
### The error may involve org.apache.ibatis.submitted.complex_column.PersonMapper.getComplexWithParamAttributes
### The error occurred while handling results
### SQL: SELECT id, firstName, lastName, parent_id, parent_firstName, parent_lastName FROM Person WHERE id = ?
### Cause: org.apache.ibatis.binding.BindingException: Parameter 'firstName' not found. Available parameters are []

#648

Hi emacarron, here i encounter a similar exception
Caused by: org.apache.ibatis.binding.BindingException: Parameter '_now' not found. Available parameters are [param1, domainId]
following is my case:

Define a Mapper interface method call loadAllItemRecordWithDomain(@Param(value = "domainId") String domainId)
In corresponding Mapper.xml define the query statement and contains restriction:
DOMAIN_ID=#{domainId} AND CREATED_ON > #{_now,jdbcType=DATE}
Note: Here i will define a StatementInterceptor (annotation is : type = StatementHandler.class, method = "prepare")  to initialize the _now parameter.

Note: In Mybatis_3.3.0 and 3.4.1 both are encounter same issue.


OSD-4804 service-quota --all-regions

Allow use of --all-regions to loop through supported regions and apply servicequota commands in sequence

@drpaneas @rogbas this should be in a state for review and merge now, I have tidied this from @drpaneas 's previous comments.

Thanks Drew I will check it soon

/lgtm

/lgtm


dotnet try error - Type Not Found  (System.Object, System.String, System.Int32, etc) workaround

Reproducing Error

In the terminal navigate to folder with Try .NET samples.
Run dotnet try.

This will launch the browser.
Hit run and you might see the error below.

Fix

Open the code project directory try-samples\Beginners\myapp in  an editor or file explorer
Delete the following folders ‘bin’ and ‘obj’
Delete .binlog file

Run dotnet try verify . at the ``try-samples\Beginners` folder a terminal.

Run dotnet try.
Hit run once the browser has launched
All fixed!

I've run into this issue occasionally. It seems to happen after I've updated one of: Visual Studio, .NET Core SDK, or dotnet-try. I haven't tracked it down conclusively yet

@BillWagner  Thank you! I will update the issue to state the above as possible causes.


WIP: add initial implementation of receipts from papa

Added topics::receipt
Added some consts
MamaDuck now tracks one MUID
PapaDuck immediately sends receipt for each packet received, data payload is MUID
Added duckutils::toString

Describe at a high level the solution you're providing
For every packet a PapaDuck it receives, it sends a receipt back. Also, MamaDucks have some logic to understand receipts.
Is this a patch, a minor version change, or a major version change
Minor

The String() type is from the Arduino library, not the C++ standard library.
https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/

Ok, that makes sense because it is a char array under the hood.

I've made an initial implementation of a front-end that shows when the MUID has been acked by the Papa:
This screenshot is a bit doctored, but I wanted to give an update.

f6f85b72ab8e obsoletes #226 because the interrupt handling is handled differently.

We are also making an assumption that all LoRa radios are SX127X which isn't true, since CDP also support at least one SX126X board.

Good point. I can back out the interrupt handling.
There was a port to Raspberry Pi Pico mentioned a couple times. Is that somewhere I could see / help with it?


Remove get_with_dump

Change non-comment get_with_dump to get
Fix all resulting argument alignment issues
Delete definition of get_with_dump

When working on #578, I decided to do this as a batch because:

I'm confident it won't break anything
It's easy and semi-automatic via a regex

Coverage decreased (-0.7%) to 81.556% when pulling 98cde8365e9bc0331dac4ed07700373c634f6604 on jdc-173424407-dump-get_with_dump into 3fc90df29c78085fbb45b726dfabb8653a78f973 on bootstrap-4.


How can I get api key?

Please more details about get api key

Create a new account on https://openweathermap.org/.
After you logged into your account, tap on your profile name -> my API keys and you'll see your API key there.


chore: added comic website #1340

Related Issue
Closes #1340

Description

You can read any manga/manhwa or any other comics for free that too in original quality.
Screenshots

Checklist

[X] My code adheres to the established style guidelines of the project.
[X] I have included comments in areas that may be difficult to understand.
[X] My changes have not introduced any new warnings.
[X] I have conducted a self-review of my code.

@JasonDsouza212

The PR title format you are using is causing an error in the workflow. Please follow the instructions in the CONTRIBUTING.md and change it accordingly.

@JasonDsouza212  please check