[homeassistant.components.device_tracker.asuswrt] Could not parse lease row

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.58.1
Python release (python3 --version):
Whatever hassio ships with
Component/platform:
Hassio on RPi3
Description of problem:
ASUSWRT device tracker seems to function, stops working suddenly and logs are full of these:
[homeassistant.components.device_tracker.asuswrt] Could not parse lease row: b'fe80::c2aa:fbff:fe42:50e1 dev br0 lladdr c0:ee:fb:50:13:cc REACHABLE\r'
This error is interleaved with 'Could not parse neighbor row'. On each update this seems to produce 30 or so errors, each line for a different IP.
Expected:
ASUSWRT tracking to stay functional and not spew errors in the log.
Problem-relevant configuration.yaml entries and steps to reproduce:
device_tracker:
  - platform: asuswrt
    host: <IP_ADDRESS>
    username: myadmin
    password: mypassword
    track_new_devices: no
    interval_seconds: 45
    consider_home: 360

Enable device_tracker for ASUSWRT
Wait for hassio to restart
Check logs

Additional info:
This is probably the same issue reported in #6970. I am aware of a potential work-around which uses the web GUI of the router instead of SSH/telnet as mentioned in #6983; but since this is not merged and I use hassio, this is not a viable fix.

More digging: might relate to #2814 - the lack of IPv6 support. It looks like that ticket had a fix in the form of an updated regex, which does not seem to fix it for me.

I looks like the results do not match the command:
Could not parse neighbor row: b'69004 b8:27:eb:0e:e9:c0 <IP_ADDRESS> hassio *\r'
According to https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/device_tracker/asuswrt.py#L61-L68 this is not the format which is expected at all. When I manually run ip neigh, I get the correct output format.
I looks like the neighbour regex is applied to output from the cat /var/lib/misc/dnsmasq.leases command.
Does this maybe have to do with a slow connection between HA and the router? So the SSH handling assumes the output from the command is complete even when its not?
I see this as well:
[homeassistant.components.device_tracker] Updating device list from asuswrt took longer than the scheduled scan interval 0:00:45

Unfortunately I can not check this anymore as my ASUS router broke a while back.
Closing this ticket as I can not verify the fix.

I am running HA (0.65.4) via docker and using device_tracker.  Getting the following in the debug logs every sync interval
DEBUG (SyncWorker_5) [homeassistant.components.device_tracker.asuswrt] Could not parse row: ? (192.168.1.X) at XX:XX:XX:XX:XX:XX [ether]  on br0
I would say that this issue is not fixed or this is expected with debug level logging?

@jtogden

This issue have nothing to do with your error
New issues should be posted as new issues.


Fix: use correct config file for terragrunt

CI looks good, comments address, tested on ops. Going to merge this.


RLS Parameters not honored with caching enabled for embedded Dashboards

A clear and concise description of what the bug is.
We are using Superset dashboard embedding for some of our dashboards where dashboards are embedded into a web application for the users to consume. We are using RLS to enforce user's persona based security which we are achieving by passing the RLS parameters to Superset while creating a embed token. Additionally we have caching enabled for optimizing the dashboard load performance.
We have observed that while refreshing the cache, Superset is not honoring the RLS parameters which is leading users from one persona to to view the data of another persona which is not intended and defeating the whole purpose of having the cache.
How to reproduce the bug

Create a Dashboard
Enable dataset level cache
Enable dashboard embedding for the dashboard created in step (1)
Generate an embed token with some RLS parameters.
Embed the dashboard as an iFrame in another application and using the embed token from step (4)
The dashboard will load with RLS parameters properly applied.
Manually refresh the cache from the dashboard / chart options of the embedded dashboard itself
The RLS parameters are not honored

Expected results
The embedded dashboard should have loaded with RLS parameters properly applied with caching enabled.
Actual results
The RLS filters were not honoured leading to users from different persona seeing each other's data
Screenshots
N/A
Environment
(please complete the following information):

