Feature - add getRawBuffer() method to ESP3Packet

this change adds new method getRawBuffer() to the ESP3Packet
fixes #1

@Holger-Will please check this out

this solution sounds great! I'll have a go and test it...

The current impl. throws for me with:

"list" argument must be an Array of Buffers
I'm on node 6.4.0. Its not possible to concat integers to a buffer. i have to go with something like this:

this.getRawBuffer = function () {
	return Buffer.concat(
		[
			new Buffer([this.syncByte]),
			new Buffer([0,this.header.dataLength]),
			new Buffer([this.header.optionalLength]),
			new Buffer([this.header.packetType]),
			new Buffer([this.crc8Header]),
			this.data,
			this.optionalData,
			new Buffer([this.crc8Data])
		],
		8 + this.header.dataLength + this.header.optionalLength
	);
}

the problem with this is still, that dataLength should be encoded with 2 Bytes... in the above code i assume that dataLength is allways < 256 wich might not be the case... my current solution is to go with something like this
this.getRawBuffer = function () {
            var dl = new Buffer(2)
            dl.writeUInt16BE(0x05,0)
	return Buffer.concat(
		[
			new Buffer([this.syncByte]),
			dl,
			new Buffer([this.header.optionalLength]),
			new Buffer([this.header.packetType]),
			new Buffer([this.crc8Header]),
			this.data,
			this.optionalData,
			new Buffer([this.crc8Data])
		],
		8 + this.header.dataLength + this.header.optionalLength
	);
}

technical rant
On the other hand i would much prefer if the parser just returned the buffer as is. this would be most convenient and the packets would have the smallest footprint.
you could have different Implementations which consume the raw buffer and parse it to whatever is currently needed.
For example, i have my telegram.js implementation wich turns the buffer into an internal representation which is best suited for what i need.
You turn the received bytes into a format which is best suited for your needs.
The most simple representation and common denominator of both is just the Buffer.
practicaly what happens currently is that we receive some bytes turn them into some js representation, turn them back to bytes to turn them into another representation...
In the end an ESPPacket is just Bytes. Thats what the parser should return IMHO.

please don't get me wrong here. I will be more than happy with the getRawBuffer() solution...

@Holger-Will could you please provide a couple of different valid telegramms(with filled optional data meaybe). So i can draw up some tests...

55000a0701eba5c87f710fffdba5e40001ffffffff47000d (4BS, a5)
55000707017ad509ffdba5ed0001ffffffff470096 (1BS, d5)
55000c070196d24000b00a010001a03d790001ffffffff5b0033 (VLD, d2)
55000707017af600ffd9b7812001ffffffff460050 (RPS, f6)
55000a0701eba540300287ffd9b7e50001ffffffff440016 (4BS Teach In, a5)
please also have a look at the tests in node-enocean. i'm generating a couple of telegrams for each supported eep...

thanks I'll take a look on that.

looks great!
good stuff with the testing...
how about writing test for failures as well, like wrong crc or telegrams that are not fully transmittet?
for example: what should happen if a packet is partly transmited and imediatly followed by a complete telegram?
55000a0701eba54055000707017af600ffd9b7812001ffffffff460050

@Holger-Will so can i merge and release 0.0.3?

Yes, please go ahead. But maybe consider publishing as 0.1.0 as per http://semver.org

fanatastic! thanks for your valuable support!

I played around with this and did something avesome. I'll provide by free time in future new api and deprecate this. Idea is, to use packet buffer instead of setting Properties and read from them all the properties for ESP3Packet.

And following scenario is currently not implemented:
55[some <6Byte mishmash]55000707017ad509ffdba5ed0001ffffffff470096
packet after mishmash is lost!
This will be solved in the next releases

Cool, looking forward to it :-)


[HOLD] Revert "Fix for: Editing workspace name to 1to3 characters adding ext…

…ra line in the optional message when inviting users in Spanish"
Details
Causing a blocker https://github.com/Expensify/App/issues/18525
Fixed Issues
$ https://github.com/Expensify/App/issues/18525
PROPOSAL: N/a
Tests
Same as QA steps

[ ] Verify that no errors appear in the JS console

Offline tests
N/A
QA Steps

Input any email on Login screen
Tap Continue
Tap Go back
Verify that the keyboard pops up

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x]  I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
n/a

Mobile Web - Chrome
n/a

Mobile Web - Safari
n/a

Desktop
n/a

iOS
n/a

Android
https://user-images.githubusercontent.com/22447860/236880316-62bc4c0d-a7d4-4a91-9651-ad724e2ae7b0.mp4

HOLDing on merging this just because this is not the last thing holding the deploy, and the original PR author will take a look soon here. https://expensify.slack.com/archives/C01GTK53T8Q/p1683562000270909?thread_ts=1683391151.474569&cid=C01GTK53T8Q

Tests are also failing on main https://expensify.slack.com/archives/C01GTK53T8Q/p1683567674183729

Closed since we have a fix https://github.com/Expensify/App/pull/18611


Right Click Menu Implementation Proposal

Prior to beginning work on feature, research should be done on best way to implement. This ticket is for that discovery, documentation and discussion.

cc @miina in case she has any insights on this from our previous editor project

Some relevant information:
https://web.dev/async-clipboard/
PR from the previous stories editor project with relevant parts perhaps being these:

https://github.com/ampproject/amp-wp/pull/3083/files#diff-46439cc256f24214fb0f0311b5a22beb534b86c81ff34cddc8fed6b339fd05ddR274-R292 (comments and implementation in the code related to needing to ask permissions to paste for security reasons, described in the link above, too. Lines 274-292 -- the diffs are not highlighting properly for me even though loads the PR in the right place)
https://github.com/ampproject/amp-wp/pull/3083/files#diff-485a8caf46ebaf62d25ea7b3200a1d56c924fae09a3c7f766a28507a2cf2a212R1753-R1767 (copyTextToClipBoard helper)
https://github.com/ampproject/amp-wp/pull/3083/files#diff-78a2db2a2ebdd20749472eb047a0fbff080117e26d52070de1604454e935983dR38-R85 (from const onPaste = ( event ) => { until line 85, has some comments about special handling for IE11 but that's probably irrelevant for us actually)

The main "unordinary" things were basically creating a helper input for adding the text to the clipboard and asking permissions to paste (for security reasons). There was some handling needed for IE too but we're not supporting it.
Let me know if you have any questions, I can definitely check in more detail later (quite late here currently).


Lock Slot feature for Advanced Inscriber

When connecting an exporter with printed silicon to the bottom of an advanced inscriber - all slots are filled. Ability to lock the slot for the specific input would be nice. Cause this happens:

Replicable on with 1.0.2b2 using hopper from top or sides, or modern industrialization item cables from any face (All of Fabric 5 1.1.5)


Create Basic UI

[x] set up React.js boilerplate
[x] create react components

[x] app
[x] todo list
[x] todo item

[x] controls

[x] add todo button
[x] edit/delete/complete buttons in todo item component

All features now implemented in #6.


feat(exchange): use fee from amm

Fixes: #262

closing this PR and opening new (#302) because this one is more complicated to merge


Error while starting

Thanks for sharing your work on this, its exactly what I've been looking for. I've tried to get the application going and ran into some trouble. Everything seems to install well, but after running the controller.py I get the following errors.
$ python controller.py
File "controller.py", line 279, in
controller = Controller(json.load(config_file))
File "/usr/lib/python2.7/json/init.py", line 278, in load
**kw)
File "/usr/lib/python2.7/json/init.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 381, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 10 column 2 (char 189)
The install seems pretty strait forward so I'm not sure if I'm doing something wrong.
I don't have any experience in code writing, so I'm not sure how to troubleshoot this.

There is a typo in the config.json file.
Line 9 should have a comma after the "" entry.  Once I put the comma in place it works fine.

Thank you very much! Works great!


using dwm instead of fvwm

is there any particular reason why fvwm was chosen?
some of the benefits I can see with dwm is that due to its small code base we could configure it to show all apps in "fullscreen" hide the top bar and other such optimizations.
in my quick test(no modifications) one issue I have seen is that the application that gets started is initially black, moving it around seems to fix it

i have working docker image with stock dwm under fuseteam/aindwm fwiw

I chose fvwm because I wanted title bars.
Other candidates could be ctwm, icewm, and blackbox.

ah alright, tho now we technically have 2 titlebars


[Request] Duplicate and Drag to Move

This is an awesome little utility and I can not believe it took someone this long to create something this all encompassing, yet effective. There is so much potential here for GM's to quickly organize and track things in game. Right not the three things I can see right off the bat that would be helpful would be:

Make it so you can right click and duplicate a note.
Make it  so you can drag and reorder notes.
Not sure if it's necessary with your filtering and search functions but folders may be nice for organizing a lot of notes.

Minor, things. But this really is cool. Well done and thanks for sharing with the community.

Glad to hear that you enjoy the module. Regarding your points:

This is planned and will most likely be part of the next update (1.2.0)
This is already possible, you can reorder notes by draging the black title bar
This is currently in develoment but will probably still take a bit of time. The feature will be the focus of the next update (1.2.0)

I have just released v1.2.0. The new version includes both folders and an option to copy notes (shift + right-click).
I have decided to make a few changes to the folders, compared to the core foundry folders, to make it easier to use them "on the fly", which i think fits the nature of the notes a bit better. Therefore feedback regarding the folders is especially welcome.


Enable theme override in app

Currently, the material ui theme is imported from ot-ui and cannot be changed.
We could use a system where:

the default theme (object) lives in ot-ui
the theme provider injects the theme (object), which takes the default unless overridden in the app

Now possible. Added in https://github.com/opentargets/ot-ui/pull/75.


Atmos wallmount fix

About the PR
this bug is the sole reason I decided to contribute please give me mapped air alarms thx much love
Fixed numerous bugs regarding air alarms and fire alarms. They can now be placed on the map and constructed as intended: without them teleporting into the floor. Also now accepts power from APCs and extension cables as intended, closes #9468, closes #9664.
Added a threshold to Nitrous Oxide due to the update where slimepeople breathe it. Same level as CO2 thresholds, around 0.1 mol at atmospheric pressure.
Note: Fire alarms control all firelocks in the entire map, so they're still unusable right now.
Screenshots

Changelog

:cl: Anthemic

fix: Fixed air alarm and fire alarm crash.

Fix #10202

Merge conflict caused by #10279, reverted that change in this PR now.

Air alarms + fire alarms still aren't mappable because they have multiple bugs that need fixing (e.g. firelocks being global device network receivers as mentioned, air alarms not sensing correctly), this will just fix the crash until we delete the offset code and fix the internals. Adjust the changelog to say the crash is fixed rather than saying air alarms are fixed.

Changelog adjusted

this is superseded by flipp PR i believe

Superceded


[Feature Request] Allow keyboard-based tag addition

Existing Component
Yes
Component Name
Tag
Description
It would be great to be able to add tags by using the keyboard only. E.g.:

Type "new"
Hit enter or comma.
"new" tag is added. Input field is still focused.
Type "sale item".
Hit enter or comma.
"sale item" tag is added.

This way, the user doesn't have to use the mouse to click "New Tag" every single time.

Actually you can modify that example with what we already have to implement your proposal.

@Leopoldthecoder Sorry, I'm not sure what that means. Are you saying there's some way to put tags inside an <el-input>?

@ffxsam Did you mean something like this? https://jsfiddle.net/leopoldthecuber/5rgnsg5r/

No, like this: https://ant.design/components/select/
(see the "Tags" example)

Element's <el-select> with allow-create is similar. Except I can't hit enter, I have to click to choose the new item I'm typing.

Oh, I guess you need the default-first-option flag: https://jsfiddle.net/leopoldthecuber/rw43L0a9/

Ah, perfect! thanks! And great job on 2.0!

@Leopoldthecoder Just realized there's apparently a bug in this. (is it fixed in 2.0 maybe?)
See below

@Leopoldthecoder

This is actually by design. Suppose you want to select everyone named Jack from the list. You type 'Jack' and select the first one, and before you click the second Jack, the input clears and the list resets. You end up having to type 'Jack' each time you select a person.
That being said, there's still room for improvement. It seems to make sense to clear the input if there's only one matching option.

My personal take from a UX perspective is that it's not common behavior for dropdown menus. I can see the advantage for doing quick selections, but I think it should be an option.

I'm adding a new prop reserve-keyword to Select in Element 2.0. When set to false, the input will clear after selecting an option.

Awesome! Much appreciated


ignore empty root dir name when compressing file

fix 350

Thanks! I'll await confirmation from @nicola-spb and if it fixes the issue we can merge this in

I find that FilesFromDisk will never return error, because it never checks error from filepath.Walk, (the error in walk func will stop walk but will not be returned).

@WeidiDeng Wow, you are right. I missed that too :smile:


Feature: ValueOnly Serialiser and Deserialiser

Proposing ValueOnly functionality based on the current model classes. No additional ValueOnly model classes needed but instead introducing Mapper classes.
Deserialisation requires a normal base class, as usually a ValueOnly object itself is not enough to have a compliant AAS data object.

This PR is obsolete and has to be replaced by https://github.com/eclipse-aas4j/aas4j/pull/297


ci: switch to trusted publishing for pypi

Ah seems that one is not working properlt

Ah seems that one is not working properlt

Yes, I am trying to figure why the env interpolation does not work.


update lint

[x] updates lint
[x] now errors on unnecessary curlies in jsx
[x] now warns on let that could be const

[ ] after release


ms14: add new method to handle put file with checksum validation

@brycollins @ninhnguyen @scoen

add new method to put file with checksum validation

This seems okay.


get ids

how can i get  all the video IDs for the playlist?
only ids, don't download videos.
thanks.

--get-id.


Pan gesture isn't working properly.

Without adding pan gesture to 'front' ViewController, gesture gets activated after once toggling the rear view. (and works properly every time, after a tap on the 'rear' view toggle button.)
&
Adding pan gesture to 'front' ViewController, misplaces 'rear' ViewController margins. (and again works properly after a tap on the 'rear' view toggle button.)
Can someone please help..:)

Try this. When you add the constraints to your rear view, uncheck Constrain to margins:

Yeah, I checked out constraints. But, I'm getting an error for only 'panGesture' until the sideBar button is tapped. Even 'panGesture' is working correctly, but only after a button is clicked.
Screenshot before the button is tapped for sideMenu;

Screenshot after the button is tapped for sideMenu;

What kind of object is the top view in rear view. A navigation bar?

I was able to fix the problem with an older version of Xcode ( see #579 ), but it seems that now is definitely a bug. You can have a look at my library and the example below (sorry John), with which you will not have this worry.
SWLayout 2.zip

Hey thanks  @iDevelopper, but I'm not getting you, coz i'm having problem with SWRevealView and I haven't used PBRevealView.
Its just a UIView as top view in rear view.

Ok, and Objective-c or Swift? I know you have an issue with SWRevealViewController!

Are you suggesting to change my SlideMenu library??

No, but I can't resolve this issue. You could also embed your rear view in a navigation controller for replacing your view.

I finally got it. Check yours constraints again. It works.

SWLayoutXc7.zip

I have two conditions here;

If I add panGesture to 'front VC' than, above problem occurs,
If I don't add panGesture to 'front VC' than, panning can't be done to toggle SideMenu. (but only for first time, but if sideBar button is clicked once... panning can be done perfectly...as required.)

Have you looked at my example? it works.

Yeah I've looked into your project @iDevelopper. But, even I'm not getting error while testing it in a new or a separate project.
This project has already been built and its like 'ready for the release', so I'm searching for 'What could be the reason behind the issue?'.. so I could solve it with a better way.
Isn't there any way to solve the above issue in a healthier way, maybe.
You have been trying to help me out with your valuable time, really appreciate that :-)

This example was meant to show you that your constraints were not good. So you really have to look around for that.

If the constraints weren't correct than how would it be possible to work properly after a single tap gesture??
Why would it change its position?

You can see that my sample works. But I had to go through it several times. It seems that this is a problem in Xcode. Try to put your constraints as you think and then modify them by editing them. Look at the constraints in my sample, and try to find somme differences.

I tried editing it with all your constraints, still facing the same problem. :(

Is it possible for you to share a copy of your project with just the menu and the first front view controller (a light version)?


Feature Request: Jump to project files

Eg Ctrl+P in sublime/atom/vscode or any other editor with different keybinding provides an option to quickly jump to another file in the same workspace.

Thank you again, not sure about Ctrl+P though, since it is the default print shortcut, at least for applications that has such an option. Last I checked Atom did not have a print dialog, but juCi++ does, so I think we would need another shortcut for this.

I think printing is not a frequent enough action in IDEs to warrant its own keyboard shortcut.

You might be right that we should remove default the print shortcut.
Regarding this feature, I think it is not very hard to implement, even for those unfamiliar with the juCi++ code base. I suggest therefore that someone create a PR on this:)

@oyvang @tedjk Maybe?

I believe that my pull request #336 implements a similar functionality, but is missing the Ctrl-P keyboard shortcut. Perhaps we should consider adding that shortcut before merging?

You are right @Joshua-Wright . I'll fix the shortcut when I make corrections to the PR.


pdksync - FM-8834 - Add GitHub action workflow

FM-8834 - Add GitHub action workflow
pdk version: 1.15.0

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@e18cf77). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #405   +/-   ##
=========================================
  Coverage          ?   16.66%
=========================================
  Files             ?        1
  Lines             ?        6
  Branches          ?        0
=========================================
  Hits              ?        1
  Misses            ?        5
  Partials          ?        0

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 e18cf77...48bd921. Read the comment docs.


ion-side menu opend on start

Hi,
I need to add to app.js this code:
$scope.toggleLeft = function() {
$ionicSideMenuDelegate.toggleLeft();
}

from:  https://forum.ionicframework.com/t/open-side-menu-at-app-launch/4667/5
in order to open automactly the side menu when the app start.
where I can this code in WPHC?
regads,
MaX

In your own config folder config/ modify index.js to add a run function:
mod.run(($ionicSideMenuDelegate) => $ionicSideMenuDelegate.toggleLeft());

that's it


Use npmcdn for Bower and CDN

Since it is not yet published, I tested on react itself and it works well.
[nkbt@nkbt] tmp $ bower install<EMAIL_ADDRESS>-S
bower react.min#*               cached<EMAIL_ADDRESS>bower react.min#*             validate<EMAIL_ADDRESS>bower react.min#*              install react.min

react.min bower_components/react.min

[nkbt@nkbt] tmp $ cat bower_components/react.min/.bower.json
{
  "name": "react.min",
  "_cacheHeaders": {
    "Content-Length": "135543",
    "Content-Type": "application/javascript; charset=utf-8"
  },
  "main": "index.js",
  "_source"<EMAIL_ADDRESS>  "_target": "*",
  "_originalSource"<EMAIL_ADDRESS>}

[nkbt@nkbt] tmp $ cat bower.json
{
  "name": "tmp",
  "version": "0.0.0",
  "authors": [
    "Nik Butenko<EMAIL_ADDRESS>  ],
  "moduleType": [
    "node"
  ],
  "license": "MIT",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "react.min"<EMAIL_ADDRESS>  }
}

So we can remove build from git :birthday:

o tldr: no more need for bower builds checked in ever, anymore? Seems like I could just press the merge button but this is too good to be true

ahaha yeah, I think so.
The only downside for now - no sourcemap. Only one build file. Later I am going to publish zip file with all pre-compiled stuff (like, styles, multiple JS files, source-maps), bower supports zips (afaik). But the first step is this PR and it works well as for my tests.
You can try that by yourself with reactjs.
I am not sure how to test this stuff with rails-bower (or whatever those rails people use), since I do not do rails. If anyone can confirm it uses just a normal bower.json and supports plain URLs, then we are completely good ditching this awkward bower stuff.

I'd like to have a magical npmcdn that also bundles the npm module into one script consumable by bower.
Or not have bower.

That magic is too project-specific, I am pretty sure it is almost impossible to do properly. This is basically your webpack.prod config that does all the magic

(I was half joking btw =))

Some people may read the other half


Adding nodenv plugin based on rbenv plugin.

This plugin adds support for the node version manager nodenv (https://github.com/nodenv/nodenv).
The plugin is based on the rbenv plugin since nodenv itself is heavily inspired/based on rbenv.

This should probably be based on the more recent pyenv plugin which does not call the very slow brew --prefix command everytime zsh is started.
I prepared a similar PR for rbenv: https://github.com/robbyrussell/oh-my-zsh/pull/7626


TS node not found

since my last issue was closed I am still have the same issue
pi@debianbase:~$ ts-node src/bin/server.ts /dev/tty0
-bash: ts-node: command not found
pi@debianbase:~$ npm install -g ts-node
-bash: npm: command not found
pi@debianbase:~$ npx ts-node
-bash: npx: command not found
pi@debianbase:~$

Closing the issue does not solve the problem how about actual help?

Did you install node? npm?

Tried to but got the results in above

npm: command not found

But the command isn't found? Please make sure you install node & npm correct, for information about installing those, please check the nodejs website.

npm: command not found

But the command isn't found? Please make sure you install node & npm correct, for information about installing those, please check the nodejs website.

I tried to install it and still get the command not found

I get that, I tried to say: That is kinda out of scope for this project.
Just like we can't help you install an operating system itself. You are more likely to get the right help within the resources/community of NodeJS & NPM.

I get that, I tried to say: That is kinda out of scope for this project.
Just like we can't help you install an operating system itself. You are more likely to get the right help within the resources/community of NodeJS & NPM.

I have the OS installed with python 3.9 installed even manage to get I think the ZWavejs installed and even got this message Reading state information... Done
nodejs is already the newest version (10.23.1~dfsg-1~deb10u1).

well since the stuff I do is out of the scope of this project, I finally without any help as per usual finally got it to the next step and as per usual I will make a step by step on making a Zwave-js server for the next poor idiot that is trying to migrate to the new standard that uses Venv a path that at least kind of works


Failed to call service climate/set_temperature. [Error/Timeout] occurred while communicating with the OJ Microline API.

I on occasion get the following two error messages:
Failed to call service climate/set_temperature. Error occurred while communicating with the OJ Microline API.
and
Failed to call service climate/set_temperature. Timeout occurred while communicating with the OJ Microline API.
Steps to produce is simply to change the set temperature or issue other commands via the card on the dashboard. It's unclear to me when precisely it happens, but it happens fairly regularly for me (I'll try to narrow this down.)

@gessl maybe add a ping sensor to your thermostat, see if the wifi is stable?

I think this might be related to #140

Sounds good. I'll be testing!


Question: Why not MVVM frameworks?

Just for my curiosity why do not you Prism library or ReactiveUI for MVVM functionality?

No particular reason other than to focus on the fundamentals of using Xamarin.Forms itself instead of introducing additional concepts. Those are both great libraries.
What would you like to see in our next reference app? What would you hope to learn from it?

@davidortinau is there a way that I can participate in doing this kind of example, contributing or something else in this kind of initiative?

@learn9969 @Predatorie your best options today are http://gorillaplayer.com and https://livexaml.com  for runtime iteration on your UI.
@luismts keeping with the theme of this Issue topic, it sounds like Prism and ReactiveUI versions of this app would be a nice contribution.

Let me please close this issue for now, feel free to reopen it if may be needed again.


OSQP crashing on unexpected params

I'm trying to move over some qp code to jaxopt, but I'm struggling to understand the cryptic errors that appears to only happen in the jaxopt implementation. I've tried with other packages and these params work with those implementations.
Here's a minimal example:
import numpy as np
import jax.numpy as jnp
from jaxopt import OSQP

from qpsolvers import solve_qp

def to_numpy(*args):
    return tuple(np.asarray(v) for v in args)

P_ = jnp.array([[576.0]])
q_ = jnp.array([-216.0])
G_ = jnp.array([[-1.0]])
h_ = jnp.array([2.0])
A_ = jnp.array([[]], dtype=float).T
b_ = jnp.array([], dtype=float)

x = solve_qp(*to_numpy(P_, q_, G_, h_, A_, b_), solver="osqp")  # works

qp = OSQP()
deltas = qp.run(
    params_obj=(P_, q_),
    params_eq=(A_, b_),
    params_ineq=(G_, h_),
).params.primal  # Crashes with cryptic error.
# TypeError: dot_general requires contracting dimensions to have the same shape, got (1,) and (2,).

# jax-0.4.23 jaxlib-0.4.23 jaxopt-0.8.3 ml-dtypes-0.3.2 opt-einsum-3.3.0

Hi Illviljan
Sorry for the cryptic error message. The erros come from the fact that the matrix A_ = jnp.array([[]], dtype=float).T is not a valid linear operator.  If you don't need equality constraints you just nee to pass None to params_eq:
P_ = jnp.array([[576.0]])
q_ = jnp.array([-216.0])
G_ = jnp.array([[-1.0]])
h_ = jnp.array([2.0])
# A_ = jnp.array([[]], dtype=float).T
# b_ = jnp.array([], dtype=float)

qp = OSQP()
deltas = qp.run(
    params_obj=(P_, q_),
    params_eq=None,   # CHANGE HERE.
    params_ineq=(G_, h_),
).params.primal

Similarly, if you don't need inequality constraints just pass None to params_ineq.  Thank you for your message, I just came to the realization that I forgot to document this functionnality.

Thank you, a quite simple fix. I maybe just need to continue with all constraints active in my larger project.
I get surprised because it seems to me that jaxopt is the odd one out because  A_ is valid in other qp packages.
Using None is fine I guess, the annoying part is that jaxopt doesn't allow both inequalities to be None. Other solvers allows that and I think it aligns more with how I build a solution; start simple without any constraints and make sure it works, slowly add more constraints until the solution makes sense.
import numpy as np
import jax.numpy as jnp
from jaxopt import OSQP

from qpsolvers import solve_qp

def to_numpy(*args):
    return tuple(np.asarray(v) for v in args)

P_ = jnp.array([[576.0]])
q_ = jnp.array([-216.0])
G_ = jnp.array([[]], dtype=float).T
h_ = jnp.array([], dtype=float)
A_ = jnp.array([[]], dtype=float).T
b_ = jnp.array([], dtype=float)

x = solve_qp(*to_numpy(P_, q_, G_, h_, A_, b_), solver="osqp")  # works
print(x)

qp = OSQP()
deltas = qp.run(
    params_obj=(P_, q_),
    params_eq=None,
    params_ineq=None,
).params.primal  # Unnecessarily strict crash

That's true ; but using OSQP when you d'ont have constraint is be overkill. In this case OSQP algorithm degenerates toward an inefficient way to solve a linear system.
As argued in the documentation you should revert to conjugate gradient in this case.


Slow JDBC query for eventsByTag

The eventsByTag query is very slow because of a subquery and the incorrect placement of the where clause.
Dumped from our logs
select x2.x3, x2.x4, x2.x5, x2.x6, x2.x7, x2.x8, x2.x9, x2.x10, x2.x11, x2.x12, x2.x13, x2.x14, x2.x15 from (select "deleted" as x4, "meta_ser_id" as x14, "meta_ser_manifest" as x15, "sequence_number" as x6, "writer" as x7, "event_ser_manifest" as x12, "write_timestamp" as x8, "persistence_id" as x5, "adapter_manifest" as x9, "ordering" as x3, "event_payload" as x10, "event_ser_id" as x11, "meta_payload" as x13 from "event_journal" where "deleted" = false) x2, "event_tag" x16 where ((x16."tag" = ?) and ((x2.x3 > ?) and (x2.x3 <= ?))) and (x2.x3 = x16."event_id") order by x2.x3 limit ?
This subquery
select "deleted" as x4, "meta_ser_id" as x14, "meta_ser_manifest" as x15, "sequence_number" as x6, "writer" as x7, "event_ser_manifest" as x12, "write_timestamp" as x8, "persistence_id" as x5, "adapter_manifest" as x9, "ordering" as x3, "event_payload" as x10, "event_ser_id" as x11, "meta_payload" as x13 from "event_journal" where "deleted" = false
Doesn't have the where clause for the Ordering field. It will run the entire event-journal each time.
Initial PR that seems to have created the issue. https://github.com/akka/akka-persistence-jdbc/pull/467
The query in question
https://github.com/apache/incubator-pekko-persistence-jdbc/blob/a9ebfe6da617f8cd2abc5813d2a530b1e1de70bb/core/src/main/scala/org/apache/pekko/persistence/jdbc/query/dao/ReadJournalQueries.scala#L61
The issue is the Join happens before the filters on the event_journal table. This pushes the where clause to the main query forcing a full event journal query in the subquery.
private def baseTableWithTagsQuery() = {
baseTableQuery().join(TagTable).on(_.ordering === _.eventId)
}
private def eventsByTag(
tag: Rep[String],
offset: ConstColumn[Long],
maxOffset: ConstColumn[Long],
max: ConstColumn[Long]) = {
baseTableWithTagsQuery()
.filter(.2.tag === tag)
.sortBy(._1.ordering.asc)
.filter(row => row._1.ordering > offset && row.1.ordering <= maxOffset)
.take(max)
.map(._1)
}
I think the fix is as simple as reordering the query to push the filter above the join.
private def eventsByTag(
tag: Rep[String],
offset: ConstColumn[Long],
maxOffset: ConstColumn[Long],
max: ConstColumn[Long]
) = {
baseTableQuery()
.filter(row => row.ordering > offset && row.ordering <= maxOffset)
.sortBy(.ordering.asc)
.join(TagTable)
.on(_.ordering === .eventId)
.filter(.2.tag === tag)
.take(max)
.map(._1)
}

Thanks @wjohnsonbynder for the detailed analysis.
Would you be interested in creating a PR? We have a fairly limited number of regular contributors.

Thanks @wjohnsonbynder for the reporting. If you were interested in creating a PR, you could start by adding a perf unit test on: https://github.com/apache/incubator-pekko-persistence-jdbc/blob/main/core/src/test/scala/org/apache/pekko/persistence/jdbc/query/EventsByTagTest.scala
And then report the cost before and after the change, If you want to contribute, the pekko community will help you complete this PR.

A bit out of my depth with for the project but I messed around with the following test with both the existing code and my fix.
Run locally
https://github.com/apache/incubator-pekko-persistence-jdbc/blob/69a80e3259e0a625ee99f247b1f6ec00276408da/core/src/test/scala/org/apache/pekko/persistence/jdbc/query/EventsByTagTest.scala#L211
I ran it with 100, 1000 and 1300 actors with both old select and my fix. More than the tests were timing out locally.
Old followed by new
100 - old: 3.708s new: 2.370s
1000 - old: 30.447s new: 8.902s
1300 - old: 53.257s new: 12.082s
The other tests all run about the same as the size of the data is small. Since this is an error with selecting the whole table, it really only shows up at scale.
Should I go ahead and make a PR?

Could you give us a PR with your changes? We don't necessarily need performance tests. Someone else might be able to perf test.

Not sure I understand.
This subquery currently has nothing on the where clause other than deleted = false
select "deleted" as x4, "meta_ser_id" as x14, "meta_ser_manifest" as x15, "sequence_number" as x6, "writer" as x7, "event_ser_manifest" as x12, "write_timestamp" as x8, "persistence_id" as x5, "adapter_manifest" as x9, "ordering" as x3, "event_payload" as x10, "event_ser_id" as x11, "meta_payload" as x13 from "event_journal" where "deleted" = false
This part of the parent where clause only pertains to the subquery.
((x2.x3 > ?) and (x2.x3 <= ?))
This is the ordering field. Moving this to the subquery since it is whole contained to that table means only a portion of event-journal is selected. Right now the subquery must execute and it returns the entire event-journal. Limiting the results from the subquery instead of doing it in the parent stops the full scan of the journal


docs: add minimum container-selinux version

What this PR does / why we need it:
Document the fact that, for SELinux support, KubeVirt requires a recent-enough version of container-selinux to be installed on the nodes.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/lgtm


/hifigan/hifigan_melspec_universal missing

Hello,
I was setting up the running environment on my device, trying to process training. When running "train.py", the error says that "/hifigan/hifigan_melspec_universal" is missing.
I checked ".gitignore" file, and found out that hifigan is included. I assume that the file (or the folder) has been ignored when committing.
Would you able to provide the file that I need for running? If the file exists in the project, would you able to tell me where that is?

Sorry,
I have not checked the closed issues and the setup.sh file carefully. I did run the setup.sh file, I think there must have some issue while running it. I assumed it ran properly as I saw "Done" message. I will check that again.


Current installation instructions do not work

I am aware that pip install .  does not work as intended, fixing it will require a resturcture of the repo.
Current alternative method of installation is as follows
pip install -r requirements_minimal.txt
Rscript r_install_libraries.R
python setup_orig.py develop

Hopefully this will get fixed up in the next couple of days!

Solve in PR #12


How can I enable gas fee on the ibft private network

Is possible to enable the price fee on the IBFT private network. ? Here with my sample genesis-file .
{
"config" : {
"chainId" : 2018,
"muirglacierblock" : 0,
"ibft2" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 4,
"blockreward": "5000000000000000",
"miningbeneficiary": "00929a35ab4a3426407b5c812b5b5c227aab691b"
}
},
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit" : "0x47b760",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase" : "0x0000000000000000000000000000000000000000",
"alloc" : {
"00929a35ab4a3426407b5c812b5b5c227aab691b" : {
"balance" : "0xad78ebc5ac6200000"
},
"0793cb40a11cc6301ae516dab378d9831fb46192" : {
"balance" : "90000000000000000000000000"
},
"42af34d9c040d3605cdd53b759175f71c48c5348" : {
"balance" : "90000000000000000000000000"
}
},
"extraData" : ""
}

hi @eu09 - we've got a number of team members out on leave this week so might be next week before you see an answer.

The --min-gas-price command line option specifies if a gas fee is required.  Leaving it at the default (1000 Wei) or setting to a specific value will enable a gas fee on an IBFT 2.0 network.

Hey @eu09,
The real issue with enabling a gas-fee on an IBFT2 network, is the creation and distribution of Eth, such that users of the network can apply a non-zero gas price to their transactions.
So, all accounts can be given an allocation up front via the genesis file, but, how do you "top them up" over time?
The answer is to enable mining rewards in the network such that a specific account will be paid a fixed sum per block (along with transaction fees).
The maintainer of this account is then responsible for distributing this generated Eth to all users of the network in whatever way they see fit - i.e. this account becomes the "central bank" of the network.
To enable mining rewards you need to add:

miningbeneficiary (hex address), and
blockreward (in wei)
to your genesis file (on all nodes - i.e. everyone must agree that someone will get paid, or else blocks will be invalid).

Then, when starting your validators, add the min-gas-price to set an appropriate gas-price for the network (i.e. a non-zero value) - this then will ensure that all nodes must supply an acceptable gasPrice to their transactions for their transactions to be mined, and therefore pay the subsequent Eth.

Hey @eu09,
The real issue with enabling a gas-fee on an IBFT2 network, is the creation and distribution of Eth, such that users of the network can apply a non-zero gas price to their transactions.
So, all accounts can be given an allocation up front via the genesis file, but, how do you "top them up" over time?
The answer is to enable mining rewards in the network such that a specific account will be paid a fixed sum per block (along with transaction fees).
The maintainer of this account is then responsible for distributing this generated Eth to all users of the network in whatever way they see fit - i.e. this account becomes the "central bank" of the network.
To enable mining rewards you need to add:

miningbeneficiary (hex address), and
blockreward (in wei)
to your genesis file (on all nodes - i.e. everyone must agree that someone will get paid, or else blocks will be invalid).

Then, when starting your validators, add the min-gas-price to set an appropriate gas-price for the network (i.e. a non-zero value) - this then will ensure that all nodes must supply an acceptable gasPrice to their transactions for their transactions to be mined, and therefore pay the subsequent Eth.

Hi @eu09, I believe the above answers your issue, so closing this for now - please feel free to reopen if you have any further questions!


threadless is not showing up in the list of organization to add funds

this is annonying since I need to manually change the contributions from OSC to threadless every time I add funds to them

On https://opencollective.com/opensourcecollective/dashboard?
You mean add funds from them?

no no when I add funds to a collective, threadless never shows up as an organization in the list

Fixed in https://github.com/opencollective/opencollective/issues/1242


rippled v1.3.1 OOM (out of memory) crash on testnet

Hi!
Been running rippled v1.2.4 on testnet for quite some time without any issues on 10GB VM.
But 2 months or 3 months ago started to see massive OOMs and huge disk reads.
After updating to rippled v1.3.1 the situation is still the same, basically every hour there is an OOM crash.
Here is my rippled.cfg for testnet:
[server]
port_rpc_admin_local
port_peer
port_ws_admin_local
port_rpc_external
port_ws_external
#ssl_key = /etc/ssl/private/server.key
#ssl_cert = /etc/ssl/certs/server.crt

#enable signing
[signing_support]
true

[port_rpc_admin_local]
port = 5005
ip = <IP_ADDRESS>
admin = <IP_ADDRESS>
protocol = http

[port_peer]
port = 51235
ip = <IP_ADDRESS>
protocol = peer

[port_ws_admin_local]
port = 6006
ip = <IP_ADDRESS>
admin = <IP_ADDRESS>
protocol = ws

[port_rpc_external]
port = 51234
ip = <IP_ADDRESS>
protocol = http
user = ripplerpc_testnet
password = pass
admin = <IP_ADDRESS>
#admin_user = ripplerpc_testnet
#admin_password = adminpass

[port_ws_external]
port = 51233
ip = <IP_ADDRESS>
protocol = http
user = ripplerpc_testnet
password = pass
admin = <IP_ADDRESS>
#admin_user = ripplerpc_testnet
#admin_password = adminpass
protocol = ws

#-------------------------------------------------------------------------------

[node_size]
tiny

[node_db]
type=RocksDB
path=/home/ripple/.ripple/db_testnet/rocksdb
open_files=2000
filter_bits=12
cache_mb=256
file_size_mb=64
file_size_mult=2
online_delete=2000
advisory_delete=0

[database_path]
/home/ripple/.ripple/db_testnet

[debug_logfile]
/home/ripple/.ripple/debug_testnet.log

[sntp_servers]
time.windows.com
time.apple.com
time.nist.gov
pool.ntp.org

[ips]
r.altnet.rippletest.net 51235

[validator_list_sites]
https://vl.altnet.rippletest.net

[validator_list_keys]
ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860

[rpc_startup]
{ "command": "log_level", "severity": "warning" }

[ssl_verify]
1

The crashlog:
[9517417.712334] Out of memory in UB 785: OOM killed process 1136 (rippled: main) score 0 vm:12445792kB, rss:8542132kB, swap:2930984kB
[9523304.685633] Out of memory in UB 785: OOM killed process 1181 (rippled: main) score 0 vm:12600648kB, rss:10099244kB, swap:1374516kB
[9539038.259031] Out of memory in UB 785: OOM killed process 1214 (rippled: main) score 0 vm:12619392kB, rss:9740884kB, swap:1731872kB
[9547999.656154] Out of memory in UB 785: OOM killed process 1292 (rippled: main) score 0 vm:12631060kB, rss:8109076kB, swap:3363836kB
[9548834.788951] Out of memory in UB 785: OOM killed process 1374 (rippled: main) score 0 vm:12490436kB, rss:9968068kB, swap:1505032kB
[9554955.520002] Out of memory in UB 785: OOM killed process 1400 (rippled: main) score 0 vm:12546684kB, rss:10385836kB, swap:1079028kB
[9568000.591282] Out of memory in UB 785: OOM killed process 1433 (rippled: main) score 0 vm:12535856kB, rss:9847404kB, swap:1617708kB
[9586333.723690] Out of memory in UB 785: OOM killed process 1471 (rippled: main) score 0 vm:12518188kB, rss:8828636kB, swap:2628092kB
[9594660.762773] Out of memory in UB 785: OOM killed process 1551 (rippled: main) score 0 vm:12523148kB, rss:9851188kB, swap:1605008kB
[9600658.329453] Out of memory in UB 785: OOM killed process 1581 (rippled: main) score 0 vm:12575460kB, rss:9754816kB, swap:1702112kB
[9606191.889044] Out of memory in UB 785: OOM killed process 1614 (rippled: main) score 0 vm:12491040kB, rss:10405776kB, swap:1050684kB
[9618393.215965] Out of memory in UB 785: OOM killed process 1644 (rippled: main) score 0 vm:12501732kB, rss:8257096kB, swap:3199896kB
[9642889.916292] Out of memory in UB 785: OOM killed process 1682 (rippled: main) score 0 vm:12531844kB, rss:8513004kB, swap:2942972kB
[9649820.280216] Out of memory in UB 785: OOM killed process 1817 (rippled: main) score 0 vm:12605872kB, rss:9383708kB, swap:2072036kB
[9655551.374678] Out of memory in UB 785: OOM killed process 1851 (rippled: main) score 0 vm:12553380kB, rss:8081320kB, swap:3375464kB

Use NuDB instead of RocksDB and make sure you have a fast SSD.

@MarkusTeufelberger how is this relevant?
There is an apparent memory issue (maybe a leak somewhere) in rippled and it has nothing to do with the underlying storage.

see https://github.com/facebook/rocksdb/issues/4112 for example -- so It could be related to RocksDB. NuDB is preferred for performance and memory usage anyhow --  trying it could at least help determine if RocksDB is a problem in this case.

@mellery451 so you're saying right now RocksDB in rippled is not usable at all?
This should be reflected somewhere (e.g. documentation).
NuDB won't work on the server we use for testnet and as I pointed earlier some time ago (12th July this year to be exact) the exact same configuration was working just fine on the same amount of memory and same configuration.
Regarding, your mentioned issue - why there is no such problem in bitcoin or any other cryptocurrency using RocksDB and only in rippled? If it was such a serious issue it would affect all software using RocksDB.

https://www.xrpchat.com/topic/32268-skein-systems-validator-public-key/?do=findComment&comment=741620
The server does quite a bit of work to maintain some ledger indexes used to find paths for cross-currency payments , if you don't use path finding, you can disable it.
[path_search_max]
0

@yxxyun thanks for the tip! I'll try this config stanza and get back if it helps.

@yxxyun unfortunately that didn't help either :(

Are there any other processes running on the VM?
Reiterating on what @MarkusTeufelberger and @mellery451 suggested, I also recommend trying NuDB as it requires considerably less memory than RocksDB.

@miguelportilla no, there is only rippled running and consuming all available memory at some point and being restarted by OOM.

It could very well be that your node doesn't manage to write its files fast enough and fills caches until it runs out of memory. NuDB caches much less (and also does not rewrite/compact data into different levels), so that's one way you could try to find out what happens.
Other cryptocurrency clients also have their issues (I ran into some parity based servers that are hilariously bad at dealing with RocksDB), many don't have as much state or write/read load as XRPL so they can cache more or can take their time to do a compaction since the next block is still minutes away.
I'm not saying there isn't an issue within rippled potentially, it's just that a resource starved server (too little network IO, disk IO, CPU or RAM) tends to spiral out of control a bit in my experience. I had other issues with a spotty and slow internet connection, which lead to rippled constantly fully re-syncing which led to even more traffic. It might very well be the case that on your node it tries to write to the database but can't because it is compacting or still slowly writing so it will cache and cache and cache...
Running rippled without a fast SSD is anyways a futile task if you want any kind of historic data. Why do you need exactly 2000 ledgers anyways? Maybe you can increase/decrease that number to see if it helps. Also you could start logging below the "warning" level and also monitoring the machine so you have a bit more insight into what's happening.

RocksDB will consume memory unbound if the storage subsystem cannot keep up with the write load. The load on the OS your VM runs on may be affecting your storage performance, for instance if several VMs are running. Most providers mention peak IOPS but fail to guarantee sustained metrics. Your VM must always have a sustained minimum of 10k IOPS or RocksDB will consume more memory. With NuDB, the OOMs may disappear but if your storage performance is sporadically dropping, you might desync from the network.

@MarkusTeufelberger

It could very well be that your node doesn't manage to write its files fast enough and fills caches until it runs out of memory. NuDB caches much less (and also does not rewrite/compact data into different levels), so that's one way you could try to find out what happens.

No, it's not. I've tested rippled on ssd server and getting same results - oom crash and HUGE memory consumption. I don't want NuDB I want RocksDB. Does it work at all?

Other cryptocurrency clients also have their issues (I ran into some parity based servers that are hilariously bad at dealing with RocksDB), many don't have as much state or write/read load as XRPL so they can cache more or can take their time to do a compaction since the next block is still minutes away.

parity is the next evil after rippled

I'm not saying there isn't an issue within rippled potentially, it's just that a resource starved server (too little network IO, disk IO, CPU or RAM) tends to spiral out of control a bit in my experience. I had other issues with a spotty and slow internet connection, which lead to rippled constantly fully re-syncing which led to even more traffic. It might very well be the case that on your node it tries to write to the database but can't because it is compacting or still slowly writing so it will cache and cache and cache...

See previous comment the same behavior is on the fast SSD backed storage.

Running rippled without a fast SSD is anyways a futile task if you want any kind of historic data. >Why do you need exactly 2000 ledgers anyways? Maybe you can increase/decrease that number to >see if it helps. Also you could start logging below the "warning" level and also monitoring the >machine so you have a bit more insight into what's happening.

I don't want full history, usually (before) issues started occuring if rippled's DB grew to 10G or more so I stick to 2000 ledgers (default configuration) for my tasks of receiving and sending transactions without history it has been working fine for last 2 years.
I'll try the logging later, but the rippled log is so messed up with huge amount of logs I'm not sure what to look for.

@miguelportilla

RocksDB will consume memory unbound if the storage subsystem cannot keep up with the write load. The load on the OS your VM runs on may be affecting your storage performance, for instance if several VMs are running. Most providers mention peak IOPS but fail to guarantee sustained metrics. Your VM must always have a sustained minimum of 10k IOPS or RocksDB will consume more memory. With NuDB, the OOMs may disappear but if your storage performance is sporadically dropping, you might desync from the network.

I understand that RocksDB should consume some memory, but as I said before it started to occur recently, so it must be something with the rippled software as before it was working just fine on the same configuration.
I also tried running rippled on fast storage (SSD) and the result is the same - rippled consumes a lot of memory even on testnet. In the guides there is outline that rippled should run just fine on 8GB of memory but in reality it can't.

Now that the Testnet has been reset, is this still happening? If not, maybe my hypothesis was correct. If it is still happening, then it bears further investigation into possible code causes.

@mDuo13 I had to switch the db engine to NuDB otherwise rippled was not usable.
I believe the issue is still there.

I have a similiar problem when using rippled:
Maybe this is not a bug, there is a project using rippled0.80.2, and it have ran abount a year,with 180G rocksdb data，and the sles are below:
 "state" : {          "account" : 2524069,          "amendments" : 1,          "directory" : 2518953,          "escrow" : 0,          "fee" : 0,          "hashes" : 136,          "offer" : 1,          "payment_channel" : 0,          "signer_list" : 0,          "state" : 4738656,          "table" : 0,          "ticket" : 0       }
I am puzzled about the memory in rippled process. The key point is when the treenodecache size returned from 'get_counts' get down from above 12000000 to below 2000000, and other params didn't grow, but the memory didn't get down at all.
So I suspect  there is a memory leak in rippled.
The json returned by get_counts the first time:
{    "id" : 1,    "result" : {       "AL_hit_rate" : 15.70247936248779,       "HashRouterEntry" : 1479,       "InboundLedger" : 99,       "Ledger" : 109,       "NodeObject" : 17812,       "RCLCxPeerPos::Data" : 40,       "SLE_hit_rate" : 0.3076923076923077,       "STArray" : 128,       "STLedgerEntry" : 29,       "STObject" : 1332,       "STTx" : 244,       "STValidation" : 392,       "Transaction" : 173,       "dbKBLedger" : 4204,       "dbKBTotal" : 9604,       "dbKBTransaction" : 4204,       "fullbelow_size" : 2559678,       "historical_perminute" : 22,       "ledger_hit_rate" : 11.01928329467773,       "node_hit_rate" : 28.22913932800293,       "node_read_bytes" :<PHONE_NUMBER>,       "node_reads_hit" : 14754404,       "node_reads_total" : 15643782,       "node_writes" : 741054,       "node_written_bytes" : 289595474,       "status" : "success",       "treenode_cache_size" : 12238,       "treenode_track_size" : 12009843,       "uptime" : "5 minutes, 5 seconds",       "write_load" : 0    } }
The second:
{    "id" : 1,    "result" : {       "AL_hit_rate" : 30.69767570495605,       "HashRouterEntry" : 1509,       "Ledger" : 14,       "NodeObject" : 8539,       "RCLCxPeerPos::Data" : 40,       "SLE_hit_rate" : 0.5398058252427185,       "STArray" : 102,       "STLedgerEntry" : 141,       "STObject" : 1301,       "STTx" : 297,       "STValidation" : 584,       "Transaction" : 274,       "dbKBLedger" : 4204,       "dbKBTotal" : 9604,       "dbKBTransaction" : 4204,       "fullbelow_size" : 1374097,       "historical_perminute" : 0,       "ledger_hit_rate" : 15.36214923858643,       "node_hit_rate" : 28.27434730529785,       "node_read_bytes" :<PHONE_NUMBER>,       "node_reads_hit" : 14893786,       "node_reads_total" : 15783684,       "node_writes" : 743631,       "node_written_bytes" : 291259310,       "status" : "success",       "treenode_cache_size" : 163,       "treenode_track_size" : 1625090,       "uptime" : "7 minutes, 38 seconds",       "write_load" : 0    } }

Hello,every one ,I know the reason for my question, may be the same reason for yours @gituser .
The g_libc will  hold the memory instead of free to OS after the destructor is called , you can use malloc_trim(0) to free the memory g_libc not freed,see :https://stackoverflow.com/questions/15529643/what-does-malloc-trim0-really-mean

Closing.


Check for default export naming to be PascalCase

Hello,
When we are using Vite with react-refresh, hot-reloading stops working if we so much as export a component without pascal case naming. If I'm not wrong, this package seems like the best place to enforce a rule to always export from *.jsx files with the correct naming style.
Example without hot reloading:
const myComponent  = () => { ... }

export default myComponent; // Camel case export _not_ pascal case

Working example with hot reloading:
const MyComponent = () => { ... }

export default MyComponent; // Not the pascal-casing

We are able to replicate the issue consistently in our project, but haven't found an ESLint rule that will catch this mistake. Is this already possible? Or would it be a simple enough fix to include it?
Thanks

Okay fair enough.
I was wondering if the logic would simply match what Vite/react-refresh(?) is looking for: "something exported that isn't pascal case".
So you wouldn't actually check the return type of the function etc - you can assume because it is .jsx that it is a component, but warn on the naming only.
Anyway, if it doesn't make sense for this plugin then that's okay. Thanks.

Personally it happens for me to have file with some JSX blocks without any components  (for example sharing select options between components and one of the field is a callback that return custom JSX rendering)
If you want to make a lint rule that always forbid non pascal case exports in JSX files, starting from this rule and trimming all the unrelated part if probably a good way to get it done

Personally it happens for me to have file with some JSX blocks without any components (for example sharing select options between components and one of the field is a callback that return custom JSX rendering)

Fair point. But does Vite hot-reloading work in those cases? It felt like it was sensitive to naming, so would break if that's the case?

The React plugins only try to HMR files that contains Refresh code: https://github.com/vitejs/vite-plugin-react-swc/blob/08b41e98f5526d8bd8203c90c79de22b815ab15a/src/index.ts#L113
So normally in that case Babel/SWC should not found anything that could be a React function, so not injecting any React refresh boilerplate and the file will behave like any non TSX file (ie bubble HMR to all the component that imports it)


Boyer--Lindquist basis used but not defined

The Boyer--Lindquist basis is used throughout the package as BL but never seems to be defined using DefBasis[___]. This causes errors when trying to use Validate/ToCanonical on an expression containing, e.g. derivatives taken in the BL basis.

Fixed.


[SMALLFIX] Remove hadoop-client dependency in servers

We only use the dependency to call a special output stream API which can be isolated to the ufs module.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/15230/
Test PASSed.

Merged build finished. Test PASSed.


Title

https://github.com/github/docs/blob/f4f7d2171e75cb9adb636b39024724bb6a5f7994/.github/CODEOWNERS#L27

#4353 #4348 #4333 #4344


end of tracks show over track image

when a track ends the waveform show up on top of the track image... this can probably be fixed by changing the z-index of the track image

bumped z-index of the track image.


Antennas Manhattan demo

Moving the antennas manhattan project to Materialize demo section!

Oh... I just saw the CI test. I will need to add one.

Oops. My bad! Thank you @morsapaes

@morsapaes now looks ready!

Yes! The /frontend could be shared. The other parts like back-end or helpers could be refactored to be reused.
I'm going to push the /frontend change and if the other parts should also be resued, let me know!
(Happy to modify them and push them if another PR 🙌)


Checking about the licensing

When I recently started working on my own crate, I was surprised by the requirements of the MIT license. I've been wondering whether new crate authors really want to use it for their own projects.
The license requires that any binaries that make use of your crate must  be distributed along with the LICENSE.txt file in the repository. I'd expect many users to accidentally break that term, and I personally didn't want to place that burden on them.
Since you can't change the project's license without confirmation from all the contributors, it's something that needs to be addressed early.
So yea, I just wanted to check that you think the MIT license is the most appropriate one for your project 😄 There are a number of other options with simpler, or more friendly terms,

I'll think about dual-licensing as Apache 2.0.


Integrity of translation source texts and changes.

This is an issue, which I was aware of, but did not think it would be on a dramatic scale, sadly, seeing nearly the entire source string being changed, caused me to question the integrity of these translations.
The fact that changed source text is unable to be flagged or be informed for the translator if it is still correct.
For example, „upnp“ has changed nearly of all of it's source texts.

The „insights“ function is not useful, since the only thing that it does is show „Changes committed“
The solution to this problem, would be to flag changed sources as: „Needs re-approval, due to the changes that were made“
If the translated text was at this day of this year and now the source is different, then it needs to be rechecked.
I have seen this done, though I am not a „Weblate“ expert to exactly know how it's done.

+Delete the English language, there is no reason why I should be seeing „English (Developer)“ and „English“ with 99% parity.

You might be right to want to delete the English language, but there might be a load of historical original text there that isn't in "developer" yet.

English (developer) is the original Luci source code. "English" is unnecessary addition, but people can add languages (like Lithuanian) by themselves. We can't easily prevent that.
Jow has prevented compiling English .ipk package, so the extra language is pretty harmless.

Anyways, coming back to the original topic. In other translation projects, when a (source) string is changed, it marks all languages as „needs editing“, in case of „OpenWrt“ – some strings in „Weblate“ which were translated are completely different and there is NO SYSTEM set up in place to check for that. The longer this is kept, then nearly all of the translations at a later date will be incorrect, since edits are constant.
No one is going to manually check 9,925 strings for changes, which are not even reported in specifics.

The facility you speak of should be active, but I have no overview of weblate to judge - but since the repo here deals with raw edits, some PRs swap the origin string contents and the i18n pairs, maintaining consistency and not surfacing any kind of 'dirty' flag, since it is preferable to maintain a 95% accurate string vs (a change which then incurs) needing to i18n the whole string anew.
This is generally why I abhor really long strings explaining something. Break each sentence down into i18n units. The alternative? A whole paragraph, and then a single word changes later on...
In this specific case, someone came along and wanted to fix some of the upnp strings, but it got chaperoned by someone else: #6975 #6863 - do either of those affect these strings?

„Upnp“ is not the only one, I can't exactly remember the places where I have seen them changed, but in short: texts that were this (long or short) became completely different.
From what I can see comparing other „Weblate“ projects is that „translation changed“ in source of „OpenWrt“ shows only one...
Which is factually incorrect, since we can see more (including luci-base).

In other projects, it shows multiple (mostly small edits) and every time that „translation changed“ is marked, then it is also marked for all other languages as „needs editing“.
P.S fix the „%GIT_VERSION%“ and „Žemaičių tarmė“ to „Žemaitiu kalba“

In other projects, it shows multiple (mostly small edits) and every time that „translation changed“ is marked, then it is also marked for all other languages as „needs editing“.

@hnyman any ideas?

P.S fix the „%GIT_VERSION%“ and „Žemaičių tarmė“ to „Žemaitiu kalba“

Fix it yourself :D

Fix it yourself :D

Well I did? https://github.com/openwrt/firmware-selector-openwrt-org/pull/19
Though, I can't fix the „OFS %GIT_VERSION%“, not in my ability at least.

Should be fixed now. Thanks for the heads up.


how to steal asset decimal？

when i hava two asset like:
asset a = 5.0000 Token
asset b = 3.0000 Token
now i want to a/b , but result = 1
how to steal to 1.6667
I try to do it
double q = a.amount;
double w = b.amount;
double c = q / w;
error:
"error":{"code":3070002,"name":"wasm_execution_error","what":"Runtime Error Processing WASM","details":[{"message":"wabt execution failure (out of bounds memory access)"

Hi @boy-good,
I tried your above code, i.e.
        asset a(5, symbol("TOKEN", 4));
        asset b(3, symbol("TOKEN", 4));
        double c = double(a.amount)/ double(b.amount);
        eosio::print("c is ", c, "\n");

And I have no problem in getting the ratio of a and b as 1.666666666666667e+00
Could the "out of bond memory access" error that you encountered be caused by another part of your smart contract?


include request body in failure report

For now in test failure message doesn't include any requestBody and headers
String message = "status code was: " + response.getStatus() + ", expected: " + status                     + ", response time: " + responseTime + ", url: " + response.getUri() + ", response: " + rawResponse;
Could that be added?

@evgeniiabalyasina I really think it is not necessary and in the past users used to complain that karate error traces were too verbose. keep in mind that the response payloads can be huge in some cases. if you scroll up the console or file log a bit you will see everything.
I think you haven't seen the JUnit or Cucumber HTML reports !
https://twitter.com/KarateDSL/status/935029435140489216
https://twitter.com/KarateDSL/status/899671441221623809


sudo apt install git python3_pip - Not Correct

I guess the correct command should be:
sudo apt install git python3-pip

Thank you. This has been corrected.


[tensorflow/compiler/tf2xla/kernels/dynamic_stitch_op.cc] Add calls to reserve() before populating vector

https://github.com/tensorflow/tensorflow/pull/51739#issuecomment-940389562 told me to split the larger PR into one PR per file; thus this (thanks bash, git and gh!)

Closing as per the review comment.


⚠ Bofrost.de has degraded performance

In 040d1c5, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 870 ms

Resolved: Bofrost.de performance has improved in f3e6865.


is package incomplete?

Hello, I did receive error  response ...

And the src files...

And at exports config ...

What I'm doing wrong?
I did install with composer and try packagist and github repo...

Also having the exact same problem. Installed via composer, the publish command can't find the publish file, and the classes aren't found anywhere.

@nirvale Try removing the version you installed an reinstall it with composer require icehouse-ventures/laravel-chartjs ^1.4
Without specifying the version I was getting a 3.0.0 version installed which didn't match the repo at all and still had namespaces referring to fxcosta. After I specified the version I was then able to publish the provider.

You can use the old syntax app()->chartjs->name() if the new Charts::name() (with the imported Facade) isn't working. But the version weirdness, and package asset publishing issues sounds like something to do with the package version tagging or the install method. The folder structure in your screenshots looks like the old folder structure of the package (notice the absence of the Facade folder and Support folder (which are in the latest version). Maybe try composer requiring a specific version (1.4 is the latest) and see how that goes?

Ok, we found the bug. This package was forked from a prior package. And somehow Packagist has now decided that they are the same package, so whenever the deprecated package makes a version bump that becomes the 'latest' version. There are a number of long-term fixes such as detaching the fork, but the fastest fix was to bump the version on this package. I've updated the version numbering so any future versions of the package should be less likely to get derailed.


Release Google.Cloud.Retail.V2 version 1.3.0

Changes in this release:

Commit 672325d:

docs: Keep the API doc up-to-date
feat: update grpc service config settings to reflect correct API deadlines
chore: remove relative private links from search service comments to prevent crashing client lib generation tool

Commit 51b50d0: docs: Keep the API doc up-to-date
Commit ac367e2: feat: Regenerate all APIs to support self-signed JWTs

Created release for Google.Cloud.Retail.V2-1.3.0


Allow option to copy and download settings for Organization Wide Use

It would be nice to copy the full list of tabs including their reference link. In this way tabs settings can be shared across an organization.
Would potentially also solve Allow reordering #5 if one can alter the export of the extension

This would be great as an import/export feature. As a consultant, I occasionally have to use different laptops, and it's a pain to have to set it up with all of the links every time.


Open bundle for Symfony 5

Can we open bundle to be usable with SF 5?
https://github.com/kjonski/HashId/blob/dev-master/composer.json#L15

Opened in version 3.0


Extract equals() into Equatable interface

This is related to php-ds/extension#92. The interface description is a bit odd; was trying to keep the existing general structure and language.

Any feedback on this idea?

It's definitely the right way to go, was thinking of applying this in 2.0 but could do the same on the existing track too. Would need to do the same in the extension either way.


virtual-device-testing-for-android 0.9.6

New Pull Request Checklist
Please mark the points which you did / accept.

[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

👍


make npm add run-tests to node_modules/bin

this should add run-tests to node_modules/.bin/ so we don't have to duplicate it in the samples (and I don't have to duplicate it in a number of my own repos)

hrm... test failure in FF (see https://travis-ci.org/webrtc/adapter/jobs/71991976) seems unrelated to this commit. Let's try again dear travis...

hrm... test failure in FF (see https://travis-ci.org/webrtc/adapter/jobs/71991976) seems unrelated to this commit. Let's try again dear travis...

Issue (test will be skipped rather on particular firefox versions) will be fixed in #90

By duplicate you mean that you run-test when you install adapter via NPM? Also FYI run-test is different in adapter/ and samples/ due to using selenium in the latter.

ah... that makes it a selfish request because I want to use an unmodified version in some repositories :-)

LGTM

That went a bit fast, oops ;). Well as mentioned this script is different for the repos hence it cannot be reused as it seemed to be intention of this PR. Closing.


sync to live

Docs Build status updates of commit c31d9db:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/windows-iotcore-docs, working directory: W:\zeoo-s, target branch: HEAD, target branch commit: b005de492d52cd5139fa410dd31c3ca369030dd9, source commit: c31d9db340622a973db7ae1c1e7e35c44af5f632.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit db43f38:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/tutorials/nxp.md
:bulb:Suggestion

Details

windows-iotcore/developer-tools/python.md
:white_check_mark:Succeeded

windows-iotcore/tutorials/nxp.md

[Suggestion] Missing attribute: author. Add the current author's GitHub ID. NOTE: This Suggestion will be elevated to a Warning on 9/1/2019.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Can I run two servers with the same name in two apps?

Can I run a server in tweak of Springboard, while at the same time run a server with the same center name in a daemon??

No. Never do that. Messages can only have one endpoint, if you setup multiple servers with the same name, MRYIPC cannot possibly know the correct destination for your message, leading to undefined behaviour. There should be absolutely no reason why you would want to do this in the first place, you should have different names for the SpringBoard and Daemon servers.


Improved warning message for deprecated ctor,

based on this discussion:
https://github.com/AutoFixture/AutoFixture/issues/475#issuecomment-202892003

:+1:


Create a dialog dialog is very confusing.

Describe the bug
When I create a dialog via the add menu (see #2976 ) it then shows me a dialog which is completely disconnected from the operation I think I'm doing.
The title of the dialog is "Describe your conversational objective" ???
This is

way way weird, what the heck is a conversational objective?  I though I was creating a dialog?
The title should align with the operation I am performing
the help text is not aligned with the fields, which causes confusion about what I am supposed to do where.

Version
0.0.1 (2 days ago)
Browser

[ ] Chrome
[ ] Safari
[ ] Firefox
[x] Edge (chrome)

OS

[ ] macOS
[x] Windows
[ ] Ubuntu

To Reproduce

open composer
open EmptyBot-01
Click Add Dialog (should be create #2976)
Look at the dialog and weep.

Expected behavior
Dialog title which matches the action I am performing. Like this:

@mareekuh as you provided the copy here quite awhile ago -- are you interested in updating this before BUILD?

By the way, I agree and have always felt that "Conversation objective" and "What can the user accomplish through this conversation" is off.

Lol - yeah, I'll fix it (-:
I think this comes from the era when we were designing a longer create-new flow (a year ago?) and especially when it's only a single dialog, this is odd.

Ok fixed see here: https://github.com/microsoft/BotFramework-Composer/issues/2976

much better!

@mareekuh do we sign off on this so we can start the dev work.

Thanks for your valuable feedback. Please see https://github.com/microsoft/BotFramework-Composer/issues/3175.


FileNotFoundError: [Errno 2] No such file or directory: 'samples/cityscapes/gan_compr ...  on.pdf'

here is error message,  i don't know how to find the file for the program
...
Epoch 0 | Generator Loss: 68.616 | Discriminator Loss: 7.002 | Rate: 0 examples/s (29.01 s) []
Epoch 0 | Generator Loss: 30.700 | Discriminator Loss: 1.290 | Rate: 1 examples/s (242.19 s) []
Traceback (most recent call last):
File "train.py", line 119, in
main()
File "train.py", line 116, in main
train(config_train, args)
File "train.py", line 85, in train
Utils.single_plot(epoch, step, sess, gan, train_handle, args.name, config)
File "/home/wujun/generative-compression/utils.py", line 134, in single_plot
global_step, imtype), format='pdf', dpi=720, bbox_inches='tight', pad_inches=0)
File "/home/wujun/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/figure.py", line 2062, in savefig
self.canvas.print_figure(fname, **kwargs)
File "/home/wujun/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 2263, in print_figure
**kwargs)
File "/home/wujun/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/backends/backend_pdf.py", line 2578, in print_pdf
file = PdfFile(filename, metadata=kwargs.pop("metadata", None))
File "/home/wujun/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/backends/backend_pdf.py", line 438, in init
fh, opened = cbook.to_filehandle(filename, "wb", return_opened=True)
File "/home/wujun/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/cbook/init.py", line 611, in to_filehandle
fh = io.open(fname, flag, encoding=encoding)
FileNotFoundError: [Errno 2] No such file or directory: 'samples/cityscapes/gan_compression_my_network_epoch0_step256_gen_comparison.pdf'

Whoops, thought I fixed this - just make a directory called cityscapes in the samples directory.
If you are in the main git area, run mkdir samples/cityscapes

Thank you so much !!!  The problem solved after mkir


Rename 'IPython Notebook' comment to 'Jupyter Notebook'

Reasons for making this change:
IPython Notebooks are now called Jupyter Notebooks. Making this change is more accurate and helps spread adoption of the new name.
Links to documentation supporting these rule changes:
Project Jupyter

@mattayes thanks!


[Readme] Add info/warm message on NuGet.org for no Readme

Add info/warm message on NuGet.org for no Readme
NuGet upload UI shows a friendly message encouraging users to adopt best practices (license, README) | Package publishers who us the NuGet.org publish UI (~50%)

4
Tooling
NuGet upload UI shows a friendly message encouraging users to adopt best practices (license, README)
Package publishers who us the NuGet.org publish UI (~50%)
Risk: None
Reward: 2/5 Many publishers become aware of best practices, but not as many as client tooling message
Server

working on redesigning the upload page to prevent confusion regarding readmes


AES CBC not working

Hello. Trying to use your library and came across a problem. AES CBC is not working correctly.
NB. ECB working well.
Issue description
I tried to encrypt the string with AES CBC on the microcontroller and then decrypt it on the computer. But every time there was broken data, the data was not decrypted correctly. There is a suspicion of incorrect behavior of the encryption function.
Test on atmega328p and stm32f411
How to repro
To reproduce problem try:

Create byte array of the key and the buffer
Copy any data to the buffer
Encrypt, decrypt the buffer
Compare original data and decrypted

Example repro
Example reproducible sketch for Arduino:

Code
#include "aes.hpp"
struct AES_ctx ctx;

uint8_t key[] = {
  0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81,
  0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4
};

uint8_t buf[16] = { 0 };

void printHex(uint8_t num) {
  char hexCar[4];

  sprintf(hexCar, "%02X ", num);
  Serial.print(hexCar);
}

void printByteArrayAsHexStringToSerial(uint8_t buf[]) {
  for (uint16_t i = 0; i < 16; i++) {
    printHex(buf[i]);
  }
  Serial.println();
  Serial.println();
}

void setup() {
  Serial.begin(9600);
  delay(10);

  AES_init_ctx(&ctx, key);

  Serial.println("Buffer at start: ");
  printByteArrayAsHexStringToSerial(buf);

  memcpy(&buf, "HELLO", 5);

  Serial.println("Buffer after copy data: ");
  printByteArrayAsHexStringToSerial(buf);

  //while (true) {

  AES_CBC_encrypt_buffer(&ctx, buf, 16);

  Serial.println("Buffer after encryption: ");
  printByteArrayAsHexStringToSerial(buf);

  AES_CBC_decrypt_buffer(&ctx, buf, 16);

  Serial.println("Buffer after decryption: ");
  printByteArrayAsHexStringToSerial(buf);
  Serial.write(buf, 16);

  Serial.println();
  Serial.println();
  delay(5000);
  //}
}

void loop() {}

Output:
Buffer at start:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Buffer after copy data:
48 45 4C 4C 4F 00 00 00 00 00 00 00 00 00 00 00

Buffer after encryption:
E2 71 EA C3 0F EF 43 29 00 43 4A EA BA D9 05 54

Buffer after decryption:
AA 34 A6 8F 40 EF 43 29 00 43 4A EA BA D9 05 54

Expected output:
Buffer at start:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Buffer after copy data:
48 45 4C 4C 4F 00 00 00 00 00 00 00 00 00 00 00

Buffer after encryption:
E2 71 EA C3 0F EF 43 29 00 43 4A EA BA D9 05 54

Buffer after decryption:
48 45 4C 4C 4F 00 00 00 00 00 00 00 00 00 00 00

Hi! I think you forgot about IV (initialization vector), this is important for CBC mode.
See this example in tests, please: https://github.com/kokke/tiny-AES-c/blob/3f69a5899e58e2e398e8c32ce7b3a954dd593ed4/test.c#L214
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CBC

@zgdump is your issue solved now?

Hi! I think you forgot about IV (initialization vector), this is important for CBC mode.
See this example in tests, please:
https://github.com/kokke/tiny-AES-c/blob/3f69a5899e58e2e398e8c32ce7b3a954dd593ed4/test.c#L212-L217
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CBC

Hello, thank you for your advice!
I figured out why the encryption didn't work.
First, encryption and decryption require different contexts to be initialized in the same way.
Second, need to take the pointer to the key and the pointer to the iv in the AES_init_ctx_iv. I just used a variable and the microcontroller perceived an array of bytes as an address in memory.
Thanks, close issue.


[ot_certs] update ot_certs lib to enable creating new custom cert extensions

Currently, the certificate Rust struct representation is tightly coupled to the DiceTcbInfo custom extension. We would like to decouple this to enable creating different certificates with different custom extensions. Specifically we would like to eventually create a TPM certificate (with the appropriate custom extension. We should:

[ ] Refactor the Certificate struct and separate out a CustomExtension struct to represent various custom extensions.
[ ] Refactor the certificate codegen to use the above new struct layouts
[ ] Refactor the HJSON certificate descriptions for the DICE certs (UDS, CDI_0, CDI_1)  to use above struct representation.

CC: @vbendeb


Device allocation issue related to ADB disconnection of Genycloud instances

Describe the bug
It appears sometimes Genymotion-cloud instances get disconnected from ADB. When this happens, they appear online but are in fact unreachable:
{"uuid": "703bb5fe-637d-45c2-bb1f-979088dfb41d", "name": "Detox-1623848194971.2", "state": "ONLINE", "adbtunnel_state": "FAILED"...

To spare some details (todo), when this happens other workers keep on trying to allocate the same already occupied instance and fail to do so, over and over again.
Steps To Reproduce

[x] I have tested this issue on the latest Detox release and it still reproduces

Actual build on CI: https://jenkins-oss.wixpress.com/job/detox-android-59-9-pr/2107/
TODO
1.
2.
3.
Expected behavior
Detox should overcome the failed ADB connection and avoid attempts to allocate already used instances.
Detox Trace-Logs

Device logs (adb logcat)

Screenshots

Environment (please complete the following information):

Detox:
React Native:
Node:
Device:
OS:
Test-runner (select one): jest-circus | jest-jasmine2 (deprecated) | mocha

Looks like this is a separate issue from what #2845 was trying to address. Let's put the CI on observation, provided that workers cannot steal each other devices from now on. We might see some more interesting error messages and learn from them what to address next.

All-in-all, as I understand it, it seems that this was a result of genymotion being configured (by us) to limit the overall lifespan of instances to 30min. We resolved it by increasing to 1hr (although theoretically, test running on CI builds are not meant to reach that 30min in any standard use case).
I think this can be closed, then (@noomorph - ACK?)


Solution location anywhere

Hello,
Here is a new contribution that focuses on the possibility of using this extension even with a solution that is not in the same path as projects.
I hope I have not made a mistake.
Here is the list of changes:

Update of the AssemblyInfo and the version (here, here, here)
Typo (here)
Migration in PackageReference (NuGet) (here)
Removing warnings (example)
Added reference to Microsoft.Build
Using MsBuild to find the path to the solution (example, used here)

I am under visual studio 2019. I hope it works properly in 2015 and 2017! :persevere:

Wow!! Thanks a LOT!! Such an amount of changes! I'm already looking into
it. I just found some bug on a small feature I developed recently, so I
guess I'll upload both things at the same time.
Cheers, and thanks again for your help.
P.
On Sun, Jul 7, 2019 at 7:40 PM Sébastien Villemain<EMAIL_ADDRESS>wrote:

I am under visual studio 2019. I hope it works properly in 2015 and 2017!
😣
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pauer24/VsNamespaceFixer/pull/19?email_source=notifications&email_token=AGBANKE4V2R3EZ62EZFATS3P6ITALA5CNFSM4H6WGBSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZLP5FI#issuecomment-509017749,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBANKDIUQNU4CA44NIJLJDP6ITALANCNFSM4H6WGBSA
.

I think with this modification it won't be compatible with VS2015. Why did you change from [14.0 to [15.0 ?
And I've got the same question for the Microsoft.Framework.NDP Version, that you upgraded from [4.5 to [4.6

Effectively! It's a mistake, sorry!

Wow!! Thanks a LOT!! Such an amount of changes! I'm already looking into it. I just found some bug on a small feature I developed recently, so I guess I'll upload both things at the same time. Cheers, and thanks again for your help. P.

I'm happy to be useful.
As I mentioned in the thread, I use msbuild to get information. This could be a starting point to solve this issue.

Hello again, I've been reviewing the PR, and it won't work on the first try :(
The structure folder I've got is:

Main folder

project folder
solution folder

It crushes on GetSolutionFilePath method, because startupProject.GetSolutionFullPath() returns null.
Can you take a look at it, please?
On the other hand, I will try this solution in VS2015, it has to work there, otherwise I cannot accept this feature at this cost.
Cheers!

After many tests, I did not succeed in reproducing the problem. I have no other version than 2019 for the moment. I do not have a null value returned.
If you wait a little I could be tested under vs2017 next week.

Sure, I can wait, but the errors I found were using VS2019 like you :(
On Sat, Jul 13, 2019 at 12:10 PM Sébastien Villemain <
<EMAIL_ADDRESS>wrote:

After many tests, I did not succeed in reproducing the problem. I have no
other version than 2019 for the moment. I do not have a null value returned.
If you wait a little I could be tested under vs2017 next week.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pauer24/VsNamespaceFixer/pull/19?email_source=notifications&email_token=AGBANKFK524P72KITCOGF4LP7GS3HA5CNFSM4H6WGBSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ3OXRQ#issuecomment-511110086,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBANKGZ5YO2SIGIC2DV5UDP7GS3HANCNFSM4H6WGBSA
.

I tested under vs2017. I have no problem.
I added security for null values.

I corrected the minimum version of the extension. InstallationTarget >=14.0
By cons, I left the version of 4.6 framework (instead of 4.5) because the extension target framework is 4.6.

Hey man, thanks a lot for these few changes. It was exactlly what I was
missing without knowing :)
The PR has been already aproved and the new version uploaded. It should be
able for the update anytime.
Cheers!!
P.
On Sat, Jul 20, 2019 at 12:26 PM Sébastien Villemain <
<EMAIL_ADDRESS>wrote:

I corrected the minimum version of the extension. InstallationTarget >=14.0
By cons, I left the version of 4.6 framework (instead of 4.5) because the
extension target framework is 4.6.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pauer24/VsNamespaceFixer/pull/19?email_source=notifications&email_token=AGBANKH23WML4BDL5B7ROGLQALR5JA5CNFSM4H6WGBSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2NLOPI#issuecomment-513455933,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBANKGRO33EQRQ7LVHYSHDQALR5JANCNFSM4H6WGBSA
.


Helper XPC invalidation fix

This fixes an issue where the XPC connection to the helper becomes invalidated upon install or reinstall. Nulls the connection to force creation of a new connection to the helper.

Should be good to go now. Sorry about that.

Sorry for all delays. But now it's merged. Thank you for fixing that!


Update util.py

Fixed get_code_properties to accept tuples of any size in the props parameter, instead of only 2.
Examples (found in real games):
[('linear', '0.5'), ('alpha', '1.0', None)]
[('zoom', '2', None)]

Also ignoring None on any position to make it congruent with the function docstring, because the second usage example implies a (None, "b") should return "b" and the current implementation returns "None b".

nice, thank you


Remove constant in Bitcoin fee calculation

We use a constant in btc_signer.go for the fee calculation:
https://github.com/zeta-chain/node/blob/60edc0e8b43ef44a014721740586b4345aa485c7/zetaclient/btc_signer.go#L63
However, in the bitcoin ZRC20 contract we read a GAS_LIMIT value to determine the tokens to burn for the fees.
There might be a discrepancy and if the value paid in the contract is lower than the value used for the actual tx, then it becomes a net loss for the tss signer.

After having a look, we actually only use estimateFee for selecting UTXOs and not the effective fees.
However, in the code we use txSize*gasPrice for the fees which may result in a lower fees paid on ZetaChain if the ZRC20 GasLimit is not set high compared to the tx size.
We also adjust the fees if too low:
if fees.Int64() < int64(minFee*1e8) {
	fmt.Printf("fees %d is less than minFee %f; use minFee", fees, minFee*1e8)
	fees = big.NewInt(int64(minFee * 1e8))
}

Which can result in the same problem, a lower fee paid on ZetaChain

yeah, gas fee in bitcoin might be tricky. I can see two problems:

our bitcoin outbound tx can be of variable size--zetacored does not know current UTXOs and cannot know exact size of the tx when scheduling. We could set a high size here as we have maximum 20 input UTXOs.
how to deal with stuck tx due to low fee? RBF?

Can be closed as we now use the gas limit for max tx size


Issue/208 lookupkeys

Closes #208

Codecov Report

Merging #218 (c692464) into main (fc189b5) will decrease coverage by 4.45%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #218      +/-   ##
==========================================
- Coverage   90.45%   86.00%   -4.46%
==========================================
  Files          21       14       -7
  Lines         220      100     -120
  Branches       18        0      -18
==========================================
- Hits          199       86     -113
+ Misses         21       14       -7

Flag
Coverage Δ

annotation-server
?

lab-server
86.00% <ø> (ø)

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

Impacted Files
Coverage Δ

annotation-server/src/app.controller.ts

...tion-server/src/medications/medications.service.ts

...n-server/src/medications/medications.controller.ts

...tation-server/src/medications/medication.entity.ts

...ation-server/src/medications/medications.module.ts

annotation-server/src/app.module.ts

annotation-server/src/app.service.ts

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 fc189b5...c692464. Read the comment docs.


Add tests for Twig components

Add unit tests for Twig components. Here's an approach that looks like it could work given the tests we have: https://www.previousnext.com.au/blog/testing-twig-templates-and-custom-javascript-jest

@ademarco Can you please elaborate on how we proceed on this in terms of having a test server that we can spin to render the twig components on which we can run the frontend tests on? (Context: https://github.com/international-labour-organization/designsystem/pull/679#issuecomment-1818778810)

Created #947 for the initial test setup. The actual implementation of the tests for the twig components should also be split into several issues and completed in stages.

Yes @justintemps, the forms components are not exposed in the pattern. I created an issue about it as well.
About the media one,I'll create tests for it.