0.8.5

Things we want to happen before we tag a new release (0.8.5):
note: things to consider before a new tag for xst:

[ ] font resize bug https://github.com/gnotclub/xst/issues/144
[ ] ligatures https://github.com/gnotclub/xst/pull/104 (nb: this introduces a new dependency)
[x] icon patch https://st.suckless.org/patches/netwmicon/
[x] (maybe) check out this reverse ATTR issue, see if we can cope with opacity set easier: https://github.com/gnotclub/xst/issues/75#issuecomment-515976278
[ ] (maybe) xresources keybind handling: https://github.com/gnotclub/xst/pull/122
[x] (last) sync with upstream https://git.suckless.org/st/log.html (at the time of adding this, there are only 2 commits from 3-18-2022 to scoop up)

i wouldn't personally consider #144 to be a release blocker

sync with upstream to version to 0.9 please.

icon patch https://st.suckless.org/patches/netwmicon/

i personally prefer the deprecated version of the patch, which doesn't introduce a new dependency

thanks a lot! 🔥


Add Redux Toolkit to the Privacy Center

Closes #2298
Code Changes
Setup:

pc/package.json: Install compatible RTK, Redux Types, and Redux Persist
pc/app: Initial app store, api, and config
pc/types: OpenAPI generate types

Another stopgap until we solve https://github.com/ethyca/fides/discussions/2297

Payoff:

pc: IdVerfication slice
pc/index: Use RTK to query IdVerification config
pc/consent: Config slice with consent option overrides
pc/cy: Dispatch config overrides from tests

Steps to Confirm

[ ] Modify the id-verification requirements from the fides API. The PC should reflect the changes.
[ ] Modify the consent options in config.json. The cypress tests should use the options defined within the test instead.

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md

Description Of Changes
The "Setup" code changes add boilerplate and are basically invisible at runtime.
The "Payoff" changes make actual use of RTK. The id-verification code was a clean example of a GET request that can be swapped to RTK Query from a plain fetch.
The config slice its consent overrides should be familiar redux code. The Cypress usage is more interesting: we need to expose the store from the app, access the window variable from a cypress command, and actually try that out in a test. What I have here is just a starting point.
In Cypress, the "test" consent options are used by the app:

Looks like Jest needs some wrappings.

Looks like Jest needs some wrappings.

Actually, I'm replacing the jest tests that required mocking renders with Cypress instead. The modal actions were already tested (for privacy request at least).


tx-generator: fix multi-threaded use of streams

By coincidence this bug does not show up in the current benchmarks but it should be fixed anyway.
At the moment every node2node submission protocol thread takes the TX stream as input value.
If a TX-stream produced x TXs, each thread can (could) produce x TXs.
And if a TX-stream produced a fixed set  of TXs than each thread would reproduce the same TXs.
The fix is to use the TX-stream single threaded, i.e. to put it behind an MVar.


ability to run routing at will

it turns out you need to do quite a lot of testing to get the OD points right, as Google can be very fussy – e.g. if you put the point on the wrong side of a double carriageway it routes you on a long loop to get that correct side.  At the moment I've been doing the testing by making a version and then waiting until the next hour for it to be routed, then making edits and waiting again. But that won't be practical once journeys are being routed on Tuesdays only.  Could there be a mechanism where one forces an ad hoc routing (for all non-disabled trips) by typing something in the command line or somewhere?

I've added type to journeys which can be:
frequently_routed, infrequently_routed or test_routing
I've set the default to be: frequently_routed, i.e. #9
If you set it as test_routing then it will run within a minuet and be disabled after running.  You can update the type so if that works you can change the type to infrequently_routed or frequently_routed, and re-enable it.


Add content.header and layout options

This adds the possibility of defining a header text for the cookie consent popup. Also, the layout option is made configurable, since the default of basic does not render the header.

Merged. Thank you, @grebaldi


[Bug] Files including executable scripts not always recompiled

If a script that includes an executable script (one with a main() or StartingConditional() function) does not have a matching .ncs file, it will not be recompiled unless either it or the executable script is updated.

Still valid?  compile.nim searches for companion .ncs (line 131) files for all executables.  Recommend closing.

Agreed!


Add Airbyte extractors to the Hub

If we're going to add instructions to config the image name we need to keep track of any taps that dont match exactly tap- to source-, so I'll put them here for now and we can figure out how to handle them later:

tap-apify -> source-apify-dataset

@pnadolny13 looks like this revealed a Hub frontend bug around setting length https://deploy-preview-1101--meltano-hub.netlify.app/extractors/tap-alloydb

@tayloramurphy the GNews image looks to be for google news, which also tripped me up but the docs link out to https://gnews.io/. So that image will need to be replaced.

@tayloramurphy and @pnadolny13 - I noticed in our meeting that the config instructions use space as a delimiter, but I think we need to use dot ('.') as delimiter.

@tayloramurphy and @pnadolny13 - The pages currently say "tap-foobar from airbyte". Can we change to something like tap-foobar (airbyte variant)?

@aaronsteers I've made both of those changes! thanks for catching https://deploy-preview-1101--meltano-hub.netlify.app/extractors/tap-adjust


ILLEGAL INSTRUCTION on mipsel device with no hardware floating point support

What version of V2Ray are you using?
v5.0.2 Developer Preview
What's your scenario of using V2Ray?

Using V2Ray on routers.
What problems have you encountered?
ILLEGAL INSTRUCTION on mipsel device with no hardware floating point support
https://github.com/v2fly/v2ray-core/pull/468
What's your expectation?
add MIPS SoftFloat support

In the past, the binaries with softfloat support were added to the release of V2Ray.  But then it was removed. Currently, you could build V2Ray with softfloat support by yourself.

BTW, the performance of  the CPUs without float instructions support usually is too low to run V2Ray smoothly.

build V2Ray with softfloat support by yourself.

How to enable softfloat in the build script?

build V2Ray with softfloat support by yourself.

How to enable softfloat in the build script?

set the GOMIPS environment variable to softfloat. For exmaple:
GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -v -o v2ray -trimpath -ldflags "-s -w -buildid=" ./main


Exception when trying to make a steam search

Flow Launcher version: 1.14.0
OS Version: Microsoft Windows NT 10.0.19042.0
IntPtr Length: 8
x64: True
Python Path: C:\Users\Username\AppData\Roaming\FlowLauncher\Environments\Python\PythonEmbeddable-v3.8.9\pythonw.exe
Node Path:
Date: 04/09/2023 13:49:48
Exception:
Steam Search Exception:
Websites: https://github.com/Garulf/Steam-Search
Author: Garulf
Version: 8.1.2
Flow.Launcher.Core.ExternalPlugins.FlowPluginException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan1 bytes)    at System.Text.Json.Utf8JsonReader.Read()    at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)    at System.Text.Json.JsonSerializer.ContinueDeserialize[TValue](ReadBufferState& bufferState, JsonReaderState& jsonReaderState, ReadStack& readStack, JsonTypeInfo jsonTypeInfo)    at System.Text.Json.JsonSerializer.ReadFromStreamAsync[TValue](Stream utf8Json, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)    at Flow.Launcher.Core.Plugin.JsonRPCPlugin.DeserializedResultAsync(Stream output) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 93    at Flow.Launcher.Core.Plugin.JsonRPCPlugin.DeserializedResultAsync(Stream output) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 96    at Flow.Launcher.Core.Plugin.JsonRPCPlugin.QueryAsync(Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 315    at Flow.Launcher.Core.Plugin.PluginManager.<>c__DisplayClass22_0.<<QueryForPluginAsync>b__0>d.MoveNext() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 191 --- End of stack trace from previous location ---    at Flow.Launcher.Infrastructure.Stopwatch.DebugAsync(String message, Func1 action) in C:\projects\flow-launcher\Flow.Launcher.Infrastructure\Stopwatch.cs:line 34
at Flow.Launcher.Core.Plugin.PluginManager.QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 190
--- End of inner exception stack trace ---
at Flow.Launcher.Core.Plugin.PluginManager.QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 210
at Flow.Launcher.ViewModel.MainViewModel.<>c__DisplayClass135_0.<g__QueryTask|2>d.MoveNext() in C:\projects\flow-launcher\Flow.Launcher\ViewModel\MainViewModel.cs:line 829
--- End of stack trace from previous location ---
at Flow.Launcher.ViewModel.MainViewModel.QueryResults() in C:\projects\flow-launcher\Flow.Launcher\ViewModel\MainViewModel.cs:line 803
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

This may be related to issue #50 & #46. I assume your virus scanner flagged this plugin as a virus and simply removed it from the file system and Flow Launcher can not find it.
The plugin is not a virus and I have attempted to use a different packaging method in order to stop these false positives from happening. Please update to the latest version and see if that fixes the issue.

Yes, the windows defender scanner flagged it as a virus at the time but I didn't thought it would have deleted the .exe file.
I've uninstalled/reinstalled the plugin but it still is flagged as virus:

Flow Launcher detects updates periodically and may not have detected the update just yet.

The 9.x version solved the issue for me! Thanks a lot for your time and effort! <3


[BUG] PointerEventsResult message losses from improperly scaled timestamps

Issue Description:
With the pointer locked, press a few keys, while running the following code:
import { engine } from '@dcl/sdk/ecs'
import { PointerEventsResult } from '@dcl/ecs/dist/components'

engine.addSystem(() => {
  for (let [, commands] of engine.getEntitiesWith(PointerEventsResult(engine))) {
    [...commands].forEach(console.log)
  }
})

Expected:
A log trace of up to 100 of the latest keys pressed and/or unpressed.
Actual:
Various key changes are missing in the list.
Notes:
The entries are such as this one: { "button": 6, "state": 1, "timestamp": 1097, "tickNumber": 250 }.
Clearly the timestamps are not fine-grained enough, most likely due to them being improperly scaled when relayed from the engine.

Most likely the cause of #439, #1027, and #1049.


add OWNERS_ALIASES support

OWNERS_ALIASES groups are needed for fair blunderbuss review requests.

/override test-integration-metal3-dev-tools-centos test-integration-metal3-dev-tools-ubuntu

/cc @kashifest @Rozzii


Discussion: suggestions for handling First Energy?

First Energy corp is the parent company of my utility, JCP&L (as well as several others). I see that JCP&L is using opower on the fenj subdomain.
However, the problem I'm having that's preventing contributing a jcpl utility is the login process. The login form itself seems simple enough, but there is an encrypted js file added to the login page that intercepts the form submit action and injects 6 hidden form fields with encrypted or hashed data to accompany the login/password fields. Since these inputs are added JIT before submitting the form, we can't just extract those values from the login/landing page. Examples of the injected inputs:
# large values truncated for obscurity and brevity
-d "r8loFrsvDB-a=esnC<...5386 bytes total...>oCY" \
-d "r8loFrsvDB-z=q" \
-d "r8loFrsvDB-d=AB<...80...>M" \
-d "r8loFrsvDB-c=AG<...61...>O-S" \
-d "r8loFrsvDB-b=-3pntgr" \
-d "r8loFrsvDB-f=Axg<...93...>AAAA%3D%3D"

To make matters worse, it appears that there is also a tripwire attached to this honeypot, where if you don't send the exact required values, your IP is blocked for a period of time (seems to be 5-15 min or so).
Looking at the other utility providers, none of them appear to have anything close to this level of security involved (why FirstEnergy requires such security..? 🤷)
I haven't tried something like headless chrome, which I think that would likely work.. But I suspect that would not be a welcome addition to this library.
Are there any other recommendations for how this could be handled?

Since this library is used by Home Assistant, we cannot have a headless browser due to https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md
Possible alternatives that I can think of:

in theory you could reverse engineer the JS but it seems hard.
try to see if you can bypass the login by capturing and reusing an existing session cookie. It's likely to expire though
fork the library, introduce a headless browser dependency, and create a custom integration
change the official integration to accept an access token for any utility, create an addon with a headless browser that is responsible for handling the login and getting the access token which can then be passed to the integration

Also take a look at https://github.com/tronikos/opower/pull/13 since it might give you ideas to do something similar. That one is reusing the device token as a cookie which is similar to my 2nd alternative. Apparently that expires after 2 years.

Thanks for the info. I did look at that PR and noticed the 2FA addition.
This does give me some ideas, because it's not FE this library integrates with, it's opower. So if I can identify how the utility authorizes the access token to opower, then maybe an option could be to add a last-resort "utility" that's configured with subdomain and opower_access_token, which in theory could work for any yet-unimplemented utility as well.
I'll look over the har I captured, and see what I can find. But if the access token has a short expiration, the only alternative might be a cookie combined with some kind of ongoing ping to keep the session alive. The FE website does auto-logout after an annoyingly short time (again, makes no sense to me why they're treating it like a bank account 🤷♂)

Yes we should only need subdomain, opower_access_token, and optionally timezone (we could get that from the API response) to integrate with any utility. I haven't tried but the access token is likely to be short lived. If we somehow had the refresh token we could in theory get a new access token before it expires without needing username/password.

So, I've done some testing today, and I made a generic manual.py utility, taking subdomain=username and access_token=password (not great, I understand, I just wanted to see the library work with fenj utility). ...and success! Kind of...
I get the Customer[] list, but then fenj responds 404 from combined-forecast. That crashes in demo.py, because it's expecting a response. I see that demo.py takes the Account objects from the forecast response. However, in fenj, I see the utilityAccounts coming back in the customers response. I can work around that by suppressing the 404, but of course the rest of demo.py is driven entirely by the forecast response, which isn't going to work with fenj (and likely other FirstEnergy utilities, at least for now).
I'm not sure how other utilities respond, but this is how fenj responds to customers:
{
  "customers": [
    {
      "id": ####,
      "uuid": "u-u-i-d",
      "legacyOpowerId": "ab-1-####",
      "accountNumber": "####-####",
      "accountName": "",
      "address": {
        "uuid": "u-u-i-d",
        "streetNumber": "##",
        "streetName": "xxxxx",
        "subpremise": "####",
        "postalCode": "#####",
        "city": "xxxxx",
        "country": "XX",
        "state": "XX"
      },
      "type": null,
      "utilityAccounts": [
        {
          "id": #####,
          "uuid": "u-u-i-d",
          "utilityAccountId": "#####",
          "utilityAccountId2": null,
          "servicePointId": #####,
          "meterType": "ELEC",
          "preferredUtilityAccountId": "#####",
          "readResolution": "BILLING"
        }
      ]
    }
  ],

I have to step away for now, just wanted to mention that in case this is a dealbreaker and not worth pursuing. I will work on converting this response into a fake list of forecasts, and just see how far I can get.

but the access token is likely to be short lived

Yeah, the access token seems to be in the ~10-15 min range. Then I have to log back in and extract my access token manually.
Even if this won't work for JCP&L/fenj, I can contribute the manual utility, if you think it would be useful. It's really only going to be useful for testing and debugging.


Setting callback options

I cannot see how to set Fresco callback options if I'm not setting up in javascript.
E.g. I need to toggle some body class when Fresco comes into view / hides.

I am having this same issue. Were you able to find a solution?


OpenSSH caught up and added a "Include" directive as of v7.3

OpenSSH finally caught up:

"ssh(1): Add an Include directive for ssh_config(5) files.", ref: https://www.openssh.com/txt/release-7.3

Can you maybe update the readme and repo description to raise attention for this?

Yes, sure,
Do you want to make a PR?

Sure. Can you update the repo description as well?

Done, thanks


Collaboration with ModernFlyouts

Hi @thewizrd, im one of the developers of ModernFlyouts, i came across this project after one of our contributors added it to the list of extensions to get around problems with apps not supporting STMC. Nice project by the way, very useful.
I just thought I would enquire whether you would be interested in a collaboration of some sort to add this functionality to ModernFlyouts, possibly thought adapting this into an extension?

Hi, I've actually been using ModernFlyouts recently to test some of the SMTC functionality.
How were you looking to integrate the program's functionality?

Hi, @thewizrd do you have a discord account for us to communicate?

How were you looking to integrate the program's functionality?

We are currently in the middle of writing a big update - 0.11 which basically completely rewrites the app. One of the things we are considering adding is support for extensions / plugins. One of the thoughts was to adapt your app into an extension, enabled if the user had iTunes installed.

Hi,
You can email me at<EMAIL_ADDRESS>I'll share my discord username there.


Update link to AGS repo in AGS blogpost

Update link to AGS repo in AGS blogpost

Update incorrect link to AGS repo in AGS blogpost
Why are these changes needed?

Related issue number
Closes #2018

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

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

Project coverage is 35.46%. Comparing base (462ef9c) to head (3c2f18a).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2022      +/-   ##
==========================================
- Coverage   37.53%   35.46%   -2.07%
==========================================
  Files          65       65
  Lines        6913     6913
  Branches     1521     1521
==========================================
- Hits         2595     2452     -143
- Misses       4092     4247     +155
+ Partials      226      214      -12

Flag
Coverage Δ

unittests
35.46% <ø> (-2.07%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


make support

I added "preLaunchTask": "make" to launch.json and
{
	"version": "0.1.0",
	"command": "make",
	"isShellCommand": false,
	// Show the output window only if unrecognized errors occur.
	"showOutput": "always", //"silent",

	// use the standard tsc problem matcher to find compile problems
	// in the output.
	"problemMatcher": "$tsc"
}

in tasks.json and now make runs each time I click start, which is pretty good. But,

If there are compile errors (resulting in make returning an error value), Code doesn't stop. It tries to run the program anyway.
The make output window appears momentarily but is replaced with the debug console (which BTW displays the cryptic message undefined=thread-group-added,id="i1"). I'd like the output window to remain visible if there are make errors.
F8, Ctrl-Shift-M etc., don't work to let me visit the errors in my source code. What does it take to make that work?

I would suggest you provide a more extensive launch.json and a tasks.json file tailored to C/C++ development and with some comments, similar to the default tasks.json file. That would enable new users to get started more quickly.

Might be better to report it to Microsoft, I can't handle that because its completely handled by vscode
That the output window gets replaced is also because of vscode. Maybe give them a suggestion for tabs in the output view at the bottom to separate debugger and the output windows and the task window
Not sure what F8, Ctrl-Shift-M should do. The tasks.json and preLaunchTask is completely handled by vscode and I can't control what it does

Also for C/C++: First im not a C/C++ developer and I dont really know how these tools like make work, second its out of scope for just a debugger. The tasks.json file is good enough for this and any suggestions might be better on vscode's side. I am basically using everything vscode allows a debugger extension to do. It actually cant even read the launch.json or any files directly without using the node.js filesystem library. So that would also be unsafe and might break in future releases

There seems to be some confusion about what is the "February release", "March release", etc. But anyway VSCode v0.10.10 dated 2016-03-07 does work better and does avoid launching if the preLaunchTask returns an error. Thanks for letting me know!


The same private key but different public key results

Dear all,
Below is my test code. I used this library.
e2types "github.com/wealdtech/go-eth2-types/v2"
blst "github.com/supranational/blst/bindings/go"

        skbytes, _ := hex.DecodeString("6c92261bccf2511762f89e3ae7698ec74c365dc3ed1671d8ba839e80a3a45278")
	sk := blst.KeyGen(skbytes)
	pub := new(PublicKey).From(sk)
	fmt.Println(hex.EncodeToString(pub.Compress()))

	e2types.InitBLS()
	e2sk, _ := e2types.BLSPrivateKeyFromBytes(skbytes)
	fmt.Println(hex.EncodeToString(e2sk.PublicKey().Marshal()))

Print results is
b52d4cc94a63acbb29f370827c865a0d7a7a06f1c6513a02a13e6213be5d2204871e65655e3b510d506b4ac1573d732a

b35f5a41f73748a3ecc313028743a32b41956d7024f7a78cddf5a216f0b4db96b49a3159e127a003fb418a8ed75d991e

Why are the results different? And the correct result is "b35f5a41f73748a3ecc313028743a32b41956d7024f7a78cddf5a216f0b4db96b49a3159e127a003fb418a8ed75d991e".
Did I use it wrong?
Thank you very much.

Do e2types use the same key derivation algorithm? blst.KeyGen() implements one specified in "BLS Signatures" spec, in accordance to which it even accepts an optional parameter referred to as key_info. In other words if e2types uses the same algorithm, you'd be required to pass the same key_info parameter. And if it doesn't use the same algorithm, then blst.KeyGen() is simply not the way to go. What is right is more likely for you to figure out.

Use this way new(blst.SecretKey).FromBEndian(sk) will be same with https://github.com/herumi/bls-eth-go-binary


Latest issues

This fixes all current issues for the next zeebe release

Remove payload mappings for merging parallel gateway sequence flows
Remove output behavior from input/output mappings
User can set output mappings for message events
Support for non-interrupting message boundary event
Support for non-interrupting timer boundary event
Add support for timer start event
Add support for message start event

Closes #54 #55 #56 #57 #58 #59 #60

@menski Could you or anyone on your team verify that things are working as you expect them?
git clone git@github.com:zeebe-io/zeebe-modeler.git
cd zeebe-modeler
git checkout latest-issues
npm install
npm run dev

I'll give it a code review when I'm back @office (tomorrow) :+1:

Just one thing: sendTask is currently not supported by Zeebe so if you could just remove it from the palette and morph menu, that'd be great. Thanks!

@MiguelPires Could you create a new issue for this one?

Thanks @dominikhrn, great work. :tada:

Of course, here it is #63


Code Gen

Currently there are issues generating code with the Simulink Coder.
Make updates necessary to make Coding with T-MATS as seamless as possible. (Includes running rapid acceleration mode.
Note: there are a few posts on the user's forum about this.

Complete 7/9/2015
Finished making modification for Code gen.  In general it seems to work.  For  my testing, MATLAB v 2015a and compiler SDK 7.1, There was no need to move C and mex files into the working directory. However there did seem to be a bit of a bug when T-MATS blocks were in a model call block ( a separate issue will be opened for this).
Changes included:
1 -  placing all c and mex files in the same folder on the MATLAB path
2 -  re-writing the dataoutput block to use a MATLAB function block using only code compiling functions, such as fopen, fprintf.  This lead to the creation of binary files for each block when using iDes. Also, the initialization when reading these files was updated and all naming commands beyond the file name were removed.
3 - removed abs_D from all code files, there were issues with defining it in too many files.
4 -  removed other commands from the C-code that were not compatible with code gen.
For a complete list please view the individual commits.
3b4b84dd58e4af2b5013cf6c1de3f97cc0f9b4aa : Moved C to same folder as mex
11910fbc8e7e605f8be533c9ec95b2520270270a : Code Gen Block updates
24cc0b47513412d7c195e784e17e70960751720d : Code Gen example updates


feat(meta): add open graph entries

Fixes #158

The changelog is automated, yeah probably a buggy script entry.


Tan11389/create symbol styles from web styles

This creates a sample that demonstrates how to utilize a SymbolStyle from a web source.

@ldanzinger I redesigned this to use searchSymbols instead of fetchSymbols and it's much cleaner now in regards to how we handle the legend. searchSymbols returns a QAbstractList that we can just plug into the ListView delegate. The list is created in alphabetical order and contains no duplicates.
I don't love having to make nested connections, so if that's not the ideal code paradigm please let me know.

@ldanzinger I addressed your comments and added functions to the QML connections. Couple of questions:

What do you think of the names I used for the functions searchSymbolHandler() and fetchSymbolHandler() respectively?
Should symbolStyle and symbolStyleSearchParameters be declared in the webLayer object? I tried that, but when I went to retrieve symbolStyle in searchSymbolHandler(), it returned undefined. Keeping the two variables as they were was the path of least resistance in addressing the code changes.

Adding create symbol styles from web styles sample


Use before after vendors

Use the hooks before and after in the vendor_spec instead of use beforeAll and
afterAll in the e2e test to prevent failure in CI.

Good @MichMich!, We've need this patch in our codebase.


Support multiple API definitions for a domain, with conflict validations

This requires some shuffling of code, and tests

Route uniqueness should be very easy with the new Router. This is currently how it's checked in http_api_definition_validator. Just aggregate all routes from all definitions, then pass to this function or an equivalent one with another error type.
fn unique_routes(routes: &[Route]) -> Vec<RouteValidationError> {
    let mut router = Router::<&Route>::new();

    let mut errors = vec![];

    for route in routes {
        let method: hyper::Method = route.method.clone().into();
        let path = route.path.path_patterns.clone();

        if !router.add_route(method.clone(), path, route) {
            let current_route = router
                .get_route(&method, &route.path.path_patterns)
                .unwrap();

            let detail = format!("Duplicate route with path: {}", current_route.path);

            errors.push(RouteValidationError {
                method: route.method.clone(),
                path: route.path.to_string(),
                template: route.binding.template.clone(),
                detail,
            });
        }
    }

    errors
}


Support for docopt

http://docopt.org/ (python project at https://github.com/docopt/docopt) is a great tool for commandline scripts. It would be great to have Gooey support it :)

I guess you did not try to search existing issues for word docopt?

My apologies, I did not. I looked at the open issues, but didn't actually think it would be a popular enough request that someone would already make it and didn't think to search all/closed issues. Sorry.


inlet.pull_sample not returning

I'm writing a VS2019 app in CSharp to listen for LSL messages, using lsl.dll v1.15.2.
I have confirmed that LSL.resolve_stream() is seeing the messages, and I can see the xml data from inlet.info().as_xml().
But when I call inlet.pull_sample(), I can see that the method dll.lsl_pull_sample_str() (in LSL.cs) never returns.  When I call inlet.pull_sample(), I'm passing in a string[] initialized with one element.
In this app, I can send messages into LSL, and those are the ones being seen by LSL.resolve_stream(), so I think lsl.dll is being recognized by my code.
Thanks.

Thanks for responding. Yeah, it doesn't seem like a this is a bug, or it would be popping up all over.
That sample is what I based my code on, but I haven't run the sample, I'll try it tonight.
Here's my test code...'ID' is a string containing the type of message.
public void Send (string message)
{
    StreamInfo streamInfo = new StreamInfo("Test", ID, 1, 0, channel_format_t.cf_string, "sample");
    StreamOutlet streamOutlet = new StreamOutlet(streamInfo);
    string[] msg = new string[1] { message };
    streamOutlet.push_sample(msg);

    StreamInfo[] LSLresults = LSL.LSL.resolve_stream("type", ID);
    StreamInlet inlet = new StreamInlet(LSLresults[0]);
    var info = inlet.info().as_xml();
    LSLresults.DisposeArray();
    msg = new string[1];
    double ct = inlet.pull_sample(msg);
}

I tried wrapping 'lsl_pull_sample_str()' (LSL.cs) in a try/catch, but no exceptions were seen.
I saw some internal error codes in LSL.cs, how can I trap those?

That makes sense. I was in the process of creating a separate Sender app
that will send messages on a periodic basis, once a second to start.
However, when I run that with my app, pull_sample still fires and doesn't
return.
I will try the sample receiver project tomorrow.
On Thu, Oct 7, 2021 at 7:04 PM David Medine @.***>
wrote:

This isn't how LSL works. In your code, by the time you've constructed
your inlet, the sample has already gone out. You can't expect an inlet that
connects at some point in the future to be able to get all the data that
got sent at some point in the past.
The usual way of doing this is to have an outlet sitting on a loop and
periodically sending data. Then, on another thread or process, an outlet
connected to that inlet can receive the data as it becomes available. The
reason pull_sample doesn't return in this case is that there is no data for
it to grab.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/labstreaminglayer/liblsl-Csharp/issues/21#issuecomment-938279689,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEALWR66DHYLRM3M3JU52ETUFZGTNANCNFSM5FSBFJJA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks for cleaning up my typo, Chad!
Just a stab in the dark here since the picture didn't show up. When you build ReceiveStringMarkers, did you make sure to add lsl.dll to the project and set its 'Copy to output directory' property to 'Copy if newer'?


Release tracking

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Minor Changes

#394 c9029d4 Thanks @mperrotti! - Adds RiverBreakout component and its supporting design tokens.
Usage example:
<RiverBreakout>
  <RiverBreakout.A11yHeading>Accelerate workflows</RiverBreakout.A11yHeading>
  <RiverBreakout.Visual>
    <PlaceholderImage />
  </RiverBreakout.Visual>
  <RiverBreakout.Content
    trailingComponent={() => {
      ;
Trailing component

    }}
  >
    <Text>
      Accelerate your workflows and scale your business fast with access to millions of open source projects on
      GitHub, the largest source code host.
    </Text>
    <Link href="#">Call to action</Link>
  </RiverBreakout.Content>
</RiverBreakout>

See the Storybook

<EMAIL_ADDRESS>Minor Changes

#389 957c839 Thanks @langermank! - :warning: This update contains breaking changes as part of a Site Refactor update.
Please refer to the following Discussion post for full details on all changes.
:link: Primer Brand v0.25 RC - Technical Preview

#398 2e9ca53 Thanks @josepmartins! - Remove small size variant to Label component. The default medium size should be used instead.
⚠ This is a breaking change

#394 c9029d4 Thanks @mperrotti! - Adds RiverBreakout component and its supporting design tokens.
Usage example:
<RiverBreakout>
  <RiverBreakout.A11yHeading>Accelerate workflows</RiverBreakout.A11yHeading>
  <RiverBreakout.Visual>
    <PlaceholderImage />
  </RiverBreakout.Visual>
  <RiverBreakout.Content
    trailingComponent={() => {
      ;
Trailing component

    }}
  >
    <Text>
      Accelerate your workflows and scale your business fast with access to millions of open source projects on
      GitHub, the largest source code host.
    </Text>
    <Link href="#">Call to action</Link>
  </RiverBreakout.Content>
</RiverBreakout>

See the Storybook

#379 a1aa9b9 Thanks @rezrah! - Added default rounded corners to River.Visual and removed shadows
⚠ This is a visual breaking change
To restore the previous visual appearance, use the following
- <River.Visual>
+ <River.Visual rounded={false} hasShadow>

Patch Changes

#372 dfa33f7 Thanks @mperrotti! - Updated Testimonial component visuals, and enables customization of the quote color.
Usage example:
<Testimonial>
  <Testimonial.Quote>
    GitHub helps us ensure that we have our security controls baked into our pipelines all the way from the
    first line of code we're writing.
  </Testimonial.Quote>
  <Testimonial.Name position="Staff Security Engineer">David Ross</Testimonial.Name>

  <Testimonial.Avatar
    src="https://avatars.githubusercontent.com/u/92997159?v=4"
    alt="Circular avatar from David Ross's GitHub profile"
  />
</Testimonial>

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Smoke test results:

✅ All features tested on two sites, one internal and one externally facing

⚠ One issue on Resources Hub, unrelated to release. Site is missing a dir attribute with ltr or rtl, which is causing components featuring logical properties to display incorrectly.


Graph API: Node connections handling

Summary

Value

Specification

Acceptance Criteria & Test Cases

@mwu-tow, what is happening with this epic and its associated issues? Please close them if they are obsolete or move them to the IDE repo.


Library App - Preserve Data #5

Library App | Preserve Data #5
Project Description

Preserve all data from every user session in JSON format

Project Team
Hello reviewer! @Kwaleyela-Ikafa  and I (@PraisesPJMT ) worked on the following features
Feature Description

[X] On exit from the app saves all the data (books, people, and rentals) into JSON files. One per type of data being stored and named accordingly (books.json, people.json, and rentals.json respectively)
[X] On startup of the app, the app loads all data from files. Cases, where one or more of the files are missing, are also handled.
[X] Implementations are made using the documentation for Ruby's JSON library.

Happy Reviewing :+1:

Thank you so much @gemmen29 for the amazing review!
Thank you @Kwaleyela-Ikafa for the amazing work! :champagne:


Event aliasing for contract bindings

Motivation
Smart contracts written in Solidity can include methods and events with the same name, so long as their signatures are different.
The contract crate provides utilities for generating bindings to a contract's ABI. Because Rust does not support function overloading, these utilities enable the user to add method_aliases, which changes the function's name in the generated contract bindings.
The crate did not provide aliasing capabilities for event definitions.
Solution
The associated function add_event_alias was added to the Abigen struct within ethers-contract::ethers-contract-abigen.
PR Checklist

[X] Added Tests
[X] Added Documentation
[ ] Updated the changelog

Note: Linter check fails because rustfmt adds a trailing comma to one of the tests which causes the test to fail.


Idea: maintain metadata cache about layers

cc @mattmoor @ImJasonH wdyt
Go maintains a cache of build outputs under ~/.cache/go-build (go env GOCACHE). What if we did something similar for our layers under ~/.cache/ko-build? I don't think we should cache the actual layer (it's a waste of space), but we could cache a small amount of metadata about the layers which would let us avoid re-tarring and re-gzipping them if the inputs haven't changed.
Basically, I want the benefits of --watch but without the --watch.
Currently, ko has to re-gzip layers for every build, even if we don't end up pushing them to a registry, because we need to calculate the digest to HEAD the blob (existence check) in the registry. If we already knew what the digest and diffid of each layer would be without having to gzip them, we could avoid a lot of work.
time saved
tl;dr about 800ms per build per cache hit on my underpowered chromebook:
For our first build, time is going to be dominated by go build:
$ time go build ./cmd/ko/

real	0m48.950s
user	1m18.696s
sys	0m10.057s

Subsequent builds are very fast:
$ time go build ./cmd/ko/

real	0m0.600s
user	0m0.744s
sys	0m0.327s

How much time do we spend gzipping?
$ time gzip $(which ko) --fast -c >/dev/null

real	0m1.067s
user	0m0.983s
sys	0m0.054s

How long does it take to sha256 the binary instead?
$ time sha256sum $(which ko)
67b1a51fe41816c164eec9f294bd31bcbcc93c5c96cae2a7506247ad313318a7  /home/jonjohnson/go/bin/ko

real	0m0.293s
user	0m0.258s
sys	0m0.021s

What about sha1?
 $ time sha1sum ~/go/bin/ko
728cfd98610f4f39648eb9741ea0161c531f3b20  /home/jonjohnson/go/bin/ko

real	0m0.149s
user	0m0.134s
sys	0m0.015s

step
time (ms)

go build
600

gzip --fast
1067

sha256
293

sha1
149

We can drop at least 1s here by eliding the gzip for cache hits. We could also elide the go build if we got really into the internal guts of the go build cache, but let's punt on that for now. Hashing the binary will add ~150-300ms back, but we've still saved 7-800ms (of expensive CPU work).
what to store
For a push using go-containerregistry, we need three (~4 if you include the bytes) pieces of information:

The DiffID, which is the sha256 digest of the layer tarball.
The Digest, which is the sha256 digest of the gzipped layer tarball.
The Size of the gzipped layer tarball.
The gzipped layer tarball bytes.

We only actually need the bytes if we're going to upload the layer. If we can skip uploading it (because it's already in the registry), all we need to know are the first three pieces of information. We don't need to cache the actual bytes, because it's easy enough to generate them, and we're in the "miss" path if we need them anyway.
how long to store it
It's not a lot of data... we could just store everything, but I don't want this disk info to grow without bound. It seems unlikely that anything other than the most recent build would be useful. Maybe the last two builds. You usually are either pushing whatever the target is as $COMMIT or you've changed the target slightly and need to rebuild it. As a heuristic, keeping the last two should cover most cases we care about.
We could also do some time-based garbage collection, but time isn't real, so I don't like that solution much.
I'm imagining something like:
// package -> cache keys that we want to retain
// capacity per package can be configurable, but I'd propose at least 2
// simple LRU with fixed capacity
type retainedInfo map[string][]string

At the end of a ko invocation, we can just GC any info that isn't reachable from the above structure (or just make this an explicit thing a la go cache clean).
cache keys
The simplest thing I can imagine is to just sha256 the output binary and use that as our key. In fact, it doesn't really matter what we use to hash the binary, if sha1 or md5 is faster, we can use that as well. We aren't relying on this being that secure.
We can do the same thing for the kodata layers, but we need a different key (no binary to hash). We could hash the tarball and just use the diffid as a key for kodata layers. Using the diffid would work for both the binary layers and the kodata layers, and would be one less string to store, so maybe that's a good idea. I'd want to measure how long tarring stuff up takes, but it seems not that bad:
$ time sha256sum <(tar -c $(which ko) -f -)
tar: Removing leading `/' from member names
544e7ac2d2090a1f533c417904f32bff54bc5a00268cc609ca56a86ec2070837  /dev/fd/63

real	0m0.312s
user	0m0.276s
sys	0m0.082s

^ Probably worth the ~150ms to simplify things...
Another idea would be to use the go build cache keys, but I'm not super clear on how they work:
# Maybe something interestingwe can do here?
GODEBUG=gocachehash=1 go build ./cmd/ko/ 2>&1 | tail -n 1
HASH[link github.com/google/ko/cmd/ko]: dd7b3838bcf55328330b009deed92bd3412cfb21c2d6efcf9277d5aa98e611e5

Anyway, the info we need to store would look something like:
type layerInfo struct {
  diffid v1.Hash
  digest v1.Hash
  size int64
}

type koCache struct {
  map[string]layerInfo
}

lazyLayer
Our implementation for a layer in our cache would look something like:
// We have all this info from the cache.

func (l *lazyLayer) Digest() (v1.Hash, error) {
  return l.info.digest, nil
}

func (l *lazyLayer) DiffID() (v1.Hash, error) {
  return l.info.diffid, nil
}

func (l *lazyLayer) Size() (int64, error) {
  return l.info.size, nil
}

func (l *lazyLayer) MediaType() (types.MediaType, error) {
  return types.DockerLayer, nil
}

// We only need to do these if the registry doesn't have it.

func (l *lazyLayer) Compressed() (io.ReadCloser, error) {
  return v1util.GzipReadCloserLevel(l.tarBinary(), gzip.BestSpeed), nil
}

func (l *lazyLayer) Uncompressed() (io.ReadCloser, error) {
  return l.tarBinary(), nil
}

Alternatively, maybe we can give tarball.LayerFromWhatever some options that allow callers to supply hints like this?
activation
Maybe we don't want to do this by default, so users can just do:
export KOCACHE=$HOME/.cache/ko-build

And this gets enabled?

I want this.

/remove-lifecycle stale

Is this done?

there's a TODO left


CI: Remove meilisearch jobs and fix deploy jobs

Changes:

remove Meilisearch as the service is deprecated;
update doc-deploy jobs inputs

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

Project coverage is 99.66%. Comparing base (d3abc3e) to head (f901627).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #168   +/-   ##
=======================================
  Coverage   99.66%   99.66%
=======================================
  Files           8        8
  Lines         600      600
=======================================
  Hits          598      598
  Misses          2        2

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


layer_mem is unbound (when called from ContinuousTransformerWrapper)

  File "/opt/conda/lib/python3.11/site-packages/x_transformers/continuous.py", line 129, in forward
    x, intermediates = self.attn_layers(x, mask = mask, mems = mems, mem_masks = mem_masks, return_hiddens = True, **kwargs)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
    return forward_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/x_transformers/x_transformers.py", line 1330, in forward
    if exists(layer_mem):
              ^^^^^^^^^
UnboundLocalError: cannot access local variable 'layer_mem' where it is not associated with a value

Got this error when trying to run a transformer with a custom order of attn_layers from the ContinuousTransformerWrapper.
I'm not using layer_mem so for me, I just commented out L1330-1331 in x_transformers.py, but as I'm not entirely sure of its uses, I didn't want to just submit a PR for that alone as I presume you have better insight and know a better solution.

@amitkparekh hey Amit! yes you are right and i put in a fix
that's really awesome you are using an undocumented feature! are you doing a weight tied transformer?

Thanks for the quick fix!
I'll be honest, I implemented this part of my research a while back and I'm struggling to remember/find my notes on the reason why I'm using the ContinuousTransformerWrapper over another. I implemented this before 1.23.5.
I think it's primarily because I've embedded things outside and I needed to provide multiple things through into the transformer that's instantiated with custom_layers within the attn_layers?

@amitkparekh no problem!
oh i see, you are using a custom ordering of the layers, not the weight tying feature
did you hack the code so that it accepts custom modules from outside the repo? i was about to get around to that

Only a little for my needs (through wrappers and such). But being able to create modules and stacks and combine the various possible features into some frankenstein through compositionality would be brilliant and is something I have personally wished for! But I get that refactoring this repo into that would probably be a massive undertaking.
If you're ever open to going that far, I'd be happy to help contribute!

@amitkparekh no not too hard, i've been thinking about it for a while, and it may take less than 100 loc to execute for the 80% use case
will keep you updated!

Let me know if you need a second pair of hands! I feel like this repo is like allennlp but for transformer architectures, so anything that makes it that easier to build custom but robust models would be amazing 🤩


Vertical dmenu

Hello,
I recently moved from buttercup to pass as buttercup has some annoying bugs... I wanted to user passdemnu to ease password clipboard copy but I wanted to list passwords one per line instead of all on the same line like dmenu_run does.
I tried passdmenu -D "/usr/local/bin/dmenu -l 3" but I get the following error:
Traceback (most recent call last):
  File "/usr/bin/passdmenu", line 327, in <module>
    main()
  File "/usr/bin/passdmenu", line 283, in main
    choice = dmenu(choices, dmenu_opts, args.dmenu_bin)
  File "/usr/bin/passdmenu", line 42, in dmenu
    dmenu = subprocess.Popen([path] + args,
  File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1702, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/dmenu -l 3'

Is there a way to pass some paramters to dmenu command or it will require some development?
Thank you

Fixed by using passdmenu proposed on passwordstore page.


Fix GMessage and Arguments

Please describe the changes this PR makes and why it should be merged:
This PR adds the alwaysObtain option. If alwaysObtain is set to true, any arguments (excluding subcommand) will be asked again so the message can be multiple words, instead of just one.
Without alwaysObtain

With alwaysObtain

This PR also fixes an issue with GMessage, where the error (cannot send an empty message) would be displayed as another error.
Status and versioning classification:

I know how to update typings and have done so, or typings don't need updating
This PR changes the library's interface (methods or parameters added)

Wait what.

I am a contributor now right? Now that some of my things are on the main branch?

Please set alwaysObtain to true (default)

Why would that be useful? It disallows input from the original message: .test 1 2 won't work then. (for example)

Why would that be useful? It disallows input from the original message: .test 1 2 won't work then. (for example)
alwaysObtain is there for commands with multiple arguments, that require an input of multiple words (like a reason).
For commands like this
.ban <user> <reason> without alwaysObtain will be a single word.

Okay


Build a renderer to sketch.systems

sketch.systems is a neat website where you can play around with state-machines.
It'd be cool if you could define a state-machine here and have it output to a format compatible with their playground; there's only two things:
The "Spec":
My Awesome Sketch
  First State
    some event -> Second State
  Second State

And the the rendering code:
function render(model){
  let current_state_name = model.active_states[0].name;
  return $("h1",
           {style: {color: "darkBlue"}},
           `The current state is: ${current_state_name}`);
}

That would be cool!
Just some random thoughts:

we don't have names for transitions available, which could be an issue in generating a diagram
more generally, we have only the topology (i.e. allowed transitions), which is a bit less than what you expect in sketch.systems (i.e. there could be several ways to move between two states)
composed machines (built with constructors other than Basic) will get fairly big quite soon, since their state space is the product of the state spaces. Hence I think that a representation as the flow one I implemented is more effective


Passing zone and network ID through to CAPC

Issue #, if available:
Resolves https://github.com/aws/eks-anywhere/issues/3609
Description of changes:
Previously we had missed an attribute to pass through from EKS-A to CAPC. This PR enables the pass-through to occur. Without it, clusters would fail to start if only zone name/network name were not specified. If both id and name were specified, we observed a continuous rollingupgrade on the EKS-A manager because the controller expected ID's and names to both be passed through both ways.
Testing (if applicable):
Unit tests pass. Manual cluster creation test allowed successful creation of a cluster when zoneId and network id were specified without rolling upgrade.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherrypick release-0.11

/cherry-pick release-0.11
/approve


Data Hosting - AWS

https://aws.amazon.com/compliance/british-columbia-foippa/

https://aws.amazon.com/compliance/british-columbia-foippa/

In my tests, I'm using the Canada (Central) Region that the link seems to recommend. Although, I'm still not clear if that necessarily means we're in the clear.

Few new discoveries with AWS
We need a driver on Tableau Server if we want it to work with AWS: https://www.tableau.com/support/drivers

see error message below in red
Are there any concerns with adding this driver to our instance?

Seems like when it's on Tableau Server, the user who accesses the workbook is asked to authenticate with Athena

I'm not sure if this just needs to happen once or every time
If it's every time, I think we will need to create a user group on AWS with credentials that can be shared with everyone who needs access (or individual credentials for each person is also possible with no account necessary - i believe)
If we do go with the above option, user filters may no longer be necessary as everyone will basically need to authenticate with the data source

I think if it's setup properly, the owner of the data authenticates and shares the authentication with the server. So as long as the user permissions on Tableau are setup to view data - they bypass the athena authentication. If it's the same as how you would connect to an sql database.


0.8.1 type errors

In the latest 0.8.1 release I guess the type folder is missing,
the current version does not work on my side and I see an entry in the package json:
"types": "types/index.d.ts",
that points to types/index.d.ts..but there is no types folder.
You probably need to add "types" to "files": [..] inside package.json to add this files for publishing.
Thanks
Simon

:rocket: Issue was released in v0.8.2 :rocket:

This was quick, thanks. I can confirm it works now!


Use window as a target for online event

Also fix unsubscribe callback assignment
Closes #301

Sure thing, I've resolved the conflicts

Thanks @nulladdict !


426 - frontend fails on utf8 filenames

This commit fixes an UTF8 filename issue

@kamino how can I test this PR?

Yes you can ! :us: (no WIP in title)

Please have a look at a simpler solution on https://github.com/quarkslab/irma-frontend/pull/47


Commands: Print stack traces by default for unexpected exceptions

Resolves #1044
Depends on #3022

:shipit:


worse precision and recall results

Hi,
I've been trying your models on different test sets for a while.  Even though i used FVC 2002, 2004 test set, performance results are worse than indicated on the paper. I have fine-tuned the model but still can not reached specified results. Are the models (Coarsenet and Finenet) same as indicated on the paper? Network is using too much memory, while fine-tuning with batch size bigger than 2 i got resource exhausted error on 16 gb Tesla V100 GPU. How did you deal with it?

Recently I also tested the models on FVC datasets. The results are worse than the results mentioned in the paper.  I talked to a few people who tested also. Non of them could achieve the results as paper indicated. I also wonder the models are the same as indicated in the paper.


Async combo field

Added AsyncComboField, a variation on ComboField which populates its items via a queryAsync function. The primary use case for this would be querying a remote server and returning a list of options.
Also added the option of overriding the default item renderer for fields which use it.

Example usage:
comboField({
    model: model,
    field: 'value',
    queryAsync: (query) => {
        return XH.fetchJson({
            url: '...',
            params: {query: query}
        }).then(data => {
            return data;
        });
    }
});


service: filtering of record metadata according to permissions

Following user-stories are basically about filtering record metadata according to what a given identity can access.
User stories
As an uploader/admin, I want to see the full metadata including files of a closed access record
As a visitor, I want to see the full metadata excluding files of a closed access record
Example
When getting a record:
GET /record/12345-12345 HTTP/1.1

The service layer will do the following actions:

Resolve ID to a record
Check permission to record
Create a record state object

The presentation layer will then afterwards:

Serialize the record state out to the user.

Considerations

The presentation layer (i.e. the serializer in this case), should not know anything about permissions. The sole job should be to seralize a record.
The service layer (either in the a) service or b) record state / resource unit) needs to filter the metadata.
This also has to be implemented for the search engine.
Until we have a proper query parser, the indexed records need to have all restricted fields removed.

Examples of filtering metadata

Remove _files from the metadata (closed access record - meaning a record that's publicly visible, but where the files are restricted).
Remove internal notes.

Missing part is the query parser to filter out searches on restricted fields.


sqlc: 1.22.0 -> 1.23.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/sqlc/versions.
meta.description for sqlc is: Generate type-safe code from SQL
meta.homepage for sqlc is: https://sqlc.dev/
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.23.0 with grep in /nix/store/94p2jxprgsfmhg9y87jmz3vx12j9n2q2-sqlc-1.23.0
found 1.23.0 in filename of file in /nix/store/94p2jxprgsfmhg9y87jmz3vx12j9n2q2-sqlc-1.23.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
sqlc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/94p2jxprgsfmhg9y87jmz3vx12j9n2q2-sqlc-1.23.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A sqlc https://github.com/r-ryantm/nixpkgs/archive/0ddd11f150276eb50884322c248806b34e642eca.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/0ddd11f150276eb50884322c248806b34e642eca#sqlc

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/94p2jxprgsfmhg9y87jmz3vx12j9n2q2-sqlc-1.23.0
ls -la /nix/store/94p2jxprgsfmhg9y87jmz3vx12j9n2q2-sqlc-1.23.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

sqlc

Maintainer pings
cc @adisbladis for testing.

Result of nixpkgs-review pr 263515 run on x86_64-linux 1

1 package built:

sqlc


Add fused multiply-add

Fixes #10

In principle, the same approach can be used for any of the num-traits methods, but I would be wary of doing it for anything that is not known to have hardware support on at least one common arch.


Splashkit Spike Report - MicroUI

Description
This PR added 2 spike report about microUI for Splashkit Expansion
Type of change

[ ] 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 not work as
expected)
[x] Documentation (update or new)

How Has This Been Tested?

VS code
MSYS terminal
Cmake
Windows

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have requested a peer review

 Spike Report: UI implementation for Splashkit


Improve README'd 'How to Build' section

Just stumbled upon this project via Hackernews -> https://news.ycombinator.com/item?id=19975722
I'm proposing a small cleanup of the bazel build command shown in the README. Not including the // prefix means the target is relative to to the current working directory. Including the // is both more typical and I think less likely to lead to user confusion, say if they happen to cd zetasql and then run that cmd. 🤷♂
References:

https://docs.bazel.build/versions/master/guide.html#build

Hello! Thank you for the patch. Unfortunately we don't have the infrastructure and approvals in place to accept external contributions at this time. Sorry! Also see: https://github.com/google/zetasql/blob/master/CONTRIBUTING.md#how-to-contribute

No problems. This PR can just serve as a kind of 'heads up' then.
While you're setting this up for external contributions, you could add a PR template that directs people to just open an issue or something.
Happy to close 🙂

Lets keep this open to track the issue for now.


Sending HTTP post https://www.googleapis.com/admin/directory/v1/users? 403

I am trying to create user accounts using service account. I have gone through multiple samples and combinations of code regarding how to properly achieve this but every attempt I make is rolledback with a 403 error.
service = Google::Apis::AdminDirectoryV1::DirectoryService.new
service.client_options.application_name = APPLICATION_NAME
scope =  'https://www.googleapis.com/auth/admin.directory.user'
authorization = Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: StringIO.new(File.read('service_account_file.json')), scope: scope)
authorization.fetch_access_token!
service.authorization = authorization

After this I create an object of user and assign it the required attributes and upon execution of the following line I face the hurdle which I have described in the title.
result = service.insert_user(user_object)
Following is the output I get in my console:
Sending HTTP post https://www.googleapis.com/admin/directory/v1/users?
403
#<Hurley::Response POST https://www.googleapis.com/admin/directory/v1/users == 403 (232 bytes) 1183ms>
Caught error forbidden: Not Authorized to access this resource/api
Error - #<Google::Apis::ClientError: forbidden: Not Authorized to access this resource/api>

I don't know what can I be doing wrong. Any help would really be appreciated, thanks.

Hmm, I wasn't able to replicate...
Does your service account have the correct role? That would be my first guess.
Are you able to get a request through on APIs explorer?
https://apis-explorer.appspot.com/apis-explorer/#search/directory_v1/admin/directory_v1/directory.users.insert

+1 to Sai's comment -- service accounts, acting as themselves, aren't domain members or admins. They have no permission to insert users.
You need to be operating as an authorized admin to create users. You can use a service account for that if you impersonate an actual admin. See domain wide delegation for more.


[Feature Request] Browser Plugin To Add Bookmarks

Hi there,
I have been using Flame for quite sometime now and I must thank you for developing such a wonderful and presentable dashboard.
I hope in the near future you will have some sort of way where people can click a browser plugin and add the page directly to Flame dashboard from the browser instead of opening Flame and then adding the bookmark which is what we do currently.
Thanks and have a nice day.

I think even a drag and drop would be easier. I agree would be good to have it being a full fledged bookmark manager :)


Notifications overlapped (z-index of notifications__container fixed to 1000)

Issue:

In my case I solved it by simply overriding the react-toast-notifications__container class:
.react-toast-notifications__container {
  z-index: 1100 !important;
  top: 64px !important;
}

Would it be useful to have the possibility to customize the z-index? (It could be in a ToastProvider property, for example).
If so, I could make the change and generate a pull request.
I would like to be able to collaborate with the project. 🤗

I just attempted to use this library and had the exact same issue.
Looking through the code, it would be pretty simple to add a zIndex property to the typescript type ToastContainerProps and pass that property down through the ToastProvider like you had mentioned.  All of 6 lines of code.  It may not be worth the effort though since there hasn't been an update to this repo for six months.

Yep... the repo looks like abandon 😐

I am facing the same issue. Is there a way I can update the z-index otherwise I have to use some other library and make changes across the application. Any inputs that you can provide will be greatly appreciated. Thanks.

@CicheR can you please share the complete code class on how you override it. I am new to react I am not able to find how to override styles for an imported class. Any article or tutorial would also be alot of help.

@CicheR can you please share the complete code class on how you override it. I am new to react I am not able to find how to override styles for an imported class. Any article or tutorial would also be alot of help.

Just put the css code I mentioned above code in any style file accesible to the control or or inline in the page.
Check the basics:
https://www.w3schools.com/html/html_css.asp

The solution is shared by the library author in this specific github issue comment. Basically you do what's mentioned in the README's Replaceable Components section, but instead of DefaultToast, use DefaultToastContainer.


KEB should reject instance update erroneous to multi AZ

Description
There were several incidents recently where a multi AZ runtime was provisioned with autoscalerMax >= 3 value, and hence worker nodes were created in 3 AZs, all AZs hosting dynamically provisioned PVs.
Later on the user updated the instance with autoscalerMax = 2, which caused one of the AZs to not have workers any more, and hence pods which claimed PV(s) in the AZ without any worker nodes were stuck in Pending state.
KEB shall reject the instance update request if

The instance is multi-AZ (could this be determined via stored parameters?)
current autoscalerMax >= 3

What about update with bigger autoscaler values?

But once he updates autoscalerMax >= 3 (so current parameter value is now >=3), he shouldn't be able to update it with < 3 (e.g. autoscalerMax = 2) any more.

Another 2 incidents happened in the last 7 days.
@piotrmiskiewicz Do you foresee when this could be fixed in KEB?

the final AC:

the autoscalerMax param in the update request cannot be lower than number of availability zones

@piotrmiskiewicz
Checklist:

check how BTP Cokpit will behvae when we will return validation error. Does user see instance in error or ready.


[TEXT-194] - Use StringUtils.INDEX_NOT_FOUND constant

Coverage remained the same at 98.682% when pulling 77fc4b2d8b1926c2196408561e9967f105f56f96 on arturobernalg:feature/TEXT-194 into 102c0a292c42974a322038862404352fa421ea29 on apache:master.

Coverage remained the same at 98.682% when pulling 77fc4b2d8b1926c2196408561e9967f105f56f96 on arturobernalg:feature/TEXT-194 into 102c0a292c42974a322038862404352fa421ea29 on apache:master.


OUSD Dripper

Dripper takes reward token sales process, and smooths it out into a per block reward stream.
Closes #879
This PR also collects the current stash of CVX stored on the vault, and sends it to the harvester to be sold.
--
If you made a contract change, make sure to complete the checklist below before merging it in master.
Refer to our documentation for more details about contract security best practices.
Contract change checklist:

[ ] Code reviewed by 2 reviewers. See template and example.
[x] Unit tests pass
[x] Slither tests pass with no warning

Self review:
Requirements
The dripper contract smooths out the reward from yield tokens into OUSD. It is built as a seperate contract so that the vault code remains untouched and uncomplicatd.
The harvester contract forwards all yield to the dripper, and the dripper sends yield to the vault.
Deployment Considerations
These changes will need to be made after the deploy is done. They are not critical, but are needed to see the full benefits.

❗We should move the parked CVX to the harvester contract
❗We will need add support for checking the dripper balance to analytics.
❗The keeper contract will need to change to call dripper.collectAndRebase() instead of vault.rebase()
❗The OUSD dapp will need to change to call dripper.collectAndRebase() instead of vault.rebase()

Internal State
Three internal state variables:

lastCollect. Only updated on collects. No problems if zero.
dripRatePer block. Only updated on collects. No problems if zero.
dripDuration. Only set by governor. Only used in collects. Would crash collect if not set, but will be set in deploy.

[x] lastCollect must never be in the future

Funds flow
Other contracts transfer ERC20's to this contract. This contract does not pull funds
ERC20's only leave to the vault or to the governor.
Consequences
If there were bugs in the code:

approximatly a week's worth of yield could be lost.

or

the yield to be slowly dripped out could suddenly go to OUSD

or

yield could stop flowing to OUSD and be backed up here.

Attack
Calling collect more often has the effect of slightly reducing the drip rate vs calling it daily. This is because it moves the drip rate to a point on a proportional curve. No funds are lost, just defered. There is no profit to an attacker.
Logic
The only conditional code is a ternary operator to choose the lessor of the balance or the accrued drippage to send to the vault. This is unit tested.
Tests

[x] Each publicly callable method has a test
[x] Each logical branch has a test
[x] Each require() has a test

Flavor
Lol, can't really judge my own code. :) I've squezed it down as far as I see so far.
Overflow

[x] Uses v8 or, Never use "+" or "-", always use safe math
no loops

Black magic

[x] Does not contain selfdestruct
[x] Does not use delegatecall outside of proxying
[x] Address.isContract should be treated as if could return anything at any time, because that's reality.

Authentication

[x] Never use tx.origin
[x] Check that every external/public function should actually be external
[x] Check that every external/public function has the correct authentication

Cryptographic code
No crypto.
Gas problems
No loops
External calls

only calls trusted contracts
[x] No slippage attacks (we need to validate expected tokens received)
[x] Oracles, one of:

[x] No oracles
[ ] Oracles can't be bent
[ ] If oracle can be bent, it won't hurt us.

[x] Don't call balanceOf for external contracts to determine what they will do, when they instead use internal accounting?

Ethereum

[x] Contract does not send or receive Ethereum.
[x] Contract has no payable methods.

The OUSD dapp doesn't call rebase anymore so we can strike this on off the list:
The OUSD dapp will need to change to call dripper.collectAndRebase() instead of vault.rebase()

No NatSpec commenting on the dripper functions. It's super simple and clear to understand without them but I think this is something that'll definitely end up in an audit report.

No NatSpec commenting on the dripper functions. It's super simple and clear to understand without them but I think this is something that'll definitely end up in an audit report.

Added NatSpec comments.


Migration problems

Checklist

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes \
Are you sure you're not using someone else's docker image?
Yes /

Have you searched for similar issues (both open and closed)?

Yes /

Describe the bug

I am running Nginx PM on a server and want to migrate to another server
I installed Nginx on server-2 and it runs well but is currently empty (no hosts defined)
Then I copied all folders from server-1 into the Nginx PM folder and restarted Nginx PM
When restarting the server, I get the following error message repeadedly:
30/05/2023 20:30:09 [5/30/2023] [7:30:09 PM] [Migrate  ] › ℹ  info      Current database version:<PHONE_NUMBER>5214 30/05/2023 20:30:09 [5/30/2023] [7:30:09 PM] [Global   ] › ✖  error     The migration directory is corrupt, the following files are missing:<PHONE_NUMBER>4702_redirection_scheme.js,
Nginx Proxy Manager Version
2.7.1
To Reproduce
Steps to reproduce the behavior:

Install fresh Nginx Proxy Manager
Copy existing data
Restart Nginx PM
See error

Expected behavior
Expected to see existing host profiles and letsencrypt certificates
Screenshots

Operating System
Debian
Additional context

Anyone to have ideas?