browser type and version: Google Chrome - v120
superset version: 2.0.0
python version: 3.8
node.js version: v16
any feature flags active:

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[x ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[] I have reproduced the issue with at least the latest released version of superset.
[x ] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
N/A

It seems the issue we encountered is more related to https://github.com/apache/superset/issues/24745. Has this been fixed in newer versions of Superset?

@villebro @eschutho

@sauravhaloi can you reproduce this on a more recent version of Superset?

Based on the above comment, I'll close this as fixed. If anyone sees this happening with 3.x, say the word and we'll re-open.

with superset 4.0.1, this issue reproduced. check please.


[elixir] Rewrite the credo linter to use json output.

Doing so allows us to provide inline information. I asked the maintainer to add a json format for the errors, and he did so today! Now we can provide the start and end column information so that ALE can underline the relevant parts.
https://github.com/rrrene/credo/issues/471
Need to wait until a new version of credo is released.

Closed due to inactivity.

Sorry, I was still waiting for an official Credo 0.9 release (currently
rc8), I'll update the code shortly!
On Thu, 22 Mar 2018 at 02:49, w0rp<EMAIL_ADDRESS>wrote:

Closed #1304 https://github.com/w0rp/ale/pull/1304.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/w0rp/ale/pull/1304#event-1533857625, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABTy9s-XbktRTzz1bSImuTPLgfBpfflrks5tgpKcgaJpZM4RmgnO
.

Sure, sounds good to me. I'll reopen this. Make sure to add a version check, as with linters like flake8, so changing this won't break running earlier versions of the linter.

Closing due to inactivity.


Update against create-vue?

The create-vue template that this repo is based on top of is almost 400 commits ahead at the time of this issue. Notable changes in upstream include the following (there may be more that I'm not aware of):

Updated TS config files (using standardised configs with server, client split)
Support for code quality tools with ESLint and Prettier

Could the create-iles template be updated against the upstream to include these benefits?

Alternatively, is it feasible to bootstrap îles on top of an existing, freshly-created create-vue setup?

Could the create-iles template be updated against the upstream to include these benefits?

That would be great, both lint setup and TS config updates.

is it feasible to bootstrap îles on top of an existing, freshly-created create-vue setup?

We could explore that, but given the app structure is different, it might be more trouble than manually updating this template over time.


typstyle support since typstfmt stopped

I have searched the issues of this repo and believe that this is not a duplicate.
I have searched the discussions and believe that my question is not already covered.

Feature Request

Can users be given an option to choose a formatter?


Assign query parameter in GET REST call.

This commit fixes GET call's query parameters assigning. It used to be assigned in request body and end up being ignored.

Damned I totally missed that ! Thank you for noticing this.


Support Terraform 0.14

Describe the Feature
Support for Terraform version 0.14.
Expected Behavior
I expect to not get "this module is not compatible, either change the source or contact..." messages when I run terraform plan.
Use Case
Upgrading to terraform 0.14 prevents us from using this module.
This module depends on https://github.com/cloudposse/terraform-null-label?ref=v0.19.2 which in turn has a ceiling on Terraform version 0.14.
The terraform-null-label module has since released version 0.20.0 which removes the version ceiling.
Alternatives Considered
Use a fork that has support for 0.14.0

This has been upgraded to HCL2

Hi @osterman @tquach from your comments I couldn't quite get what workaround you have done for this, I'm getting the null value error when running with terraform version 0.15.0
│ Error: Null value found in list
│
│   on modules/aws-cloudtrail-cloudwatch-alarms/main.tf line 121, in data "aws_iam_policy_document" "sns_topic_policy":
│  121:     resources = [local.sns_topic_arn]
│
│ Null values are not allowed for this attribute value.


cleanup public surface of parallel iterator API

The parallel iterator public API contains a whole bunch of random modules and things (e.g., for each operation, like reduce). We should clean it up to be more minimal, only exporting the stuff we really need, and putting all the associated types in a flat space (probably still keeping the par_iter module though).
cc @cuviper

I think that rewriting Type Parameters to be more concise can be a good thing, no ?

@Kerollmops I ... obviously strayed from the style guidelines intentionally, but I think I've decided that the longer names are not so readable. CamelCase I am actively against, though, because I tried it and found it kind of confusing (it was hard to tell which is a type parameter and which is a type).

That said, it's not part of the public API.

(In the sense that it's not a breaking change if we change them later.)

@Kerollmops see https://github.com/nikomatsakis/rayon/issues/249

@cuviper I moved the comments of yours that I did not address in #247 into a list of "unresolved questions" at the top of this issue.

I've got several PRs to rename iterators with symmetry to their sequential counterparts in libstd:
#272 #274 #275 #276
OptionIter is a little weird, as that one iterator implements the 6 variations of Option/Result by value/&/&mut.  If we're mirroring libstd, these should each get their own type, but that's an annoying amount of boilerplate.  Macros might help, but the constraints of each are slightly different enough to make that challenging too.  Maybe we should just bite that bullet as a one time cost, as much as I prefer DRY.
Similarly, in iter::collections we have various IntoParallelIterator which are exposing their underlying implementations, mostly vectorized into vec::IntoIter, and a couple others.  It seems better for the API surface if these also get independent iterator types, wrapping whatever they need underneath, and these could also mirror the layout of std::collections.  But again, lots of boilerplate.

@cuviper could we handle OptionIter with a type alias?

(Not sure if we should mind you)

A type alias is still seen as an identical type, by design, so it doesn't really help IMO.  We'd have multiple aliases to the same thing, which still locks us into that one thing as far as semver goes.
But I have something decent working with macros creating newtype wrappers, hiding all the boilerplate.  I'll try to clean that up for a PR soon.

We'd have multiple aliases to the same thing, which still locks us into that one thing as far as semver goes.

Yes, I was assuming we were ok with that, but just would like the names to be "guessable".

I'd be somewhat ok with OptionIter, but less so with all the collections exposing their implementation.  In solving the latter with newtypes, the former is easy too.

I marked the ReduceOp and ChunksIter question completed.  I started to address MapOp in #284.  Not sure what, if anything, to do about iter::internal -- it seems OK as long as we document its purpose.

Yeah, I'm ok with internal. At most I'd just bikeshed its name, but I can't think of a better one. I feel like it's "for implementors", but impl is a keyword and implementor is too long. =)

MapOp has been gone since #304.
iter::internal became iter::plumbing in #463.

I think we're probably happy with the API at this point, except perhaps addressing #417.


Updated working with React 16 node stream within koa

For some reason, koa ends response before sending all data from React 16 node stream. A similar case described in https://github.com/koajs/koa/issues/944

Oh, thx, I really left a bug there.
I fixed it in the latest version, try it.
Follow the discussion: https://github.com/koajs/koa/issues/944#issuecomment-334960129

In short: I didn't await for the React stream to finish piping before proceeding to next middlewares

Hmm, but you don't use next call in SSR middleware. And your fix is just a workaround to avoid handleResponse call here: https://github.com/koajs/koa/blob/master/lib/application.js#L136
Your fix also works but I think that solution in the PR is cleaner and closer to 'koa way'.
Also, it's not recommended to directly use ctx.res.write:
https://github.com/koajs/koa/blob/master/docs/api/context.md#ctxres
So, the better option will be creating a new stream, write to it before part, then pipe node stream and add after part. And assign this new stream to ctx.body.
I can update it a bit if you want.

Well, from Koa's standpoint your opinion is right – creating a new stream using multistream and then assigning it to Koa's body
import multistream from 'multistream'

return multistream
([
	text_stream(before_content),
	typeof content === 'string' ? text_stream(content) : content,
	text_stream(after_content)
])

...

koa.body = stream


Support for MS2130

There's a new chip by the same vendor that is capable of 4:2:2 YUV HDMI capture over USB3 (and USB2 in MJPEG), the MS2130. Is there any chance of extending ms-tools to support that one too (provided the HID backend has been reused)?
I have a capture device that uses it but it's currently not recogniized by ms-tools.

Hello,
Maybe.
Can you give me remote access to a system with this device plugged in?
What do you see when you run the current code in debug mode?
Sincerely,
Bertold
Op zo 6 nov. 2022 13:59 schreef Mateusz Starzak @.***>:

There's a new chip by the same vendor that is capable of 4:2:2 YUV capture
over USB3, the MS2130. Is there any chance of extending ms-tools to support
that one too (provided the HID backend has been reused)?
I have a capture device that uses it but it's currently not recogniized by
ms-tools.
—
Reply to this email directly, view it on GitHub
https://github.com/BertoldVdb/ms-tools/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQILGPMXEPCLRW45F2B45TWG62TRANCNFSM6AAAAAARYOCMR4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Can you point me to a device with this chip I can buy?
Op zo 6 nov. 2022 14:26 schreef Bertold Van den Bergh <
@.***>:

Hello,
Maybe.
Can you give me remote access to a system with this device plugged in?
What do you see when you run the current code in debug mode?
Sincerely,
Bertold
Op zo 6 nov. 2022 13:59 schreef Mateusz Starzak @.***

:

There's a new chip by the same vendor that is capable of 4:2:2 YUV
capture over USB3, the MS2130. Is there any chance of extending ms-tools to
support that one too (provided the HID backend has been reused)?
I have a capture device that uses it but it's currently not recogniized
by ms-tools.
—
Reply to this email directly, view it on GitHub
https://github.com/BertoldVdb/ms-tools/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQILGPMXEPCLRW45F2B45TWG62TRANCNFSM6AAAAAARYOCMR4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Sure, I can do both :)
https://www.aliexpress.com/item/1005004883158574.html
I'll PM you the access details.

[root@pc-mateusz cli]# ./cli --vid=345f --pid=2130 list-regions --log-level 5
HAL(3): ROMOut:   00b5f8000000000000
HAL(3): ROMIn:    00b5f8000000000000
Failed to create HAL Unsupported device found

I took a look at the firmware in the SPI flash and it seems to have the same debug interface as the other MSxxxx chips. It is extended with many more commands though.

Dumping the rom and writing it back would be a good start. The "open" firmware enables e.g. 4K low-fps capture which the "stock" doesn't have but I'd like to get back to where I started "just in case".

What "open" firmware do you mean? I found these two firmwares:
https://github.com/YuzukiHD/YuzukiLOHCC-PRO/tree/master/Firmware
https://github.com/ultrasemier/ms213x_community/tree/master/firmware
Note that it seems this chip does not use a ROM with the debug interface implementation. It seems possible to flash a firmware that will not allow further flash access. I wonder what the IC will do without valid firmware in the flash.
I bought this dongle, but it will take some time to arrive.

I was referring to the one by YuzukiHD - he mentions the 4K mode on the project page IIRC

I haven't seen the second repo, thanks for the link!

I have received the dongle, I will look at it on Saturday.

Initial support for the MS2130 was added.
Flash IO: (Note that the chip also seems to support a 64kB EEPROM for firmware storage, if this is the case use EEPROM instead of FLASH)
Write: ./cli --log-level=7 write-file --verify FLASH 0 YuzukiLOHCCPro.bin
Read: ./cli --log-level=7 read FLASH 0 --filename=/tmp/flash.bin
Memory regions:
Region       |     Length | Parent (MS2130) RAM          |      65536 | IRAM         |        256 | RAM.0000 EEPROM       |      65536 | USERCONFIG   |         48 | RAM.1FD0 SFR          |        128 | B7_0         |      65536 | B7_1         |      65536 | B9           |        512 | FLASH        |      65536 |
GPIO support should work as well.

Did it work for you?

Yes, works great. Thank you @BertoldVdb!

Perfect, could you email me the original firmware for the dongle (vandenbergh@bertold.org), I accidentally deleted it while implementing the flash access.

Sure! Doing it right now.

original firmware for the dongle (parbzip@sute.jp), I accidentally deleted it while implementing the flash access.


Recipes

First step to implement recipes. Added the method run; to run on virtual machines.
fix #19

No fix for the http status code 207 and only the method run has been implemented; aside to listing, creating etc.


NOW() function

In the version 1.0.2 this worked
$db->insert('table', array('#created_at' => NOW()))
in the version 1.1.1 this does not work, because a query is
INSERT INTO table (#created_at) VALUES(NOW())
Was there any update in the latest version for using mysql functions?
Thanks,
Artem

Yes NOW is not working for INSERT in new version

Same problem with 'UPDATE'.

Check out the new feature raw object https://medoo.in/api/raw.


Parsing mathematical formulas

We may need to integrate combinator parsing with translation.
Specifically, translation does not have a "followed by" method, as it allows for general input.
May be able to extend translation to partially consume input, by regarding the tail as part of the output.

Work is being done by @Ankit-Jaiswal at ParTeX.


FNV-1a hash functions that are more easily extensible to user-defined classes that std::hash

I'm tempted to say that unless a new hash implementations deletes an existing hash implementation, we should not do it.

Also, as Phil points out, we have this functionality already, and, I don't think we have plans on using std::unordered_map anywhere in the critical path (at least I hope not). We really, really have to get out hash story under control.

After further consideration I don't think I have an immediate need for this.  But I don't think it's a duplicate of anything existing.  What's missing from our current stuff is the ability to more easily define FNV-1a hash functions for user-defined classes.
http://www.worldoflongmire.com/features/apes/planet5/PAPERWAD.JPG


Update cache_network_image to 0.8.0

I know this is a recurrent issue, but I'd like to use the latest stable version of this package.

It says:

Because flutter_map 0.5.1 depends on cached_network_image ^0.7.0 and no versions of flutter_map match >0.5.1 <0.6.0, flutter_map ^0.5.1 requires cached_network_image ^0.7.0.

It seems with every new cached_network_image version, we as flutter_map lovers will open up a new issue and wait for the solution:((

I know right?
Wouldn't be easier for all of us just to update the pubspec.yaml file to pick the latest cache_network_image release?

Just a friendly reminder that you can always use dependency_overrides in your pubspec while waiting for flutter_map to upgrade the pubspec. It's also slightly faster when there's a pull request :)

how do we use it? can somebody be polite enough to show it?

@jesusrp98 could you work it out the way John suggested?

something like:
# pubspec.yaml
dependency_overrides:
  cached_network_image: 0.8.0

Already created the #288 pull request.
Pull it if you will, and tell me if anything's wrong :)

Thanks!


DNM: Test prow lint check

Deliberately inject a linting error to make sure https://github.com/openshift/release/pull/12254 works.

/test lint


Release azure-cli-consumption 0.1.1

Reviewers, please verify the following for this PR:

[ ] The PR title has format Release <component-name> <version>.
[ ] setup.py has been modified with the same version as in the PR title.
[ ] HISTORY.rst has been modified with appropriate release notes.
[ ] If releasing azure-cli or azure-cli-core, __version__ defined in __init__.py should also be modified to match.

Started releasing azure-cli-consumption 0.1.1...

Release of 'azure-cli-consumption' with version '0.1.1' successful. View at https://pypi.python.org/pypi/azure-cli-consumption/0.1.1.

GitHub release created. https://github.com/Azure/azure-cli/releases.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #3682   +/-   ##
=======================================
  Coverage   72.23%   72.23%
=======================================
  Files         422      422
  Lines       26357    26357
  Branches     3991     3991
=======================================
  Hits        19040    19040
  Misses       6089     6089
  Partials     1228     1228

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 4233fbc...aab4316. Read the comment docs.


Abstract LLM interfaces and Claude 3 Opus

Claude 3's Opus may have beat OpenAI's GPT-4's models.
I think it would probably be helpful to abstract the interfaces away from just the OpenAI client.
Currently the code seems to be tightly coupled to the OpenAI client, and it's unique features.
Key parts seem to be main.py,  send_chat.py, though I notice model.py does some conditional importing, as does main.py too. base_coder.py also expects a certain completion interface shape, function_call, error classes, statistics and pricing.
Anthropic's client has streaming, but not as a keyword argument.
They have tool use, but not the same function calling interface.
They have system prompts but not a system role.
They can list what models are available too, but again that will be different.
Vision input is possible but probably different too.
The streaming and whole result responses have to be dealt with differently from getting the core result text.
Still with retries being needed.
Side note:
Openrouter is probably good for some, but others have direct access.
Litellm looked promising to me at first (since they seem to offer OpenAI compatible interfaces) but then I found out that they don't convert system messages to system prompts (which causes request errors).
Aider is amazing by the way, thank you!

using aider with LM Studio	models would be great

This is a great idea!
would it be possible to have an "easy to configure" adapter for sending requests to corporate Claude/OpenAi gateways?

For OpenAI gateways you should be able to use existing settings.
Try aider --help to see the available options.

Claude 3 Opus is imo better than ChatGPT 4, nowadays I use it like 80% of the time, and chatgpt only 20%. So this feature would really be cool to have

For what it's worth, litellm seems to be an OpenAI style API wrapper around multiple LLMs, include Claude Opus.
https://github.com/BerriAI/litellm/

For what it's worth, litellm seems to be an OpenAI style API wrapper around multiple LLMs, include Claude Opus.
https://github.com/BerriAI/litellm/

I pointed to them in the original message but I found difficulty with their support for system messages via their proxy, but I might have been using it wrong, as I was just using the OpenAI client. Maybe their client would call it as needed? If their server was a drop in replacement, that would be ideal. I actually had a local branch where I was trying it a bit. Other tricky aspects are function calling / tools (which might need to use XML?), and streaming. If I were working on this, I might try to move all the code that uses OpenAI directly into it's own file so it's isolated, then replace each reliant feature, it's got caching, streaming and function calling to deal with, then there is user configuration setting. I wouldn't want to step on anyone's toes, I prefer not to redo work already in progress, may I ask the status of this? Is there an in progress branch? @paul-gauthier

Good news: LiteLLM added a audio transcription example 3 weeks ago. @paul-gauthier

Aider now uses litellm to connect to many LLM providers.
https://aider.chat/docs/llms.html
I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.


Getting in touch

Hello,
I had the same idea as you and I have created the same build task, however, implemented in PowerShell. It is not yet on the marketplace as I was waiting the legal department from SonaType to give me a go to use their logo and name.
As there may not be the need to have two separate plugins, I would like to suggest a couple of things I already have working and I do find handy.

Support for Nexus v3 API
Support for GAV parameters being loaded from POM file
Specific type of service Endpoint
Multiple file upload

If you are interested in those and in accepting my work, I would try to implement those in TypeScript.

Hi,
Yes, this all sounds great -- completely agree that one plugin would be ideal.  It would definitely be cool if we could include their logo and name.  We certainly will welcome your contributions, and yes please go with the TypeScript implementation so it works on all platforms.
Jason


Clarify license for Z.Expressions.Eval dependency

The XppInterpreter project uses Z.Expressions.Eval as dependency. The dependency is set to version 6.1.4, which has been unlisted. As per https://eval-expression.net/download, that version is no longer available as a free evaluation trial.
According to https://eval-expression.net/overview#is-c-eval-expression-free, "The C# Eval Expression is free up to 50 characters or when using any LINQ Dynamic methods". Not sure if this is the case here.
While trying to build the project, I had some issues with that dependency. Only after updating it to the current version 6.1.10 and removing the explicit restriction to version 6.1.4 I was able to build the project.
It would by good if the Readme could clarify the license requirements for this dependency. I would also propose updating the dependency to a listed version.

Thanks @FH-Inway for bringing this up! The library is used by the MXT debugger to evaluate the DebuggerDisplay attribute expressions of .NET classes. I was not taking into consideration the 50 character limitation and It can certanly be exceeded in some cases, as the expressions passed to the Eval.execute method is whatever is the value of the attribute.
I think It should be possible to use Roslyn scripting but I will need to test it. Otherwise, I'll remove the debugger display expressions evaluation feature as It is only affects a small subset of classes.

I discarted the idea of using Rostlyn scripting, as this generates a memory assembly that stays there forever and if not managed carefully It can cause memory leaks. However, I found a possible solution using ExpressionEvaluator which executes the code on the fly. I tested it with the scenarios in which Z.Expression.Eval would and It works.
It has some limitations but for the purpose of this project, which is purpely to pretty print debug information, I think It's valid. Also it comes with MIT license and It has no dependencies.

That sounds promising. Though I would consider using one of the alternatives listed in the repo, since ExpressionEvaluator does not seem to be actively maintained. Or write your own evaluator, the 4000 lines of ExpressionEvaluator looks manageable and maybe can be trimmed down further for this specific use case.

The problem is that value of DebuggerDisplayAttribute can be literally anything form the source code language (in case of X++ dll's it's C#), so basically we need a kinda "complete" evaluation of the whole C# syntax, sadly I cannot trim ExpressionEvaluator for this reason.
After reviewing the other alternatives in the repo, all of them either compile the code (which we don't want), or are for other programming languages, or are not maintained for years...
Considering that even Roslyn has bugs  related to the evaluation of DebuggerDisplayAttribute expressions, I wouldn't try to break our heads on this.

So... after applying it to the actual project, surprise! Is slow... very slow... ~0.8s second for complex evaluations, considering that the evaluation happens 2 times for every local variable each times a breakpoint is hit is BAD.
What I did is remove the dependency and replace it with a workaround for the most clear case which is the X++ array (expression was Size = {Size} si that was easy.


Ability to specify High contrast mode for a card in Host Options

@riarenas can you elaborate on this one? Not sure I follow the ask, or what change would be necessary in host config. Also I assume this is necessary for v1? If so, please feel free to add the v1 milestone

This was an issue that came out for Timeline. They wanted some way to be able to specify a whole arrange of settings for High contrast mode in HostConfig.

I wonder if just swapping host configs would be the way to go. Having a whole set of options for high contrast mode could bloat the HostConfig JSON payload.

@riarenas Yes swapping HostConfig is the solution :) It'll cover 95% of your needs. Areas that are not covered by HostConfig are buttons (although that's controlled by the host, so I don't think it's a problem) and images - how would a card author provide high-contrast versions of the images they use?

Decided that swapping host configs when the host detects the contrast mode change is the way to go.


Unhandled Exception

Basically i setup Min Ed according to the provided instructions, im using epic games, but instead of epic client I'm using legendary cuz that's way faster for my slow pc but when i confirmed that I'm fully setup and tried to run with legendary it works...
It detects my platform
Logs me in
Then checks for update and throws a error which i can't seem to resolve
Error:
[
Unhandled exception. System.MissingMethodException: Arg_MissingMethodException
at EosIF.LogHelper.Log(String Message)
at EosIF.EosInterface.Finalize()
]
I checked the min-ed launcher.log and last thing is can't find product "COMBAT_TRAINING_DEMO" disabling...

Can you check the CI build and verify this is fixed?

Thank you @rfvgyhn, using the CI build worked but still the normal release doesnt work does this mean that i have to use CI builds? Thanks

Yeah, for now. I'll make a new release soon that will include several fixes.


Subclassing Window throws an error

Hi All,
Why it's possible to subclass Drawer but not FloatingWindow? If I try to subclass the latter, I can't add any new methods. Consider the following for an example:
import vanilla

class test(vanilla.Drawer):

	def testMethod(self, arg1, arg2):
	    pass

class test(vanilla.FloatingWindow):

	def testMethod(self, arg1, arg2):
	    pass

I get this error for the FloatingWindow subclass:
Traceback (most recent call last):
  File "<untitled>", line 8, in <module>
objc.BadPrototypeError: Objective-C expects 1 arguments, Python argument has 3 arguments for <unbound selector testMethod of test at 0x115621880>

A Drawer is a python object and a FloatingWindow is a NSObject...
it is possible to subclass a FloatinWindow but with some constrains:

method names must have _ underscore for each argument, so in your case: def testMethodForArg1_arg1_(self, arg1, arg2):
you can only have one class declaration with the same name, during the same runtime. Best practise is to organise your nsObject subclasses in modules and import them, so there are registered only once.

good luck!!

Or you use the objc.python_method decorator:
import objc
import vanilla

class test(vanilla.FloatingWindow):

    @objc.python_method
    def testMethod(self, arg1, arg2):
        pass

When subclassing NSObject (which indeed you are here) be aware that it's good practice to use a prefix to make it more likely your classname is globally unique. Eg. XYZFloatingWindowSublass. This is because ObjC classes are global: you can't have two classes named "test" for example, not even in different modules.
While you're at it, you may need the ClassNameIncrementer metaclass while developing, but I forgot where it lives in RoboFont (perhaps it should be added to vanilla).

ClassNameIncrementer lives in lib.tools.debugTools

+1 to move this to vanilla, but I dont know where yet...
and for now vanilla itself is using python_method from vanilla.py23 which is not the best option

Thank you so much for all your help! ( ͡° ͜ʖ ͡°)


Do not rely on scope

It should be possible to use it without ever using scope. It can use it internally, but it should not rely on scope in the future. Angular 2 has no scope.

Sounds great to me

@bevacqua thats also why I store all related data in service in dragular. Providing scope is optional, only for that cases when events want to be fired on provided scope.

+1


Update the game over message

Update the game over message so people know how to play again!

Confirmed

Confirmed


Add support of std::array to hpx::util::tuple_size and tuple_element

Didn't run the test suite on it yet, let's see how it goes.

I was asking myself whether we still need HPX_HAVE_CXX11_STD_ARRAY, since it should be theoretically supported on all required platforms.

I'd suggest we mark support for std::array as required in cmake (which will in turn no longer emit the HAVE macro), and drop support for boost::array in the process.

@K-ballo do you prefer the changes you mentioned above over this PR, or can those be applied after this PR was merged?

@K-ballo do you prefer the changes you mentioned above over this PR, or can those be applied after this PR was merged?

@Naios I don't particularly care in which way the changes make it into master, as long as they do.

@K-ballo I will take care about this later during my GSoC project, it would be good, if we could merge this PR meanwhile, because it's required by #2687.


Replace bou.ke/monkey

bou.ke/monkey doesn't have a proper license.
I can't tell if this should be funny or not.
I do not give anyone permissions to use this tool for any purpose. Don't use it.

In any way this is a blocker for packaging tidot as RPM. A Fedora package should run checks during the build process and in the current we will not be able to include bou.ke/monkey which is a dependency for tidot.
Please consider to replace bou.ke/monkey with something which has a license. Thanks.

thanks for noticing the license issue, all test code that use bou.ke/monkey have been removed from master branch.

Thank you for taking care about this.


Add Milvus

Just a draft
add milvus support for #154
avoid deep clone the instance #535

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I think I will probably put this on hold first as this will cause streaming not to work

managed to solve this, new PR here


No way to task find only using the GUI

There is no way to use keyword search in the GUI, unlike the other kinds of TaskFilters.

I think this is fine, a typical GUI search is with a separate search text field anyways, which isnt very different from a CLI command


help: how to add a custom sound for iOS in an expo managed project

Hi, I am using expo managed project and am unable to get custom sounds to work on iOS (havent tested on android). I have a .wav file placed in my project directory in the assets folder. How would I access this file and use it as a notification file? I dont have a android or ios folder since it is a managed project

hey, ah interesting problem! 🤔 I personally only have used notifee in a stripped-back react-native app so I'm not sure I can help. I'd recommend looking through the expo docs or creating an issue on their repo. Hopefully, someone with more expo experience will know.
But from what I do know, I'd believe you run expo prebuild. and you should have an iOS folder where you can add the custom sound (ref: https://docs.expo.dev/introduction/managed-vs-bare/#what-happens-if-i-run-up-against-a-limitation)

After digging online and looking for some answers, I found a temporary workaround that doesn’t involve “ejecting” from expo or prebuilding. It involves using another library called expo-notifications and following their app.json setup for adding custom sounds through a plugin. Given that setup, you can use that custom sound through the notifee API as well. Its only a workaround and not an actual solution. Given that expo-notifications does have a solution to build the notification files in a managed project, im hoping this library can add a similar solution.

@noman-ahmad thanks for the info and the details. That's interesting but definitely won't be a priority for us in the near future to fix this as I hope you can understand for a open source library. Happy to take a p/r if you or anyone has some time to come up with a solution


Fix Android autolink plugin for libraries that are platform specific

Summary:
Fixes https://github.com/facebook/react-native/issues/45222
Changelog:
[ANDROID] [FIXED] - Fix autolink plugin for libraries that are platform-specific
Test Plan:
And a library that does not have Android native code such as @react-native-segmented-control/segmented-control and sync gradle

/rebase

Great fix @gabrieldonadel
I've actually included tests + used a .filter{} in your solution as it's a bit more idiomatic. You'll see it once it lands.

Pick request is here: https://github.com/reactwg/react-native-releases/issues/351


Video stuck on first frame

[x] I have verified there are no duplicate active or recent bugs, questions, or requests
[x] I have verified that I am using the latest version of Easy Video Player.
[x] I have given my issue a non-generic title.
[x] I have read over the documentation (before asking questions on how to do something).

Include the following:

Easy Video Player version: 0.2.10
Device OS version: 6.0.1 (CM 13)
Device Manufacturer: HTC
Device Name: One m8

Also, please wrap Java with correct syntax highlighting.
no exception
Reproduction Steps

My project has compileSdkVersion 23 and minSdkVersion of 16 and targetSdkVersion of 22. The player is inside a LinearLayout and following is the code:

<com.afollestad.easyvideoplayer.EasyVideoPlayer
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/my_video_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            app:evp_autoFullscreen="true"
            app:evp_disableControls="true"
            app:evp_hideControlsOnPlay="true"
            android:gravity="center"/>

Now, programmatically I am setting the source to a local mp4 file via

this.myVideoView.setSource(Uri.parse(localVideoPath));

Upon onPrepared callback, I do following

this.myVideoView.start();
At this point no exception/error is thrown
Expected Result
Video plays
Actual Result
Video gets stuck on the first frame and doesn't play

same here

@saadnawaz1 how are you setting your localVideoPath?

I haven't experienced this, and there have been a few newer releases, so I'm going to assume this no longer happens.

Issue reproduced video stutters and stuck on frame from url


Allow custom config for docker daemon

This will allow users to customize their docker daemon, by passing --docker-config-json=<json contents of docker config file> through the BootstrapArguments parameter in the worker node cloudformation template - https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-nodegroup.yaml.
/cc @micahhausler

Another option to perhaps consider would be to merge the user-provided JSON with the default. This would have the benefit of automatically getting all the updates of the default JSON from subsequent AMI versions.
We currently use the following snippet to merge these.
# Apply our Docker conf, merging with existing
{
cat /etc/docker/daemon.json
cat << EOF
  {
    "default-ulimits": {
      "nofile": {
        "Name": "nofile",
        "Soft": 1048576,
        "Hard": 1048576
      }
    },
    "mtu": 8951,
    "log-opts": {
      "max-size": "50m",
      "max-file": "3"
    }
  }
EOF
} | jq -s '.[0] * .[1]' > /tmp/docker-daemon.json
mv /tmp/docker-daemon.json /etc/docker/daemon.json
chown root:root /etc/docker/daemon.json

# Restart Docker for conf to take effect
systemctl daemon-reload
systemctl restart docker


Acquire  chromium depot tools

This is a requirement to build chromium  libraries i.e angle and skia

@atkawa7,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

It's really unfortunate that there isn't a stable download for the chromium depot tools 😦.
You should probably add a check for the ERROR_CODE in the download -- cmake doesn't stop the build on a failed download by default. Take a look at vcpkg_download_distfile[1] for an example on how to do that.
It would probably also be good to respond to the _VCPKG_NO_DOWNLOADS internal variable.
[1] https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_download_distfile.cmake#L68-L78

@ras0219-msft

It's really unfortunate that there isn't a stable download for the chromium depot tools .
True

LGTM, thanks!


demo.py error message ' no module named torch._tensor'

thanks for sharing your work.
How to fix this error.
`(base) root@song-HP-Z1-Entry-Tower-G6:/song/work/tmp/cpp_tmp/vision/deep_learning/omniglue# python demo.py /song/work/tmp/python_tmp/reconstruction/data/real/20240923/images/mono_113026.png /song/work/tmp/python_tmp/reconstruction/data/real/20240923/images/mono_113053.png
2024-09-23 07:51:33.056630: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-09-23 07:51:33.597991: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT

Loading images...
Loading OmniGlue (and its submodules: SuperPoint & DINOv2)...
2024-09-23 07:51:34.552852: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:995] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355
2024-09-23 07:51:34.553174: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1960] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
WARNING:tensorflow:From /song/work/tmp/cpp_tmp/vision/deep_learning/omniglue/src/omniglue/superpoint_extract.py:40: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.saved_model.load instead.
2024-09-23 07:51:46.244197: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:375] MLIR V1 optimization pass is not enabled
Traceback (most recent call last):
File "demo.py", line 95, in
main(sys.argv)
File "demo.py", line 46, in main
og = omniglue.OmniGlue(
File "/song/work/tmp/cpp_tmp/vision/deep_learning/omniglue/src/omniglue/omniglue_extract.py", line 42, in init
self.dino_extract = dino_extract.DINOExtract(dino_export, feature_layer=1)
File "/song/work/tmp/cpp_tmp/vision/deep_learning/omniglue/src/omniglue/dino_extract.py", line 32, in init
state_dict_raw = torch.load(cpt_path, map_location='cpu')
File "/opt/conda/lib/python3.8/site-packages/torch/serialization.py", line 594, in load
return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
File "/opt/conda/lib/python3.8/site-packages/torch/serialization.py", line 853, in _load
result = unpickler.load()
ModuleNotFoundError: No module named 'torch._tensor'`

bug can be fixed by installing python 3.10 first,  and then intalling this repo.


Separate cache/pool container in requestCachedConnection.

Related PR
Currently Container.requestCachedConnection uses single container to resolve DatabaseConnectionCache/DatabaseConnectionPool.
As I mentioned in #43, DatabaseConnectionCache shouldn't be shared among different requests.
So I changed to use privateContainer in this PR
BTW, using privateContainer also isolates DatabaseConnectionPool. And the server will crash when connection number reaches the upper bound.
So we need two different containers to resolve DatabaseConnectionCache/DatabaseConnectionPool respectively. In this PR I added the second argument for requestCachedConnection.
There are original requestCachedConnection(to database: DatabaseIdentifier<Database>) left for backward compatibility. There are two methods using this, here and here . But the former looks it is creating DatabaseConnectionPool every time when different container is passed, and the latter is what I'll change in another PR. So it should be deleted.

Hey @t-ae, you just merged a pull request, have a coin!
You now have 2 coins.


GH-15050: [Java][Docs] Update and consolidate Memory documentation

Closes: #15050

@lidavidm Would you take a look when you have time? Thanks very much.

ok. let me give that a try
On Tue, Dec 20, 2022 at 1:47 PM David Li @.***> wrote:

@.**** approved this pull request.
This is great. Thanks for reworking the docs!
In docs/source/java/memory.rst
https://github.com/apache/arrow/pull/15051#discussion_r1053641396:

+.. raw:: html

AllocationManager

|

|-- UnsignedDirectLittleEndian (One per AllocationManager)

|

|-+ BufferLedger 1 ==> Allocator A (owning)

| ` - ArrowBuf 1

|-+ BufferLedger 2 ==> Allocator B (non-owning)

| ` - ArrowBuf 2

|-+ BufferLedger 3 ==> Allocator C (non-owning)

| - ArrowBuf 3

| - ArrowBuf 4

` - ArrowBuf 5

nit: I think you can use .. code-block:: none and remove the  tags.
(Not that I expect anyone to render the docs to anything but HTML…)
—
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow/pull/15051#pullrequestreview-1224977869,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2FPASK3H4TZBRF4BBQOUTWOH5M7ANCNFSM6AAAAAATEWX5ZI
.
You are receiving this because you authored the thread.Message ID:
@.***>

I made the formatting fix so this should be set when the tests complete. Thank you for your review.


Slow initialization of basepointTable in scalarBaseMult

Hey there! I've noticed that the scalarBaseMult function is quite slow when it's called for the first time. After some digging, I found that the culprit seems to be the initialization of the basepointTable variable in the basepointTablePrecomp class.
The constructor of basepointTablePrecomp precomputes a table of affine points, which is a one-time operation (as per the comment // Only initializing the table once). However, the line table[i].fromP3(p); inside the constructor's loop is particularly sluggish during the first call to scalarBaseMult. Subsequent calls are much snappier since basepointTable is already initialized.
I tried to work around this by calling KeyPair.sr25519.fromMnemonic(...) in the background during app startup, hoping to trigger the initialization early. Unfortunately, basepointTable still freezes the UI until it finishes initializing. I even tried running it in an isolate, but that didn't help since the initialization is isolate-specific.
So, I was wondering: would it be possible to lazily initialize basepointTable or perform the precomputation in the background to avoid blocking the first execution of scalarBaseMult? I'm open to any suggestions or ideas you might have!
Anyway, thank you very much for this Dart implementation. Polkadart rocks!
Let me know what you think. Cheers!

@poka-IT Sorry for the late response, I can try to give a async initialization for basepointTablePrecomp.
Then, You will be able to call await basepointTablePrecomp.getInstance() which sets the _instance to singleton for next future calls and the initialization would have been done already.


⚠ PrivateHD has degraded performance

In e063b4a, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2676 ms

Resolved: PrivateHD performance has improved in 7d314df.


Azure Data Tables: Batch processing throwing ResourceNotFound on aio libraries

azure.data.tables.aio (azure-data-tables):
12.0.0b4:
Linux/Ubuntu:
3.8:

Describe the bug
Batch processing fails throwing a ResourceNotFoundError
To Reproduce

run the attached unittest. Python version seems to be unimportant but i have not tried in 3.9.

Expected behavior
3 rows should appear in the target datatable
test_ms.zip

Thanks for the report @verikono! We'll investigate ASAP :)
@seankane-msft - could you please take a look?

Thanks for reporting this @verikono ! Currently, the batch operations cannot be done with SAS credentials. I am working on a fix for this, in the meantime if you need a work around you can use authentication with a key and batching operations should work fine. I will update this issue with more information.

Good news update, I was able to get a solution to your problem with #17133 . In short you'll need to wrap the token with AzureSasCredential class and that should solve your problem. This release will go out Tuesday morning and be available for download from pypi. Let me know if you have any further questions!

Thanks Sean!
My manager is literally bewildered that we got a response and solution so fast - amazing! :)

Thanks @seankane-msft !


June 2017 refresh

@edupont04,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


uwu

tell me if i got anything wrong or if there is something added you would like :)

Could it rename it to Fibonacci_rec.py as recursion without memoization is not the most elegant approach to calculate Fibonacci numbers.


add "server/workspace up/down" commands for consistency

this mirrors "channel up/down" from the same file, and mirrors the more common "noun verb" order in commands

good idea to keep them consistent. fine by me. Should we deprecate the other two?

not sure if it's worth the trouble. don't know what the general stance on deprecation is in the community repo. i see the deprecate_notify function but no uses of it.
should we merge this already and create an issue for the deprecation decision of the two commands that are "backwards"?

you want to search for user.deprecate_command use instead.
I believe the stance is to always do it, see https://github.com/talonhub/community/commit/54ce69d2fb6ba1ed44759a14daad9ceef933323c for a recent one.
I'm fine with merging this if you prefer to do a separate PR for deprecation. if you don't want to do it, let me know and I'll throw one together. I agree it's a bit of a hassle, but we don't have any visibility into how many people even use community afaik, and the agreement was that we slowly deprecate stuff, so still seems worth to be on the safe side.


Increase BPMN validation output

Currently, JITBPMNServiceImpl validation returns the following errors:

"unparsable" errors (catched exception)
"no process found"
any other "ProcessValidation" error specific of BPMN

As for the latter, they are gathered from RuleFlowProcessValidator.validateProcess(Process)
This returns errors about missing nodes/edges, or others, but not other details, like "user task has no assignee" or "process variable has no type"

After brief chat, it seems that RuleFlowProcessValidator.validateProcess(Process) is the only method available. If other validation are needed, they have to be implemented there.

This repository contains few business process that will serve for discussing the current validation. If the current validation results are OK or needs to be adjusted.
https://github.com/jomarko/kie-sandbox-process-validation-demo/tree/main/processes
ad-hoc-subprocess
Contains ad hoc subprocess. If I remember correctly such, suprocess do not need to have a start or end node (outside of subprocess), but validation reports different. Could someone recheck what specification says?

catch-nowhere
Intermediate catch event should be connected with some nodes. Not put randomly on canvas. Validation report message could be improved somehow.

invalid-expression-2
condition on edge contain invalid java expression ttrue, but no problem reported fromvalidation
invalid-expression
condition on edge refer to non existing variable, but no problem reported from validation
lane-with-annotation
validation reports some non human understandable error, even more, I am not sure what is wrong on that process

missing-actor
there is user task without assigned actor or group, is it ok? is there some default behaviour during execution that such task can be assigned to anyone?
missing-error
error event do not specify error. is there some default behavior that all errors are assumed in similar case?
missing-process-variable-type
process variable has no type defined, no problem reported from validation
missing-process-variable
in the task assignments of the business rule task, we assign 'Result' to '[nothing]', maybe valid from spec point of view, but doesn't make much sense I think
missing-signal
signal event do not specify signal. is there some default behavior that all signals are assumed in similar case?


Missing DocumentType field?

I am using a esUtil in v8 version and I notice that there is no DocumentType field in BulkIndexerItem while a v6 version has. Please tell me how to specify the "type" value in a v8 version esUtil when using BulkIndexer？

Hello — the mapping types has been deprecated since Elasticsearch version 7.x, so the v8 version doesn't provide support for it across the API, including the bulk indexer.

Hello — the mapping types has been deprecated since Elasticsearch version 7.x, so the v8 version doesn't provide support for it across the API, including the bulk indexer.

Get, Thanks.


Source panner lane allocation and movement detection broken due to Bitset.get() miscomparison

Hi,
Not sure if this just hasn't been implemented yet or not, but using synthizer.PannedSource is silent.
Code to test:
``python
from time import sleep
from synthizer import Context, initialized, BufferGenerator, Buffer, PannedSource, DirectSource
with initialized():
c = Context()
b = Buffer.from_stream('file', 'sound.wav')
s = PannedSource(c)
d = DirectSource(c)
g = BufferGenerator(c)
g.buffer = b
g.looping = True
s.add_generator(g)
sleep(5)

If you change the source you're adding the generator to it works.

I feel like we've spoken about this before, so sorry if I'm rehashing old ground. I did search the issues, and my emails first.

In case you need it, you can download the sound I used [here](https://www.dropbox.com/t/00ICZ8WVvCc4wi43).

No, it's probably not old ground.  And it should be implemented as well.  I've been refactoring the guts of those for a bit now, and I suspect that I just missed something when doing that.  I'll get back to you on this.

That's OK no worries.
Thanks for the info.
Take care,
Chris Norman
On Thu, 5 Nov 2020 at 16:04, Austin Hicks<EMAIL_ADDRESS>wrote:

No, it's probably not old ground. And it should be implemented as well.
I've been refactoring the guts of those for a bit now, and I suspect that I
just missed something when doing that. I'll get back to you on this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/synthizer/synthizer/issues/16#issuecomment-722471621,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUZ2NS5DFQE4S7SH4C2GLSOLEIPANCNFSM4TI4WGIQ
.

This is now marked as closed because GitHub doesn't have a "maybe fixes" keyword or anything, but if that's not actually the case, let me know.  Release 0.7.5 is running through CI now.  You're one of the people actively using this though, so if you could take the time to drop it into one of your projects and tell me if the release overall explodes or who knows what else, that'd be great.
The detailed technical explanation of what happened here:

Source3D didn't properly call the superclass, which meant that PannedSource wouldn't initialize the panner lane.
PannedSource, if it did initialize properly, didn't flip a boolean to tell itself that it did initialize properly.
Therefore, going through Source3D would always assign it to lane 0, but going through pannedSource would assign it to lane 1, because it would think that the panning strategy changed.
Bitsets .get method then had a comparison to determine if a bit in the bitset was set, which only worked for bits at multiples of 8.
HrtfPanner uses that for change tracking, to tell if it should recompute the HRIR, which starts out as a zero-initialized array. But it claims that nothing changed, so the HRIR stays as a zero-initialized array.
Then we convolve audio with that arrray, handily outputting zero.

Unfortunately fixing the bitset probably introduces other weirdness as well as fixing other as-yet-unfound bugs, so we'll see what happens I suppose.

Thanks for affecting a fix so quickly.
So I've tested it, and it's working, but how do the numbers work?
I seem to have a range from 0 to 360, but I'm unclear as to what the
numbers do.  suspect that's more my lack of maths than your code though, so
if it's just a google away, please let me know.
Take care,
Chris Norman
On Fri, 6 Nov 2020 at 21:50, Austin Hicks<EMAIL_ADDRESS>wrote:

This is now marked as closed because GitHub doesn't have a "maybe fixes"
keyword or anything, but if that's not actually the case, let me know.
Release 0.7.5 is running through CI now. You're one of the people actively
using this though, so if you could take the time to drop it into one of
your projects and tell me if the release overall explodes or who knows what
else, that'd be great.
The detailed technical explanation of what happened here:

Source3D didn't properly call the superclass, which meant that
PannedSource wouldn't initialize the panner lane.
PannedSource, if it did initialize properly, didn't flip a boolean
to tell itself that it did initialize properly.
Therefore, going through Source3D would always assign it to lane 0,
but going through pannedSource would assign it to lane 1, because it would
think that the panning strategy changed.
Bitsets .get method then had a comparison to determine if a bit in
the bitset was set, which only worked for bits at multiples of 8.
HrtfPanner uses that for change tracking, to tell if it should
recompute the HRIR, which starts out as a zero-initialized array. But it
claims that nothing changed, so the HRIR stays as a zero-initialized array.
Then we convolve audio with that arrray, handily outputting zero.

Unfortunately fixing the bitset probably introduces other weirdness as
well as fixing other as-yet-unfound bugs, so we'll see what happens I
suppose.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/synthizer/synthizer/issues/16#issuecomment-723315518,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUZ2MSEXLBSHDJNR6JL5DSORVRTANCNFSM4TI4WGIQ
.

You probably want to use panning_scalar if you want to just be able to set it to left or right (in that case -1 is left, 1 is right).
The angles match up with the HRTF dataset.  I thought I documented the coordinate system somewhere, but basically 0 is straight ahead, 90 is right, 180 is back, 270 is left.  But panning_scalar is probably easier for most use cases where you aren't driving a Source3d.

OK, that works great.
Only slight bug: When you first create a PannedSource instance,
panning_scalar is set to 05, rather than 0.
Other than that, works perfectly. Thank you.
Take care,
Chris Norman
On Sun, 8 Nov 2020 at 15:26, Austin Hicks<EMAIL_ADDRESS>wrote:

You probably want to use panning_scalar if you want to just be able to set
it to left or right (in that case -1 is left, 1 is right).
The angles match up with the HRTF dataset. I thought I documented the
coordinate system somewhere, but basically 0 is straight ahead, 90 is
right, 180 is back, 270 is left. But panning_scalar is probably easier for
most use cases where you aren't driving a Source3d.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/synthizer/synthizer/issues/16#issuecomment-723592699,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUZ2LART677FNC6E467P3SO22BZANCNFSM4TI4WGIQ
.


feat: create triggers

This PR adds a method to create apex triggers, imitating the ones we have for classes, aura and lwc. It uses the new buildAsTable method to create it using vim.system instead of vim.fn.jobstart. It also creates util methods for calling vim.system the same way we can now generically call vim.fn.jobstart, so we can start using those to move methods from the old vimscript to the new method. (Once this merges, I'll move pull_log to use these new util methods, but didn't want to pile into a single PR)
Finally, it adds the new command to init and creates a user command for it

Excellent, thanks @FedeAbella !


How about a distributed autokeras that is compatible with Google CoLab?

How about a distributed autokeras that is compatible with Google CoLab?
Feature Description
I would like to use the hopeful distributed autokeras with the GPU and TPU runtime without doing major surgery to the code.  If that is impossible in the near future, I can go ahead and do it myself.
Reason
It would be useful to accelerate the computation.
Solution
Make it happen.
Alternative Solutions
Slow and serial search.
Additional Context
The tdqm library doesn't work on Google CoLab.  I changed it to the pyprind for compatibility with the Google Colab.  You can check it out at the following URL: https://github.com/shyamalschandra/autokeras
Thank you!

Hi @shyamalschandra , thank you for the suggestion. There are two things I would like to discuss with you before we start.

You mentioned that tdqm doesn't work on Google CoLab and you use pyprind to address the issue. I would prefer to change from

from tqdm.autonotebook import tqdm

to
from tqdm import tqdm

which can also resolve the issue without having to change the dependency.
I'll open up another issue for this problem.

Could you please explain how you are going to make Autokeras run distributely?
Providing some code snippets will be very helpful.

Thanks a lot!


Syntax highlighting inconstant within @if tags after latest Atom update.

Hey there,
I recently updated my Atom and noticed that the highlighting was kind out of whack. You can see the issue in the photo. The main problem is inside of razer if statements, especially nested ones.

Yes I too have noticed this issue since the latest Atom update. Up to now this was a terrific package, and even if it can't be fixed, thanks for building it.


1.8.8 release

1.8.7 did not fix the "unknown" geometry type bug it purported to fix, so we're having a 1.8.8 release to do that.

Done: https://pypi.org/project/Fiona/1.8.8/#files.


feat: add codecov upload step to CI

adds a step to upload a go test coverage report to codecov

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (main@eec9524). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #20   +/-   ##
=======================================
  Coverage        ?   62.14%
=======================================
  Files           ?       10
  Lines           ?      531
  Branches        ?        0
=======================================
  Hits            ?      330
  Misses          ?      165
  Partials        ?       36

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


Parser: automatically display the default value in the help

Justification:
We are currently adding manually the default value for each argument in the "description" entry, see example.
To automatically display this value in the help would reduce the maintenance load and reduce the developer errors.
Also, it would fill the gaps where default values are not displayed in the help, see example.
Describe the solution you'd like
ArgumentDefaultHelpFormatter could be a good solution. As recommended here.

I think this one is pretty simple. https://github.com/neuropoly/spinalcordtoolbox/blob/master/spinalcordtoolbox/utils.py#L68, switch

class SmartFormatter(argparse.HelpFormatter):

to
class SmartFormatter(argparse.ArgumentDefaultsHelpFormatter):

Worked in a few cases that I checked. It somewhat irritatingly adds (default: None) everywhere without a default even when that doesn't really make sense (e.g. a required arg). But it can probably be fixed.

It somewhat irritatingly adds (default: None) everywhere without a default even when that doesn't really make sense (e.g. a required arg)

I believe the reason that default: None shows up for our required args is because we use keyword args for everything, so our required args are still quote-unquote OPTIONAL, see below. (This came up before in a different context, as well!)
# argparse.py

class ArgumentDefaultsHelpFormatter(HelpFormatter):
    """Help message formatter which adds default values to argument help.

    Only the name of this class is considered a public API. All the methods
    provided by the class are considered an implementation detail.
    """

    def _get_help_string(self, action):
        help = action.help
        if '%(default)' not in action.help:
            if action.default is not SUPPRESS:
                defaulting_nargs = [OPTIONAL, ZERO_OR_MORE]
                if action.option_strings or action.nargs in defaulting_nargs:
                    help += ' (default: %(default)s)'
        return help

Because the only thing that argparse.ArgumentsDefaultHelpFormatter does is modify _get_help_string, it seems simple enough to come up with a tidy tweak for this for our purposes. I'll start on this now.


Lag/stalls when filtering tree on macOS

Description
I see a long (30-60+ second?) UI lockup when the filter in the Symbol Tree is short, eg a single character or a couple (I test with "m" or "ma"). After this delay, the tree is filtered as expected. With the filter entered, renaming a label will cause the same sort of lag to appear.
I also notice:

"Unexpected error processing job: GTreeFilterTask" in the main window
"Expanding nodes..." progress bar stalls
This only seems to happen when searching the first couple of characters - after this, the filter is responsive.

I initially thought that this was a Ghidra bug, but when I was filling out the bug report I realised that with this extension disabled, the issue went away.
I only see this issue on macOS, it works perfectly on Windows.
To Reproduce

Open Code Browser with a reasonably large executable. (This can be seen both in an executable that does and doesn't use EE, as long as this plugin is enabled)
Click on "Filter" box
Type any single letter or short sequence, eg "m" or "ma"
Observe that the UI stalls for 30-60 seconds and that the below error appears in the log
Rename a label
Observe that the UI again stalls until a timeout is hit

Environment

OS: macOS Sonoma 14.1.2
Java Version: openjdk 21.0.1 2023-10-17
Ghidra Version: 11.0
Ghidra Origin: installed from brew package manager
Extensions: ghidra-emotionengine-reloaded - v2.1.12

Log
2023-12-30 | 19:09:07 | ERROR | (Swing) Timed-out waiting to run a Swing task--potential deadlock!
-- | -- | -- | --
  |   |   | Threads State:
  |   |   | java.lang.Throwable
2023-12-30 | 19:09:07 | ERROR | (AbstractWorker) Unexpected error processing job: GTreeFilterTask java.lang.RuntimeException: Timed-out waiting to run a Swing task--potential deadlock!
  |   |   | at ghidra.util.Swing.runNow(Swing.java:177)
  |   |   | at docking.widgets.tree.GTreeTask.runOnSwingThread(GTreeTask.java:45)
  |   |   | at docking.widgets.tree.tasks.GTreeExpandAllTask.expandPath(GTreeExpandAllTask.java:90)
  |   |   | at docking.widgets.tree.tasks.GTreeExpandAllTask.expandNode(GTreeExpandAllTask.java:80)
  |   |   | at docking.widgets.tree.tasks.GTreeExpandAllTask.expandNode(GTreeExpandAllTask.java:84)
  |   |   | at docking.widgets.tree.tasks.GTreeExpandAllTask.expandNode(GTreeExpandAllTask.java:84)
  |   |   | at docking.widgets.tree.tasks.GTreeExpandAllTask.run(GTreeExpandAllTask.java:45)
  |   |   | at docking.widgets.tree.GTreeFilterTask.expandInSameTask(GTreeFilterTask.java:77)
  |   |   | at docking.widgets.tree.GTreeFilterTask.run(GTreeFilterTask.java:58)
  |   |   | at ghidra.util.worker.AbstractWorker$JobCallback.process(AbstractWorker.java:133)
  |   |   | at ghidra.util.worker.AbstractWorker$JobCallback.process(AbstractWorker.java:123)
  |   |   | at generic.concurrent.ConcurrentQ$CallbackCallable.call(ConcurrentQ.java:658)
  |   |   | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
  |   |   | at generic.concurrent.FutureTaskMonitor.run(FutureTaskMonitor.java:76)
  |   |   | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
  |   |   | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
  |   |   | at java.base/java.lang.Thread.run(Thread.java:1583)
  |   |   | Caused by: ghidra.util.exception.UnableToSwingException: Timed-out waiting for Swing thread lock in 20 SECONDS
  |   |   | at ghidra.util.Swing.waitFor(Swing.java:256)
  |   |   | at ghidra.util.Swing.runNow(Swing.java:235)
  |   |   | at ghidra.util.Swing.runNow(Swing.java:163)

I should've probably posted this when you first filed the bug, but the reason I haven't responded is because I don't have any idea how to fix this. I'll keep this open in case anyone else has the same issue, or in case someone finds a solution.


Remote Filesystem Support (Request)

Is your feature request related to a problem? Please describe.
As of current, there are quite a few different local file system browser plugins for Neovim. There is really only 1 remote filesystem browser and that is the built in NetRW. NetRW has its flaws, namely being its counterintuitive approach to navigating files (It is core vim).
Telescope File Browser is an amazing telescope plugin, and I feel it could move even further ahead of other filesystem plugins by integrating ssh support.
Describe the solution you'd like
In a perfect world, we would be able to open a remote filesystem via neovim directly (which would use netrw) and then browse/manage said filesystem via the telescope-file-browser plugin
Describe alternatives you've considered
NetRW, as described above, is the only one that I am familiar with that supports remote file systems. It is... not amazing, though it is currently the only tool for the job.
Distant.nvim is another alternative, though I haven't played with it much as it depends on distant being installed on the remote client and that is not always an option (I am adverse to installing IDE dependencies on production machines)

As cool as that feature would be, it sounds largely out of scope of the project, or otherwise put, sad to say I'm not the right person for the job.
I've never used netrw (isn't it unbearably slow?) for that matter and on the few ssh connections I maintain every once in a while synchronize my dotfiles.
What would be a way to support this feature it the lightest way possible?

In a perfect world, we would be able to open a remote filesystem via neovim directly (which would use netrw) and then browse/manage said filesystem via the telescope-file-browser plugin

That would be nice indeed.

I'm not terribly familiar with lua (or neovim development) but I was able to get a (very) jank finder in place as a sort of POC to show it is possible. Below is the (awful) lua code I used. I am going to poke around a bit with this this weekend and see if I can
a) Make it actually usable (it appears I am going to have to poke around with NetRW global variables and path reading)
b) Clean it up so it doesn't look awful.
There are also some design questions that should be asked. Namely

How do you/we/the user want to designate they are searching a remote filesystem? The reason the nvim-telescope plugin doesn't currently work for remote filesystems is because it uses the Plenary Path tool which is designed explicitly for local file systems. On that note, if a user opens the nvim-telescope extension, should the decision to examine a remote filesystem be based on the "cwd" (which vim doesn't track if you are remote) or the current file they are in? Or should it be its own finder altogether (my recommendation).

Some jank lua code as a POC
local pickers = require("telescope.pickers")
local finders = require("telescope.finders")
local conf····= require("telescope.config").values
local sys·····= require("plenary.job")

--- TESTED AND WORKS

local user = ""
local host = ""
local remote_args = { "" .. user .. "@" .. host, "ls","/tmp" }

local get_remote_files = function()
    local job = sys:new({
        command = remote_command,
        args = remote_args,
    })
    job:start()
    job:join()
    return job:result()
end

local create_remote_finder = function(opts)
    opts = opts or {}
    pickers.new(opts, {
        prompt_tile = "Remote Files",
        finder = finders.new_table({
            results = get_remote_files()
        }),
        sorter = conf.generic_sorter(opts)
    }):find()
end

create_remote_finder()

My current recommendation is (if this is implemented) that you check the current open file to see if it starts with sftp:// or scp:// and if it does, you select a new finder with the remote search ability.

Sorry for the late reply.
In brief: As you've mentioned, plenary.nvim in all likelihood just fails when working via remote and with it, pretty much anything useful from telescope-file-browser. I'm also not necessarily convinced that running commands etc remotely is the way to go as that's always going to be overhead on the user (install required binaries) and doesn't necessarily integrate well with other plugins.
One things that comes to mind, that (at least for Unix users), could be very easily and seamlessly wrapped is rsync.
In other words, https://github.com/KenN7/vim-arsync with the full lua treatment once lua autocommands land could be very ergonomous. Then you could rsync remote to local /tmp or project folder, respectively, have a session manager with json files (thanks to vim.json, etc.), and so forth. Very fast and since everything is local, almost everything just works.
On top of that you could probably integrate nvim-dap and neovim terminal to integrate remote execution.
Maybe I'd work on that once lua autocommands land. It just feels like the most universal solution, as opposed to rather idiosyncratic solutions that impose other constraints (distant seems super cool, but extra binaries and stuff).
In any case, I'm afraid closing. From a telescope-file-browser perspective it's just out of scope.


mempool: significant reduction of memory waste

The mempool allocator implementation recursively breaks a memory block
into 4 sub-blocks until it minimally fits the requested memory size.
The size of each sub-blocks is rounded up to the next word boundary to
preserve word alignment on the returned memory, and this is a problem.
Let's consider max_sz = 2072 and n_max = 1. That's our level 0.
At level 1, we get one level-0 block split in 4 sub-blocks whose size
is WB_UP(2072 / 4) = 520. However 4 * 520 = 2080 so we must discard the
4th sub-block since it doesn't fit inside our 2072-byte parent block.
We're down to 3 * 520 = 1560 bytes of usable memory.
Our memory usage efficiency is now 1560 / 2072 = 75%.
At level 2, we get 3 level-1 blocks, and each of them may be split
in 4 sub-blocks whose size is WB_UP(520 / 4) = 132. But 4 * 132 = 528
so the 4th sub-block has to be discarded again.
We're down to 9 * 132 = 1188 bytes of usable memory.
Our memory usage efficiency is now 1188 / 2072 = 57%.
At level 3, we get 9 level-2 blocks, each split into WB_UP(132 / 4)
= 36 bytes. Again 4 * 36 = 144 so the 4th sub-block is discarded.
We're down to 27 * 36 = 972 bytes of usable memory.
Our memory usage efficiency is now 972 / 2072 = 47%.
What should be done instead, is to round down sub-block sizes
not up. This way, sub-blocks still align to word boundaries, and
they always fit within their parent block as the total size may
no longer exceed the initial size.
Using the same max_sz = 2072 would yield a memory usage efficiency of
99% at level 3, so let's demo a worst case 2044 instead.
Level 1: 4 sub-blocks of WB_DN(2044 / 4) = 508 bytes.
We're down to 4 * 508 = 2032 bytes of usable memory.
Our memory usage efficiency is now 2032 / 2044 = 99%.
Level 2: 4 * 4 sub-blocks of WB_DN(508 / 4) = 124 bytes.
We're down to 16 * 124 = 1984 bytes of usable memory.
Our memory usage efficiency is now 1984 / 2044 = 97%.
Level 3: 16 * 4 sub-blocks of WB_DN(124 / 4) = 28 bytes.
We're down to 64 * 28 = 1792 bytes of usable memory.
Our memory usage efficiency is now 1792 / 2044 = 88%.
Conclusion: if max_sz is a power of 2 then we get 100% efficiency at
all levens in both cases. But if not, then the rounding-up method has
a far worse degradation curve than the rounding-down method, wasting
more than 50% of memory in some cases.
So let's round sub-block sizes down rather than up, and remove
block_fits() which purpose was to identify sub-blocks that didn't
fit within their parent block and is now useless.

I see one more problem with this pool. Will have to fight it soon unless somebody comes up with any idea earlier.
https://github.com/zephyrproject-rtos/zephyr/issues/17571

Yeah, this design hasn't really worked out.  I actually have a rather simpler heap implementation (much more conventional, significantly faster, and with MUCH better tests) working now, though I don't know what feelings are for merging in 2.0.  Should have it submitted today or tomorrow, at least as a prototype.
As far as this particular patch goes, I repeat that it really isn't the win it's being presented as.  At best, this saves 25% of the fragmentation loss between misaligned heap levels.  But this is a heap design that already wastes as much as 300% of the requested byte count because of the power of four level multiplier.
And there are drawbacks: that change in rounding mode makes the levels more than a power of four apart, making the larger existing loss even worse.
Honestly... we need measured numbers.  Pick a rig or allocation strategy, run it and show the difference.  The reasons for the alignment bugs you found earlier are, in fact, that we have literally zero test coverage for misaligned heaps, or even non-trivial allocation patterns.  We don't test for alignment, or fragmentation, or really anything but minimal "allocate this one block and see if it worked" kind of usages.  The upcoming rework I mentioned should go a long way to addressing that.

On Tue, 16 Jul 2019, Andy Ross wrote:

As far as this particular patch goes, I repeat that it really isn't
the win it's being presented as.

You asked for numbers. I provided numbers. Real ones that you can
reproduce. Now you're tossing them as unreal?

At best, this saves 25% of the fragmentation loss between misaligned
heap levels.

At each level, and they add up. so this 25% loss is exponential as
demonstrated. You end up with roughly 0.75^(level) of usable memory.

But this is a heap design that already wastes as much as 300% of
the requested byte count because of the power of four level
multiplier.

Would you mind elaborating on that statement please?  I'm apparently not
clever enough to make sense of it.

And there are drawbacks: that change in rounding mode makes the levels
more than a power of four apart, making the larger existing loss
even worse.

Again, some illustration of what you're claiming here would be
appreciated.

Honestly... we need measured numbers.  Pick a rig or allocation
strategy, run it and show the difference.

What is it that I provided with this PR if it is not measured numbers?
So please stop this handwaving and give me some substance to your
rebutals. Computing is an exact science in the end.
If we don't fully understand and agree on the issues here, it would be
even harder to judge and appreciate any substantial rework that might be
coming.

I'm not refusing this patch.  I'm saying it's time to retire this heap design.
What I was asking for is a test, not an example in a commit message. That is, come up with and document a usage model, implement a test rig to exercise it, run it, and measure the results.  Right now the tests don't do anything like that.  I have one coming that will, we can scream more there if you like.

To clarify, the circumstances I'm talking about are situations where, for example, you have a 120 byte superblock and need a 32 byte allocation.  The old code would divide 120 by four and round up to a word size to get three 32-byte sub-blocks, one of which it can hand back to the caller they fit exactly.  After this patch is applied, the split will result in four 24 byte blocks, none of which will fit.  So the smallest block that will fit is now 120, where it used to be 32!
That is: we saved the fourth subblock at the cost of more than tripling (!) the overhead for some block sizes.  Is that a real concern or a pathological cherry-picked triviality?  Damned if I know, but it's an edge case to worry about, in an area of code that has bitten us repeatedly with crazy edge cases (c.f. the new unreported one @pdunaj mentions above!).
And I for one would feel a lot happier about it if we could point to some real world usage models that show this is a win vs. dueling examples in English text.  But we don't have that, all we have is some weak tests originally written for an older heap that forced exactly power of four alignment and never had these problems.

Is that a real concern or a pathological cherry-picked triviality?

Sorry, I can't resist and fear that my phrasing wasn't clever enough to draw notice: those numbers were totally engineered, not just to show the overhead aliasing effect of moving the threshold, but to point out that for medium scale blocks like this the new code doesn't actually provide much benefit.  Three 32 byte blocks and four 24 byte blocks expose exactly the same amount of memory to the user. :)  This wins at bigger scales only.

On Tue, 16 Jul 2019, Andy Ross wrote:

To clarify, the circumstances I'm talking about are situations where,
for example, you have a 120 byte superblock and need a 32 byte
allocation.  The old code would divide 120 by four and round up to a
word size to get three 32-byte sub-blocks, one of which it can hand
back to the caller they fit exactly.  After this patch is applied, the
split will result in four 24 byte blocks, none of which will fit.  So
the smallest block that will fit is now 120, where it used to be 32!

You can always craft a scenario where things will go wrong.
Make your 32 into 33 and the old code falls over too.
And, allocating 4 24-byte blocks with the old code does fail, whereas
with my changes it succeeds. So what's the point?
The difference with the old code and my very simple change to it is that
the old code exhibits much worse degradation on average. That's what
we ought to optimize for.

the old code exhibits much worse degradation on average. That's what we ought to optimize for.

Which is a statistical point that needs measurement to have any meaning.  I think we agree.

On Tue, 16 Jul 2019, Andy Ross wrote:

Sorry, I can't resist and fear that my phrasing wasn't clever enough
to draw notice: those numbers were totally engineered, not just to
show the overhead aliasing effect of moving the threshold, but to
point out that for medium scale blocks like this the new code doesn't
actually provide much benefit.  Three 32 byte blocks and four 24 byte
blocks expose exactly the same amount of memory to the user. :)  This
wins at bigger scales only.

You skillfully rounded down to 24 which is true only on 64-bit targets.
This is unlikely to be the case if you're so tight with memory. On
32-bit targets my change still wins with that metric.

I still think you're missing the point.  It's just that this code will perform worse on "some" workloads, it's not a uniform improvement.  So we need to weigh the benefit of merging it vs. the risk (likely very low) that somewhere in the world is an app whose allocation strategy works using the old scheme and fails with your new one.
And like I've said, given the fragility of this code historically, that feels like a bad bet to me.  But again: I have no -1 vote above.  You have your approvals.  This can go in.  Just promise you'll still around to fix it if something breaks.

On Tue, 16 Jul 2019, Andy Ross wrote:

And like I've said, given the fragility of this code historically,
that feels like a bad bet to me.

Like I said a few times already, that code has been broken all along
until very recently. Broken code is always fragile.

You have your approvals.  This can go in.  Just promise you'll still
around to fix it if something breaks.

I never shy away from fixing bugs into stuff that I've touched. Whether
it is last week or 10 years ago, here or elsewhere.


Store file uploads in the configured storage location

Fixes #149
Why was this change made?
This commit contains a number of pieces of getting user-uploaded files stored in the expected location:

Pull in DruidTools gem to allow arranging file uploads attached to deposited objects in a "druid tree" directory hierarchy, which is consistent with current Hydrus practice and general DOR practice. Principle of least surprise.
Fix bug in WorkForm that currently fails to associate AttachedFile instances with ActiveStorage blobs
Use two storage locations:

A subdirectory of a configured mount for draft objects, which is organized by ActiveStorage based on the system-assigned ActiveStorage key.
A subdirectory of a configured mount for deposited objects, which is organized in a "druid tree" (see above).

When object is successfully deposited, use StorageMigrator service to move blobs from the draft object storage location to the deposited object storage location.
Delegate from AttachedFile to associated blob to display uploaded files' names, types, and sizes.
Allow work to accept nested attributes for attached files, contributors, and keywords. I found I needed this to allow the form's parameters to be permitted (else attached_files_attributes were unpermitted).
Display more information about files and their attachments on the work show page
Add and configure a custom ActiveStorage disk service for storing files in druid trees.
Add a spec helper allowing factories to use fixture_file_upload method for convenience.

How was this change tested?
In browser and in CI.
Which documentation and/or configurations were updated?
Added configuration locally and changed shared_configs.

I'll improve test coverage on Monday.

@jcoyne This is ready for another review and should be :green_heart: momentarily.

@jcoyne Ready for another look.


docs: add finetuner to ppl who use accelerate

this PR adds Finetuner to accelerate readme, as was mentioned in this issue.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks for adding this!


Document breaking changes (getTracker is gone in v2.0.0)

Version 2.0 removes the getTracker named export. This is a breaking change and isn't documented anywhere in the release notes or readme.
Looking at the diff for 037ec06cd30e5489381273c6d2660b1a7a95a1e1, I guess we're supposed to use createTracker now instead of getTracker? It looks like createTracker now expects to be passed a knex instance, unlike getTracker. This is breaking my tests; I'm using Objection.js models, so the models already have a reference to the knex instance, which in NODE_ENV=test is configured to use the MockClient:
knexfile.js:
import dotenv from 'dotenv';
import { MockClient } from 'knex-mock-client';
import { knexSnakeCaseMappers } from 'objection';
const configPath = new URL('../../.env', import.meta.url).pathname;
dotenv.config({ path: configPath });

const {
  NODE_ENV,
  PG_DB_HOST,
  PG_DB_PORT,
  PG_DB_USER,
  PG_DB_PASSWORD,
  PG_DB_DATABASE,
  PG_DB_APPLICATION_NAME = '',
} = process.env;

export const pgDbConfig =
  NODE_ENV === 'test'
    ? {
        client: MockClient,
        dialect: 'pg',
        ...knexSnakeCaseMappers(),
      }
    : {
        client: 'pg',
        migrations: {
          stub: 'migrationTemplate.js',
          directory: 'migrations',
        },
        connection: {
          host: PG_DB_HOST,
          port: PG_DB_PORT,
          user: PG_DB_USER,
          password: PG_DB_PASSWORD,
          database: PG_DB_DATABASE,
          application_name: PG_DB_APPLICATION_NAME,
          ssl: false,
        },
        ...knexSnakeCaseMappers(),
      };

My test file, pre 2.0:
import { getTracker } from 'knex-mock-client';
import t from 'tap';
import validRegistrationTypesForUser from '../validRegistrationTypesForUser.js';

let tracker = getTracker();

// ... tests follow, using the tracker to intercept queries and return mock results

You are correct, v2 is a major version which means that it has a breaking change.
I'm not familiar with objection.js, can you get the knex instance out of it?

I'm closing this issue since there is no real reason for it, feel free to re-open.


Expandable Folder View

What feature or improvement do you think would benefit Files?
I can drag and drop files to parent folders or subfolders
i do not have to waste horizontal space in column view
Requirements
view mode option "Expandable Folders"
Files Version
<IP_ADDRESS>
Windows Version
11
Comments

Thanks for the feedback, We're tracking this in #1928. You can check there or click subscribe in the right sidebar for updates.

i am a winUI developer. is there any way i can help?


Move nested function array from the end of FunctionBody to seperate structure

Move nested function array from the end of FunctionBody to seperate
structure
Nested function array was allocated as a plus size at the end of
FunctionBody. FunctionBody is a fairly big structure, with random amount
of nested function at the end, FunctionBodys use different bucket from the
recycler and can cause memory fragmentation.
this change also remove field m_derivedSize which is not necessory any
more(it was there for locating nested function array), and m_nestedCount
will be moved to the new structure, it does not use memory for those
function does not have nested functions

How much does it improve?

This one is improvement for potential fragmentation. I didn't measure. let me try to measure it. I think the noise could be big. let me try and see

@curtisman can you review this as well?

LGTM.  Still want to know how much this will improve things.

the improvement from comparing on facebook (baseline and fix each twice):
baseline:
Total           :  3716  527160       1    47244320    19442656    66686976    70.84%
Total           :  3667  522891       1    46512768    19129728    65642496    70.86%
with fix:
Total           :  3661  535384       1    48547392    16771520    65318912    74.32%
Total           :  3689  526514       1    48244240    18012656    66256896    72.81%
usually I see the usage is about 72-73%, may be I just hit a extreme cases for baseline today.


Introducing get_schema method for DescribeFeatureType parsing.

This work is supported by Ivan Mincik and originally it is inspired by GIS.Lab project

@jachym thanks for the fixes.  There are related Travis CI failures with tests/doctests/wfs1_generic.txt.  Can you take a look?

test fixed (as far is I've edited)

@jachym looks like there are related test errors in https://travis-ci.org/geopython/OWSLib/jobs/96437805#L1595

This is embarrassing, I've checked travis several times and believed,
everything is ok :-(
sorry for that, I'll fix  and let you know
J
út 15. 12. 2015 v 12:59 odesílatel Tom Kralidis<EMAIL_ADDRESS>napsal:

@jachym https://github.com/jachym looks like there are related test
errors in https://travis-ci.org/geopython/OWSLib/jobs/96437805#L1595
—
Reply to this email directly or view it on GitHub
https://github.com/geopython/OWSLib/pull/294#issuecomment-164742254.

@tomkralidis I've hopefully fixed all the issues created by this patch set. I'm not quite satisfied with the workarounds I had to introduced just because of combination Python 2.6 (which does not support advanced XPATH expressions) and no lxml available (which would solve the problem). I hope, it's mergable now ?

I've moved some of the functionality to utils.py for later usage (introduces findall function for easy xml parsing, independent on lxml and compatible with python 2.6).
We can either take https://github.com/jachym/OWSLib/commit/2133040d5dcb6aa6bbbcfcfe8c4b463434d7cead or newer https://github.com/jachym/OWSLib/commit/bc51955fb1acb7eb32c5830a2c4aac74902f4e89 commits

@jachym this works now -- thanks for the excellent work! Can you squash your commits before I merge?

commits merged into one

thanks
so 26. 12. 2015 v 16:36 odesílatel Tom Kralidis<EMAIL_ADDRESS>napsal:

Merged #294 https://github.com/geopython/OWSLib/pull/294.
—
Reply to this email directly or view it on GitHub
https://github.com/geopython/OWSLib/pull/294#event-500747880.


Unable to download projects due to MinIO storage full error

Hello,
While testing QFieldCloud, I added and deleted several projects. At some point, I encountered a new problem. I was no longer able to download my projects. When I checked the Jobs, I noticed the following error message:
An error occurred (XMinioStorageFull) when calling the PutObject operation: Storage backend has reached its minimum free drive threshold. Please delete a few objects to proceed.

It seems that the MinIO storage is full, possibly because objects that are no longer in use aren't being deleted ?
Thank you in advance for your help.

I just checked the MinIO interface and I can confirm that all the old projects I deleted from the QFieldCloud admin interface are still stored there. Is this behavior normal ?

Hello, @rom2049 . Thanks for using QFieldCloud. Unforutnately we do not provide deployment and operations support for people installing on QFieldCloud on their own hardware via GitHub. Feel free to contact us at sales [at] qfield.cloud.
If you have detected an actual replicable issue, please open a new issue.


Prod hotfix

Hotfix for push notifications in 1.8

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat: add duplicate keys rule

:pencil: Description

Adds a rule to prevent duplicate dependency keys in package.json

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: