ElasticSearch, Hive, and HBase

Hello,
I have HDP 2.2 installed on my server and I am using elasticSearch to do indexing as following:

Load HBase Table
Create an external table in Hive associated with HBase Table (message is json in string)

create external table test (rowkey string, cre_dat timestamp, message string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ('hbase.columns.mapping' =':key,c:cre_dat,c:message') TBLPROPERTIES ('hbase.table.name' = 'hbase');

Create an external table in Hive associated with ElasitcSearch

create external table json (data string) STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' tblproperties('es.resource'='1p/2015','es.input.json'='yes','es.nodes'='localhost');

Create '1p' index on elasticsearch with mapping file

Load elasticsearch as following:

insert into table json select regexp_replace(message,'\'','\"') from test;

Now I am getting the following error. When it pushes about 1300~1500 records to elasticsearch, command from step 5 fails with the following error:
Query ID = hdfs_20150429123737_af5f9ba1-1272-499b-9df7-5651af1fb1e8
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1430276814521_0018, Tracking URL = http://localhost:8088/proxy/application_1430276814521_0018/
Kill Command = /usr/hdp/<IP_ADDRESS>-2041/hadoop/bin/hadoop job  -kill job_1430276814521_0018
Hadoop job information for Stage-0: number of mappers: 4; number of reducers: 0
2015-04-29 12:37:54,240 Stage-0 map = 0%,  reduce = 0%
2015-04-29 12:38:34,316 Stage-0 map = 100%,  reduce = 0%
Ended Job = job_1430276814521_0018 with errors
Error during job, obtaining debugging information...
Examining task ID: task_1430276814521_0018_m_000000 (and more) from job job_1430276814521_0018
Examining task ID: task_1430276814521_0018_m_000001 (and more) from job job_1430276814521_0018

Task with the most failures(4):
-----
Task ID:
  task_1430276814521_0018_m_000000

URL:
  http://localhost:8088/taskdetails.jsp?jobid=job_1430276814521_0018&tipid=task_1430276814521_0018_m_000000
-----
Diagnostic Messages for this Task:
Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"[some json message"}
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:185)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"[some json message]'}"}
        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:503)
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:176)
        ... 8 more
Caused by: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: Found unrecoverable error [Bad Request(400) - [MapperParsingException[failed to parse]; nested: JsonParseException[Unexpected character ('s' (code 115)): was expecting comma to separate OBJECT entries
 at [Source: [B@2967c4c9; line: 1, column: 4581]]; ]]; Bailing out..
        at org.elasticsearch.hadoop.rest.RestClient.retryFailedEntries(RestClient.java:202)
        at org.elasticsearch.hadoop.rest.RestClient.bulk(RestClient.java:166)
        at org.elasticsearch.hadoop.rest.RestRepository.tryFlush(RestRepository.java:199)
        at org.elasticsearch.hadoop.rest.RestRepository.flush(RestRepository.java:223)
        at org.elasticsearch.hadoop.rest.RestRepository.doWriteToIndex(RestRepository.java:161)
        at org.elasticsearch.hadoop.rest.RestRepository.writeProcessedToIndex(RestRepository.java:154)
        at org.elasticsearch.hadoop.hive.EsHiveOutputFormat$EsHiveRecordWriter.write(EsHiveOutputFormat.java:63)
        at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:689)
        at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
        at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
        at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
        at org.apache.hadoop.hive.ql.exec.FilterOperator.processOp(FilterOperator.java:120)
        at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
        at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:95)
        at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:157)
        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:493)
        ... 9 more

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-0: Map: 4   HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec

Can anyone help me with this issue? I manually deleted the json message in error due to privacy.
I have over 2 million rows in HBase table that needs to be pushed to ES.
Thank you in advance.

I think it is due to regexp_replace part where I replace ''' with '"'. When I load data to hbase, json is stored as string with single quote. When I try to load json message from hbase to elasticsearch on Hive, I have to convert single quote to double quote. When this is done in mapreduce, it seems that Hive fails to replace single quote to double quote before sending it to ElasticSearch.
I might be wrong, but that is what I am guessing. Please let me know what I can do.
Thanks again.

@tugisuwon I've been meaning to reply. First off, I've added minor formatting to your post to make it readable - hope you don't mind.
Your setup is sound and based on the exception, it looks indeed that the input is incorrect. JSON can be tricky and a missing comma or quotes can render it useless. Do note that JSON in general doesn't accept ' but rather ".
To help with debugging, you could dumb the data to HDFS, do the replace there and then try and validate it - this should quickly spot any problems that you might have.
By the way, if you need to do replacing, it means your initial data is not proper JSON so I would rather correct that; this would simplify the issue not just in this case but for any other system that consumes JSON that you might want to use.
Hope this helps,

@costin Thank you for a quick reply. It's my first time using github, so please make any modification if necessary :)
Let me share a little more details about my setup.
I loaded data to hbase using python, so actual json message was converted to string during this process. So you are right that initial data is not proper JSON anymore, but a string.
This is why I added regexp_replace(message, ''','"') on hive before sending it to ES as JSON.
example:
column value in HBase that needs to be loaded to ES: {'a':'123', 'b':'abc'}
Hive: regexp_replace => {"a":"123", "b":"abc"}
Is there any way for me to load HBase with JSON instead of string so that I don't have to worry about this? Or do  you know any way for me to convert string to JSON in hive correctly?
Sorry about the massive questions... but really appreciate for your help and feedback.
Thanks.

Why not correct the JSON string directly. So instead of doing the replacing of quotes, use a JSON library when loading the data in HBase from python?
Blindly replacing the quotes will cause problems - for example consider this string "what's this?" In HBase it's probably stored as 'what's this?'. So replacing 'with"becomes"what"s this?".
Basically what I'm suggesting is to address the problem at the source - when you are generating the String that is about to be loaded in HBase since again, that is not JSON and there's too much information loss for a simple replace to work. Not to mention that it's inefficient since instead of streaming the data, you know have to transform it which will act as a bottleneck that should not be needed.

@costin Thanks again.
I finally found out that there was a non-English word in the message that caused the problem. I was able to run everything now.
Thanks again.

Glad to hear it however my advice still stands. By using a JSON library, this case that requires quoting or escaping will not occur any longer.
Closing the issue.


qr_jvp_rule for m > n

In jax.numpy.linalg, it says that the derivative of QR decomposition is derived from j-towns.github.io/papers/qr-derivative.pdf and not  implemented if $m>n$. Instead, a more detailed and complete version is giggleliu_einsumbp which include the derivative in the case $m>n$.

Would you be interested in sending a PR? We welcome contributions!

Sure


Invalid filter: 'validated_plugin_viewname' while trying to access secrets.

Upon attempting to access secret roles or secrets, prior to having a 'user key' we get the following Server Error:
<class 'django.template.exceptions.TemplateSyntaxError'>

Invalid filter: 'validated_plugin_viewname'

This might be caused due to a lack of activated user key in the admin panel.
Activating a generated user key doesn't seem to work as of now from the admin panel, as the private key gets rejected no matter what.
on version v1.0.5

What version of the plugin?

Can you pip install netbox-plugin-extensions within your venv?

What version of the plugin?

on version 1.0.5 of the plugin.

Can you pip install netbox-plugin-extensions within your venv?
That gets installed automatically by installing with a pip git install from source.

Is there any extra configuration for the ldap container that I might be missing, besides the static files?

What version of netbox-plugin-extensions do you have?
On Sep. 21, 2021 11:39, Idris Foughali @.***> wrote:
What version of the plugin?
on version 1.0.5 of the plugin.
Can you pip install netbox-plugin-extensions within your venv?
That gets installed automatically by installing with a pip git install from source.
Is there any extra configuration for the ldap container that I might be missing, besides the static files?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/DanSheps/netbox-secretstore/issues/28#issuecomment-924162108, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACUJWQDZ7HS2TK5SCNNC44TUDCYNJANCNFSM5EO2L72Q.

Can you pip install netbox-plugin-extensions within your venv?

I have installed v1.0.2 which is currently the latest, but the plugin still fails to.
Tested on Netbox version  3.0.4
netbox-secretstore==1.0.7
netbox-plugin-extensions==1.0.2


Support for topics (or event-groups).

Please add support for registering event-groups (or topics), just like the '*' event type, but with a prefixed topic (or group identifier/name/etc.).
Something like:
emitter.on('my-topic/*', handlerForAllEventsInThisTopic);
This would be really helpful if we are dealing with different components that belong to the same section. This can be done with a consistent naming strategy, as well, but having this as a feature is more powerful. We can have a "topic-specific" handler for all events in the same group, but also event-specifc ones.

Agreed, this would be very useful.
Alternatively, I also thought perhaps the emitter.on function could return a reference to the event listener, and then we can use that. For example
onComponentCreation() {
    this.listener1 = EventBus.on('updateMenu',  myFunction);
}
onComponentDestroy() {
    this.listender1.destroy();
}

Or something along those lines.
My use case for example, is several instances of the same Vue component, and after some investigation, I found the listeners were still firing for previous instances of the component that had since been destroyed, but the listeners remained. I had a check to ensure the right component id was present and return false if not right, but it still means many listeners getting triggered adding weight to everything.

@redfox05 @adrianvoica
Hello I had the same need, and fork the project and made it available here: https://github.com/thiagoanselmo/mitt-emitter see if it helps.

There are already hundreds of modules that offer this, like WildEmitter. Adding pattern matching would increase size and performance overhead, even in the majority of cases where it's unused.

@developit
https://www.npmjs.com/package/mitt-emitter


How to handle the drag feature of region handlers in wavesurfer

I had created a custom region using region tag. Now I want to get handling on region dragging so that it won't overlap on another regions.

Regions have minLength and maxLength params which you can use to limit the size of individual regions. You'll need to calculate these limits in your app (like region.maxLength = region.start + nextRegion.start).

@katspaugh got an example on how to exactly get the nextRegion? Don't see that anywhere.

@katspaugh I think this doesn't prevent overlap, unless your regions are all exactly next to each other.
Would you have another solution to prevent overlap?


lib/neovim/ruby_provider.rb is broken on release 0.7.0

If I use this release, neovim keeps complaining about StringIO not being defined with:
NameError: uninitialized constant Neovim::RubyProvider::StringIO

Simple test - install the plugin, run :UpdateRemotePlugins, then run :ruby puts 'hello'.
Fixing: just require "stringio" on the header of lib/neovim/ruby_provider.rb. I hope it helps

Good catch! I thought that was stdlib but I guess not. Feel free to PR the change, otherwise I'll get to it probably next week.

Just pushed 0.7.1 to rubygems. Please reopen if you have further issues.


Need ability to clear all storage

Which service(blob, file, queue, table) does this issue concern?
All
Which version of the Azurite was used?
3.8.0
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm
What's the Node.js version?
12.18.4
What problem was encountered?
I need to be able to clear storage like I could with Azure Storage Emulator using clear all, clear blob, etc.
Steps to reproduce the issue?
I'm working off the output from -h - it says nothing about the ability to do this.
Have you found a mitigation/solution?
No, I am new to Azurite so I'm unsure if there's some "hack" you can do to effectively do this.
Use case:
When developing with a technology like Durable Functions, which heavily utilizes queues, tables, and blob to maintain state of orchestrations it's incredibly useful to be able to clear backend storage contents as a way to "restart" an orchestration debugging session.

@brandonh-msft
Normally, You can just clear the files listed here , in the workspace .
If you use SQL to save metadata, you can just delete the related DB.

Of course; but that only works as long as y'all never change how you're storing stuff on the backend and/or always keep the docs in sync when you do.
Since this is a replacement for the old emulator, I think it should at least have parity with it. I want to focus on the task at hand, and having to context switch to poke around filesystems or databases isn't conducive to that.

@brandonh-msft
Thanks for the reply!
Would you please clarify what do you mean " it should at least have parity with it. "?
Open source contributions are very welcome. If you have a better solution for that, and would like to contribute to it, feel free to send PR.

Would you please clarify what do you mean " it should at least have parity with it. "?

Anything that I could do w/ the old Azure Storage Emulator I should be able to do in Azurite.

@brandonh-msft
Thanks for the reply!
Would you please share what's your preferred way for Azurite to clean all data?
Do you want a command line to clean up that?
For this request, we will evaluate per the customer vote. If there are many customer need it, we will high priority it.
And since Azurite is open source, we welcome contribution very much! If you would like to contribute to resolve it, feel free to send PR.

Do you want a command line to clean up that?

yes

Will follow up that with @brandonh-msft  in mail.

It is correct that the ability to clear or clean the storage while developing durable functions is really necessary.
It is laborious top rely on deleting files - I must quit from Visual Studio before I can delete them, restart VS and run my durable functions and then repeat for every debug session. It's a poor workflow.
I have also tried using the VSCode durable function plugin to delete the hub (nothing else seemed to work) but it is somewhat slow compared to previous CLI command for the old storage emulator.
I appreciate this is an open source project and if I find time I will do something about it. For now I just want to draw attention to this area, that for developers working a lot on durable functions Azurite breaks our development workflow in comparison with the old storage explorer.

After a new laptop with only VS2022, my workflow is hampered by the absence of a method equivalent to "AzureStorageEmulator.exe clear all". As more people migrate to VS2022, this will only become more urgent.

@jacobherrera
Thanks for the information!
Currently We can only cleanup Azurite storage data, when Azurite is not running. So we need VS team support to see how to apply this in VS.
I will contact VS team for this issue, and update later.

We have discussed with VS team in mail, and generally agree will have a fix for it in VS.
Will update if any progress from VS team.

@brandonh-msft
Thanks for the clarify!
We will also leave this issue open to track the work of a command-line to clean up Azurite data.
However, per current Azurite framework, to clean up Azurite data:  we must: 1. stop Azurite, 2. clean up Azurite workspace folder (manually or by commandline), 3. start Azurite. So stop and restart Azurite is required for cleanup the data.

@brandonh-msft
I have write a batch file to Clean storage data of Azurite.
I save it to a bat file and tested it on my windows machine. It looks work well,
Would you please see if it can meet your requirement?
Please note:

input the workspace folder before run the batch file.
You can add more parameter in start Azurite, like "-d "

powershell -command "Get-WmiObject Win32_Process | where {$_.CommandLine -like '*azurite.js*' -and $_.Name -eq 'node.exe'} | ForEach-Object { Invoke-WmiMethod -Path $_.__Path -Name Terminate }"
rmdir c:\temp\azurite  /q /s
start /MIN Azurite -l c:\temp\azurite

Seems like that solves for clear all but not clear blob, clear table, or clear queue

@brandonh-msft
For clean blob:
You can just modify the 2nd line of the script a little: instead of removing the whole workspace folder, delete all file/directory whose name like *blob* in the workspace folder.  like:
powershell -command "Get-ChildItem <WorkspaceFolder> | where {$_.Name -like '*blob*' }| Remove-Item -Recurse -Force"

clear table, or clear queue can also use similar way.

I'm fine if you want to propose that as a temporary workaround but not the permanent solution.

It's not affordable outside this work item - people would have to come find this to find that script line, nobody's going to discover that on their own
It's not obvious what's being done if you were to embed this in a script somewhere; you'd have to comment the line to point out what you're doing here and why
It's not cross-platform except and unless somebody installs Powershell Core on their box, which shouldn't be a prereq for using Azurite.

So what I'm saying is thanks, and I'll use that if/when I get back to having Azurite as part of my daily dev workflow (I've moved on from Functions/DF work) but would much rather see something I can discover & interpret from azurite -h than a separate script I pulled from the bowels of the internet ;)

@brandonh-msft
Thanks for the feedback!
Will keep this issue open to track it.

I'm sorry to ask such an ignorant question, but can anyone point me to the default Azurite location for VS 2022 on Win 11?  I desperately need this functionality, but can't seem to find it.

I'm sorry to ask such an ignorant question, but can anyone point me to the default Azurite location for VS 2022 on Win 11? I desperately need this functionality, but can't seem to find it.

When you fire up VS and target a Fxn app as your startup project, you'll get this kind of output in the 'Service Dependencies' area of the Output pane:
Ensuring Azure Functions Core Tools are up to date. This may take a few minutes...
<Project Name>: c:\program files\microsoft visual studio\2022\pubpreview\common7\ide\extensions\microsoft\Azure Storage Emulator\azurite.exe --location "<THIS IS THE AZURITE INSTALL LOCATION>" --debug "<azurite location>\debug.log" --skipApiVersionCheck

That'll tell you where it is. It's likely going to be something like C:\Users\<your username>\AppData\Local\Temp\Azurite

@brandonh-msft Thank you!!

Another +1 for this request.  We are using the old Azure Storage Emulator for some of our automated end-to-end tests.  Those tests run the "clear all" command at startup to ensure a consistent environment between test runs.  The lack of similar functionality has so far prevented us from migrating those tests to use Azurite.

@bmode
Thanks for raise the request!
Could you please replace the "clear all" command to a command to delete all files under the workspace folder of Azurite, it will have same effect? (When start Azurite you can specify workspace folder with "-l", see details.)

@blueww When I previously tried to delete all files the problem I had, at least when running with Visual Studio, the files were locked and I had to close VS in order to delete the files. This is very disruptive to a development workflow.

@codermrrob
The file is locked should because the Azurite instance started by VS is still running, so the file is locked by the running Azurite instance.
Currently to clean up Azurite data, there must be no Azurite instance is running with the specific workspace (or the data might not be aligned and take issues) We still don't find a good way to cleanup Azurite data when the Azurite instance is running, there might need big framework change to get this.
As you said "Those tests run the "clear all" command at startup", so could you cleanup the workspace folder before start running Azurite in the test?

Actually for durable function development all I really need to do is clean all the data within the task hub that the durable function uses. If I can clear all task hub data easily that is probably good enough most of the time.
Currently I use the VSCode Durable Function extension to achieve this, and it works well as workaround.

Thanks @codermrrob  for the update!
Good to know you have work around it.

The above .bat deleted the Azurite.exe too. Serves me right for not taking a better look before running it

@zakkra
Do you put the Azurite.exe in same folder as the WorkspaceFolder?  （this command will remove all files under workspacefolder）
If so, could you set a separate folder for WorkspaceFolder?
Or user following command to clear up only blob data (and table/queue in similar way)
powershell -command "Get-ChildItem <WorkspaceFolder> | where {$_.Name -like '*blob*' }| Remove-Item -Recurse -Force"

@rruenroeng
Where do you get Azurite? Do you run it from npm, VSCode Extension, docker, or Visual studio?
Uninstall Azurite and reinstall normally won't work to clean the data, since it won't clean the file location (specified with "-l" parameter).

This feature would make a lot of sense with the recently introduced --inMemoryPersistence flag, e.g., a signal (think SIGHUP) that soft resets azurite without spawning a new process.

Sorry for responding a lifetime later @blueww ,
I was running it from Visual Studio. That's also where I got it.

@rruenroeng
The latest Azurite version (3.28.0) support a new parameter '--inMemoryPersistence', it will cache data in memory instead of disk, so all data will be cleaned up by restart Azurite.
However, it might still take time for Visual Studio upgrade Azurite in it to 3.28.0. Before that, you can also consider get Azurite from npm, VS code extension, or docker image.

@rruenroeng The latest Azurite version (3.28.0) support a new parameter '--inMemoryPersistence', it will cache data in memory instead of disk, so with this parameter all data will be cleaned up by restart Azurite. (There is also some limitation, see details.) However, it might still take time for Visual Studio upgrading Azurite in it to 3.28.0. Before that, you can also consider get Azurite from npm, VS code extension, or docker image.

This is good but still not what's needed. I do want persistence between runs of Azurite (e.g. a reboot of my system, etc.) while I'm developing, but need the ability to clear this on demand when necessary.

@rruenroeng The latest Azurite version (3.28.0) support a new parameter '--inMemoryPersistence', it will cache data in memory instead of disk, so with this parameter all data will be cleaned up by restart Azurite. (There is also some limitation, see details.) However, it might still take time for Visual Studio upgrading Azurite in it to 3.28.0. Before that, you can also consider get Azurite from npm, VS code extension, or docker image.

Sounds good - however where can this parameter be set in Visual Studio?

@rruenroeng The latest Azurite version (3.28.0) support a new parameter '--inMemoryPersistence', it will cache data in memory instead of disk, so with this parameter all data will be cleaned up by restart Azurite. (There is also some limitation, see details.) However, it might still take time for Visual Studio upgrading Azurite in it to 3.28.0. Before that, you can also consider get Azurite from npm, VS code extension, or docker image.

Sounds good - however where can this parameter be set in Visual Studio?

Would you like to contact VS team to ask them to open this configuration in the VS started Azurite.
This doc has the details on how to report a VS feedback issue : https://docs.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2022

Any update on this?

@tomkerkhove
We are working on some other higher priority features. So I am afraid this won't be in our recent priority list.
You can find some workaround in the above comments.


Filename with spaces usage

This PR is aimed to explain correct shell behaviour for files with spaces in the name.
Problem: If modified filename contains space, then the whole list sent to intersection is wrong.
Solution: escape it correctly before processing.

rebased, to avoid extra master merge commit.

:+1: for idea, could you pls check out minors I have rised?
Also, I have targetted this to 2.1 line, don't bother to change PR target on your own.

with change:
Loaded config default from ".php_cs.dist".
FF
Legend: ?-unknown, I-invalid file syntax, file ignored, S-Skipped, .-no changes, F-fixed, E-error
   1) src/tmp/file.php (header_comment, single_blank_line_at_eof)
   2) src/tmp/long name.php (header_comment, single_blank_line_at_eof)

without change:
Loaded config default from ".php_cs.dist".

  [PhpCsFixer\ConfigurationException\InvalidConfigurationException (16)]
  The path "src/tmp/long" is not readable.

Exception trace:
 () at /home/keradus/github/PHP-CS-Fixer/src/Console/ConfigurationResolver.php:347
 PhpCsFixer\Console\ConfigurationResolver->PhpCsFixer\Console\{closure}() at n/a:n/a
 array_map() at /home/keradus/github/PHP-CS-Fixer/src/Console/ConfigurationResolver.php:355
 PhpCsFixer\Console\ConfigurationResolver->getPath() at /home/keradus/github/PHP-CS-Fixer/src/Console/ConfigurationResolver.php:685
 PhpCsFixer\Console\ConfigurationResolver->resolveFinder() at /home/keradus/github/PHP-CS-Fixer/src/Console/ConfigurationResolver.php:449
 PhpCsFixer\Console\ConfigurationResolver->getFinder() at /home/keradus/github/PHP-CS-Fixer/src/Console/Command/FixCommand.php:172
 PhpCsFixer\Console\Command\FixCommand->execute() at /home/keradus/github/PHP-CS-Fixer/vendor/symfony/console/Command/Command.php:262
 Symfony\Component\Console\Command\Command->run() at /home/keradus/github/PHP-CS-Fixer/vendor/symfony/console/Application.php:826
 Symfony\Component\Console\Application->doRunCommand() at /home/keradus/github/PHP-CS-Fixer/vendor/symfony/console/Application.php:189
 Symfony\Component\Console\Application->doRun() at /home/keradus/github/PHP-CS-Fixer/vendor/symfony/console/Application.php:120
 Symfony\Component\Console\Application->run() at /home/keradus/github/PHP-CS-Fixer/php-cs-fixer:45

for that, I treat it not only as doc change, but also bugfix @SpacePossum

note: sadly, IFS won't work on Windows. (I'm fine with that)

fixed and rebased onto 2.1

Thank you @jaymecd.

thanks @jaymecd :+1:  :)


Deprecate macros relying on Reactivity Transform

Clear and concise description of the problem
Namely defineProps: https://vue-macros.sxzz.moe/macros/define-props.html
See https://github.com/vuejs/rfcs/discussions/369#discussioncomment-4779240 for more.
Suggested solution
Or at least update docs to reflect that it's no longer part of Vue 3 core.
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Props destructuring won’t be removed. It will be separated and moved to another new proposal. We (Vue team) will discuss it in the next days.

https://github.com/vuejs/rfcs/discussions/369#discussioncomment-5059028

Reactivity Transform is moved to Vue Macros, and we'll maintain it further.


Bitcoin transaction signing

Codecov Report

Merging #29 into master will decrease coverage by 2.67%.
The diff coverage is 60.22%.

@@            Coverage Diff             @@
##           master      #29      +/-   ##
==========================================
- Coverage   83.11%   80.44%   -2.68%
==========================================
  Files          53       63      +10
  Lines        1949     2450     +501
==========================================
+ Hits         1620     1971     +351
- Misses        329      479     +150

Impacted Files
Coverage Δ

Tests/Bitcoin/BitcoinTransactionTests.swift
100% <100%> (ø)
:arrow_up:

Sources/Bitcoin/BitcoinUnspentTransaction.swift
100% <100%> (ø)

Sources/Bitcoin/SignatureHashType.swift
100% <100%> (ø)

Sources/BinaryCoding.swift
33.82% <100%> (-1.48%)
:arrow_down:

Tests/Bitcoin/BitcoinSignerTests.swift
100% <100%> (ø)

Tests/CryptoTests.swift
100% <100%> (ø)
:arrow_up:

Sources/Crypto.m
97.56% <100%> (+5.89%)
:arrow_up:

Sources/Ethereum/Solidity/ABIEncoder.swift
88.29% <100%> (-1.52%)
:arrow_down:

Sources/BigIntEncoding.swift
100% <100%> (ø)

Sources/Bitcoin/BitcoinScript.swift
13.38% <13.38%> (ø)

... and 20 more

Continue to review full report at Codecov.

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


Fix method calling with caching globally disabled #212

Hi, this PR addresses #212 .
Thanks for reviewing.

OMG, awesome PR. Thanks! :)
The only thing left to fix is make the ruff check pass on the pre-commit.ci.
Here's the output:
Ruff check...............................................................Failed
- hook id: ruff
- exit code: 1

warning: `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible. Ignoring `one-blank-line-before-class`.
warning: `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible. Ignoring `multi-line-summary-second-line`.
tests/test_general.py:251:16: E712 Avoid equality comparisons to `True`; use `if test():` for truth checks
    |
249 |     cachier.disable_caching()
250 |     try:
251 |         assert test() == True
    |                ^^^^^^^^^^^^^^ E712
252 |     finally:
253 |         cachier.enable_caching()
    |
    = help: Replace with `test()`

tests/test_general.py:264:16: E712 Avoid equality comparisons to `True`; use `if Test().test():` for truth checks
    |
262 |     cachier.disable_caching()
263 |     try:
264 |         assert Test().test() == True
    |                ^^^^^^^^^^^^^^^^^^^^^ E712
265 |     finally:
266 |         cachier.enable_caching()
    |
    = help: Replace with `Test().test()`

Found 2 errors.
No fixes available (2 hidden fixes can be enabled with the `--unsafe-fixes` option).

Released in v3.0.1.


encode signature to conform with the standard

@raticate Could you please run the system_test in this branch, my computer doesn't want to do it :(

system tests passed in this branch (I ran them thrice)


adds desktop notifications to client

Heey @steefmin, thank you for your PR!
Interesting notification functionality! I think we should definitely do something with that. However I think we shouldn't enable this by default, because you don't want to have the request for notifications popup on a raspberry pi which isn't connected to a mouse/keyboard.
In the future I would like to introduce a settings panel (or it could just be an extra button in the tool-bar) where we could add a switch there to enable the notifications for that specific dashboard/client. And store that setting in a vuex store and local-storage. What do you think about that?
Also we should probably send the statuses that changed via a separate socket function, so that you can only show notifications for statuses that actually changed. Will make sure that happens too.
For now the way this is implemented it's going to be more of a burden than a blessing :innocent: Thank you for thinking along with the project though!

@steefmin if you're feeling up for a challange :wink:

Closing in favor of https://github.com/CIMonitor/CIMonitor/pull/92


04/18/2018 19:25 : Create Pull Request for branch prTesting_2018041819 -> master

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon.md
:white_check_mark:Succeeded

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


Added flow support

#2
The project is ready for flow with this pull request.
However I did not flowify the files, mostly because of missed information to run properly.
Changes to workflow:
When running new code:
yarn build // This removes flow types from javascript when compiling
yarn start

To use IDE with Flow support you must enable usage of dependency Flow package
The executable code is now in "lib"

Oh, I carelessly removed commit...
I'll re-push commits soon.

@kthorri Could you re-push your commits to kthorri:master so that I can re-push my commits? Sorry for your inconvenience:bow:

Check out #4 :)


Does not build on hurd-i386

Via https://bugs.debian.org/861569:
  mtab.c:23:24: fatal error: sys/mount.h: No such file or directory
   # include <sys/mount.h>

You can see a full build log here: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=hurd-i386&ver=1.0-2&stamp=1493474679&raw=0
(See my comments on the above bug report, re. Linuxisms)

Actually the issue is not enough Linux-isms :)
Specifically, that include is guarded by #elif BSD, but that seems to be true on Hurd.  The codepath it should be using is guarded by #if __linux__, but I guess it should really be something like #if __GLIBC__.
With that change, bfs builds, but 7 test cases fail.

Commits facf34b..72685e2 fix all the bugs I ran into building on Hurd.  Let me know if you run into any other issues.

Appears to build fine now - many thanks :)


Remove unnecessary examples from Publishing API exporter specs

These examples are testing scenarios which do not happen in production, so it's safe to remove them.
The fact that they are shared examples means they are executed multiple times in different contexts exacerbating the problem.

Rebasing and force-pushing in preparation for merging.


Don't depend on lager for logging

Use the standard Logger on Erlang/OTP 21+, and the standard error logger on older OTP versions.  The problem with lager is that it messes with the standard Logger, which I think shouldn't be done from library applications, as that can easily break the main application's logging setup.  (Also, lager pulls in quite a few dependencies, which seems a bit excessive just for talking UDP to InfluxDB.)
Note that with this PR, debug logging will require Erlang/OTP 21+.  Also, on 21+, Module:Line information is no longer included with log messages, as such things should be left to the main application as well, IMO.
Many thanks to @pvJ2FLc2 for testing this PR.

TIL about the standard OTP Logger 🙂
Thanks!

Released in 1.1.0.

Thanks a lot for merging! :smile:

Released in 1.1.0.

Yay, thanks for that as well.  Seems there's no tag yet, could you push one?


[Feature] Automatic light/dark theme based on system theme

I've run up a small instance for some users and the one "complaint" that I've had is that it's light or dark theme only. Modern websites and browsers can check for the system theme - would it be possible to do similar here?
I'm a little broken atm but will try to look at this in a few months (fingers crossed)

A stretch goal for this one would be the ability for users to toggle light/dark theme on a single click and for that to be saved, probably using a cookie but I don't want to lock that in as a mechanism. :)

Yeah, this would be doable. We could add an option for the -darkmode flag like auto and then use the @media (prefers-color-scheme: dark) media query to show the right theme.
If someone contributed this, I'd accept the change, but I likely won't have bandwidth to add this for a while.


[feature] Add shortcut commands for common targets

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Right now to run a build/lint/etc you have to type moon run <project>:build. While this isn't too verbose, we should also support shortcuts like moon build <project>, moon lint ..., moon format ..., etc.
Describe alternatives you've considered

Additional context

After thinking about this more, I might be against it. In the off chance that we want to support some form of "moon linting", or testing, then I would like to keep moon lint around.

How about making moon r as a alias of moon run?

@hustcer That will actually land in the next version.

This will most likely not happen, closing.


Make init fails

When I do make init I get the following error:
£ make init
opam switch create . 4.14.1 -y --deps-only
The following additional pinnings are required by melange-opam-template.~dev:
  - reason-react.dev at git+https://github.com/reasonml/reason-react.git#97d31755c8d24fab13d6b60a3980505c917c1244
Pin and install them? [Y/n] y
Package reason-react does not exist, create as a NEW package? [Y/n] y
[reason-react.dev] synchronised (no changes)
reason-react is now pinned to git+https://github.com/reasonml/reason-react.git#97d31755c8d24fab13d6b60a3980505c917c1244 (version dev)

<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><>  🐫
Switch invariant: ["ocaml-base-compiler" {= "4.14.1"} | "ocaml-system" {= "4.14.1"}]
[ERROR] Could not determine which packages to install for this switch:
  * Missing dependency:
    - dune >= 3.8
    no matching version

Switch initialisation failed: clean up? ('n' will leave the switch partially installed) [Y/n] y
make: *** [create-switch] Error 20

Could you try running opam update and then make init again?


Optimal control loss

Hi @ocots !
I modified the introduction and added a section about the 'PMP with loss control regions', as well as a presentation of the 'direct method'.
I believe the current version is ready to be merged with the main branch.

@AnasXbouali Pense à supprimer la branche une fois le merge fait. Clique sur "Delete branch" en bas, cf image.


Post slack messages "as user"

Pass the "as_user" parameter to the underlying Slack API.  This allows the bot to show up as the named bot instead of as just bot.

In the picture the 8:15 message has the as_user change.

merged; thanks @davedash!

Thanks @bcicen .  Can you let me know when you post an update to pypi?  Cheers,

@davedash sure, published to pypi in v0.4

Thanks!
On Thu, Nov 2, 2017 at 5:29 PM bradley<EMAIL_ADDRESS>wrote:

@davedash https://github.com/davedash sure, published to pypi in v0.4
https://pypi.python.org/pypi/slack-progress/0.4
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bcicen/slack-progress/pull/2#issuecomment-341597100,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADoaTQR7gCPworFgCD6z-gjBZahz-V5ks5syl5lgaJpZM4QOWrX
.


Update to hide the 1.10 material

@thaJeztah
Signed-off-by: Mary Anthony<EMAIL_ADDRESS>

This change is to temporarily hide the 1.10 / v1.22 API docs, so that https://github.com/docker/docker/pull/17583 can be cherry picked into the release branch, without making it show up API docs for 1.10

LGTM

I didn't need this commit, since I had to resolve conflicts manually and had already removed 1.10

@tiborvass cool! I wanted to prevent accidental slip ups, hence this PR.
Will create a revert PR, so that master includes 1.10 again


Automated cherry pick of #10451: fix: add qcloud get tags and remove unused interface

Cherry pick of #10451 on release/3.7.
#10451: fix: add qcloud get tags and remove unused interface

Codecov Report

Merging #10472 (cc8a400) into release/3.7 (0ff3997) will increase coverage by 1.90%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.7   #10472       +/-   ##
================================================
+ Coverage         5.98%    7.88%    +1.90%
================================================
  Files              848      110      -738
  Lines           131795    13360   -118435
================================================
- Hits              7887     1054     -6833
+ Misses          123206    12186   -111020
+ Partials           702      120      -582

Flag
Coverage Δ

aFlag
7.88% <0.00%> (+1.90%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/auth_totp.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/idp.go
1.84% <0.00%> (ø)

pkg/apigateway/handler/misc.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/resource.go
0.00% <0.00%> (ø)

pkg/util/imagetools/imagetools.go
40.50% <0.00%> (-2.74%)
:arrow_down:

pkg/monitor/alerting/eval_context.go
34.82% <0.00%> (-2.18%)
:arrow_down:

pkg/hostman/diskutils/nbd/lvmutils.go
4.70% <0.00%> (-0.24%)
:arrow_down:

pkg/monitor/alerting/rule.go
1.78% <0.00%> (-0.09%)
:arrow_down:

pkg/util/sysutils/kvm.go
2.91% <0.00%> (-0.06%)
:arrow_down:

... and 680 more

Continue to review full report at Codecov.

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


Help menu

Display hotkeys & keyboard configuration in the menu would be nice.
And eventually, customize the commands too.

Like said in Slack, why not display it as an overlay when starting the game the first time instead? I'm not sure many people check help menus...

I agree with the the overlay at the start of the game too.
Yet, I thought we could also make a customize menu in the "Options" menu if some commands seem to be too much an inconvenience for some users.

Oh yes, indeed we should have a menu for customizing key mappings. Like all games do. Including the original version of LBA2. Actually, I opened an issue for that before: #48.

While adding any new option item, please be aware we may not have a translation in the original HQR files.
Those will need to be included in a separate file.

I made a help button to show the key mappings.
Closing this for now (there's that issue for configuring key mappings: https://github.com/agrande/lba2remake/issues/48)


"Show used" toggle button everytime is on

Hello team,
I don't know if this is normal behaviour but when I turn off the toggle button "show used" under the section "Your wallet addresses" > "Receiving addresses" of my Windows Daedalus Wallet (ver. 3.2.0), the next time when I start the wallet app it's still active. And this is every time. Could we change the logic so that once it's selected to be turned off to stay that way?

Hi @haripetrov!
This behavior is per design.
We will discuss this on our usual UI/UX design calls and get back to you.
Thanks for the feedback!

Thank you @nikolaglumac!
There is another example which can be useful regarding this setting. Bittrex global are having this toggle button:

Once you activate it every time when you login it's the same view which is very convenient.

This has been implemented and released in the scope of Daedalus Mainnet 4.0.3: https://github.com/input-output-hk/daedalus/releases/tag/4.0.3
Thanks for the patience 🙏


MobileNet Backend

Starting with the mobilenet backend and pertained weights, it errors with:
Loading pre-trained weights in ./backend_weights/mobilenet_backend.h5
Traceback (most recent call last):
  File "train.py", line 138, in <module>
    _main_(_args)
  File "train.py", line 107, in _main_
    yolo.load_weights(config['train']['pretrained_weights'])
  File "/Users/adammenges/Development/notebooks/boundingBoxSpeedTest/keras_yolo2/keras_yolov2/frontend.py", line 77, in load_weights
    self._model.load_weights(weight_path)
  File "/usr/local/lib/python3.7/site-packages/keras/engine/network.py", line 1166, in load_weights
    f, self.layers, reshape=reshape)
  File "/usr/local/lib/python3.7/site-packages/keras/engine/saving.py", line 1030, in load_weights_from_hdf5_group
    str(len(filtered_layers)) + ' layers.')
ValueError: You are trying to load a weight file containing 54 layers into a model with 2 layers.

Config:
{
  "model": {
    "backend": "MobileNet",
    "input_size_w": 160,
    "input_size_h": 160,
    "gray_mode": false,
    "anchors": [
      9.53758,
      11.73922,
      12.46069,
      18.66056,
      14.55546,
      26.65779,
      20.15099,
      26.32192,
      27.16661,
      27.60551
    ],
    "max_box_per_image": 10,
    "labels": ["raccoon"]
  },

  "parser_annotation_type": "xml",

  "train": {
    "train_csv_file": "",
    "train_csv_base_path": "",
    "train_image_folder": "/Users/adammenges/Development/notebooks/boundingBoxSpeedTest/raccoon_dataset/images-train/",
    "train_annot_folder": "/Users/adammenges/Development/notebooks/boundingBoxSpeedTest/raccoon_dataset/annotations-train/",

    "callback": null,
    "train_times": 20,
    "pretrained_weights": "./backend_weights/mobilenet_backend.h5",
    "batch_size": 16,
    "learning_rate": 1e-4,
    "nb_epochs": 50,
    "warmup_epochs": 3,

    "workers": 3,
    "max_queue_size": 8,
    "early_stop": true,
    "tensorboard_log_dir": "./logsMobileNet/example",

    "object_scale": 5.0,
    "no_object_scale": 1.0,
    "coord_scale": 1.0,
    "class_scale": 1.0,

    "saved_weights_name": "./racconMobileNet.h5",
    "debug": true
  },

  "valid": {
    "iou_threshold": 0.7,
    "score_threshold": 0.5,
    "valid_csv_file": "",
    "valid_csv_base_path": "",
    "valid_image_folder": "/Users/adammenges/Development/notebooks/boundingBoxSpeedTest/raccoon_dataset/images-test",
    "valid_annot_folder": "/Users/adammenges/Development/notebooks/boundingBoxSpeedTest/raccoon_dataset/annotations-test",
    "valid_times": 1
  },

  "backup": {
    "create_backup": true,
    "redirect_model": true,
    "backup_path": "../backupMobileNet",
    "backup_prefix": "MobileNet_VOC"
  }
}

the problem is that you are trying to load the backend weigths into whole model, it is not possible

Apologies, I don't quite understand. The backend_weights there are the pertained weights I downloaded from the repo. I put them in backend_weights folder after trying them at the root, with the same error. Are you saying there's something wrong in my config file?

just put the weights file in your root folder and don't specify any weights in the config file, the pre trained weights for the backend will be loaded automatically

When I do that I see:
⇒   python3 train.py -c config.json
Using TensorFlow backend.
2019-06-18 12:17:43.120868: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 AVX512F FMA
Insert a comment about this training: test3

Redirecting ./racconSqueezeNet.h5 file name to ../backupSqueezeNet/SqueezeNet_VOC_20190618121743/SqueezeNet_VOC_20190618121743.h5.
Redirecting ./logsSqueezeNet/example tensorborad log to ../backupSqueezeNet/SqueezeNet_VOC_20190618121743/logs.
100%|██████████████████████████████████████████████████████████████████████████████████████████████| 190/190 [00:00<00:00, 6296.01it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 7434.07it/s]
Seen labels:	 {'raccoon': 207}
Given labels:	 ['raccoon']
Overlap labels:	 {'raccoon'}
WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Unable to load backend weights. Using a fresh model

Specifically: Unable to load backend weights. Using a fresh model
Does that just mean it's the first training run, so there's no previous model to load, but that the pertained weights have been picked up? I don't see anything in the logs about pertained weights.

In this yolo we have two types of pre treined weights, the first one is the weights for the backend model, suck as Full Yolo, Mobilenet and so on, the second case is the weights for the whole model, where you can set into the config file, the whole model weights overwrite the backend weights when it is loaded.

create a folder called "backend_weights" inside your root directory and put the mobile weights there.
you can see it here.

Ah, sounds good. Thanks!


Add ICSI to README.md

Key Features of ICP Sub-Account Indexer

Subaccount Management: Effortlessly add and manage subaccounts with SHA224 encryption for unique IDs.
Transaction Tracking: Efficiently list and clear transactions to keep track of all subaccount activities.
Fund Sweeping: Automatically sweep funds from subaccounts to a main user vault, simplifying fund consolidation.

 Users have full control over their data and assets in a transparent and auditable environment.
Technical Overview

Languages: Rust
Canister Methods: Add subaccounts, list transactions, clear transactions, sweep funds, issue refunds, retrieve canister status

Current Status
We have successfully tested the core functionalities of the ICP Sub-Account Indexer. Developers are invited to engage with the tool, test its capabilities, and provide feedback to help refine and enhance its functionality.
Our project is fully open-source, and you can visit our repository at GitHub.
To see how it works, check out our Live Demo Video!
We've also made a post in the DFINITY forum.

Dear @agustinustheo,
In order to potentially merge your code in this open-source repository and therefore proceed with your contribution, we need to have your approval on DFINITY's CLA.
If you decide to agree with it, please visit this issue and read the instructions there. Once you have signed it, re-trigger the workflow on this PR to see if your code can be merged.
— The DFINITY Foundation

Is there anything else I need to do to get this PR merged? @flyq


Feature 184: Word index optimizations

Changes the appearence of each word (remove box, grid, li elements)
Adds simple responsiveness
Moves the article to the end of the word Adler, der instead of der Adler
Adds the word type after each word
Adds word variants
Removes pagination

Not yet implemented due to open questions:

Changing the letter navigation, see https://github.com/wort-schule/wort.schule/issues/184#issuecomment-1445149340

Screenshots
Desktop

Smartphone

@phortx Please assign a reviewer in case or when this code is ready for production.

Just out of curiosity where is the "Artikel"?

Just out of curiosity where is the "Artikel"?

My bad. I forgot to add it to my code examples.
@phortx Please add the article where possible after the word. e.g. "Feuerwehr, die"

Just out of curiosity where is the "Artikel"?

Most of the words don't have an article in my example data. But when an article is set, it's displayed after the word like Tafel, die

Most of the words don't have an article in my example data.

Do you want me to email you a SQL dump of the production database (without the user data)?

That would be really helpful! Thanks

That would be really helpful! Thanks

Done.


[Event Request] codeunit 12 "Gen. Jnl.-Post Line"

Please add include sender to event OnUnapplyVendLedgEntryOnAfterPostUnapply
[IntegrationEvent(true, false)]
    local procedure OnUnapplyVendLedgEntryOnAfterPostUnapply(var GenJournalLine: Record "Gen. Journal Line"; var DetailedVendorLedgEntry: Record "Detailed Vendor Ledg. Entry"; var DetailedVendorLedgEntry2: Record "Detailed Vendor Ledg. Entry")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 40862.


Fixed un-localized datetime values causing warnings when running tests.

Slight refactoring of DownloadManager to handle this.

:+1:

Missing pytz in requirements.txt

:+1:


Accessing params in a widget's viewModel

Describe the bug
I built a widget, called OrbitWidget that also has a viewModel called OrbitViewModel. Since I didn’t want a route generated for this widget, I didn’t use stacked create view …, I just did a File New and extended the OrbitWidget with StackedView<OrbitalViewModel>.
I’m embedding the OrbitWidget into my SampleView.  When a user navigates to the SampleView, the SampleViewModel gets graph data from our API which, in turn, gets fed as a parameter into the OrbitWidget(graphs: graphs). But, I’m having a hard time accessing the graph data from my OrbitViewModel.  Can anyone tell me how to go about this?  Here is what I have…
SampleView…
class SampleView extends StackedView<SampleViewModel> {
  const SampleView({
    Key? key,
  }) : super(key: key);

  @override
  Widget builder(
    BuildContext context,
    SampleViewModel viewModel,
    Widget? child,
  ) {
    return OrbitWidget(graphs: viewModel.graphs);
  }
}

SampleViewModel…
class SampleViewModel extends BaseViewModel {
  List<Graph> graphs = await getGraphDataFromApi();
}

OrbitWidget…
class OrbitWidget extends StackedView<OrbitViewModel> {
  final List<Graph> graphs;
  const OrbitWidget({
    Key? key,
    required this.graphs,
  }) : super(key: key);

  @override
  Widget builder(
    BuildContext context,
    OrbitViewModel viewModel,
    Widget? child,
  ) {
    print('OrbitWidget, graphs: ${graphs.length}'); // prints: OrbitWidget, graphs: 1
    return DisplayGraphs(viewModel.graphs);
  }

 @override
  OrbitViewModel viewModelBuilder(
    BuildContext context,
  ) =>
      // add graphs as a param to viewModel
      OrbitViewModel(graphs: graphs);
}

OrbitViewModel…the viewModel has several functions which manipulates the data which is why I need access to it
class OrbitViewModel extends BaseViewModel {
  // param
  List<Graph> graphs;
  OrbitViewModel({required this.graphs}) {
    logger.i('OrbitViewModel, graphs: ${graphs.length}'); // prints: OrbitViewModel, graphs: 0
  }
}

To reproduce

Expected behavior
No response
Screenshots
No response
Additional Context
No response

I fixed this by adding a key to OrbitalWidget, like so...
class SampleView extends StackedView<SampleViewModel> {
  const SampleView({
    Key? key,
  }) : super(key: key);

  @override
  Widget builder(
    BuildContext context,
    SampleViewModel viewModel,
    Widget? child,
  ) {
    return OrbitWidget(
      graphs: viewModel.graphs,
      key: GlobalKey(),
   );
  }
}

Hi @pieterbergmans , how are you?
class SampleViewModel extends BaseViewModel {
  List<Graph> graphs = await getGraphDataFromApi();
}

What is that ☝? You can't use a code like that. The await expression can only be used in an async function.
I would suggest to do something like below:
List<Graph> _graphs;
List<Graph> get graphs => _graphs;

Future<void> initialize() async {
  _graphs = await getGraphDataFromApi();
}

Then, on the widget you access the graphs with viewModel.graphs but once is fetched, the Future has to be executed first for the graphs to be available, if not you only have a Future of something not the actual value.

@pieterbergmans Can this be closed?

@sebastianbuechler - yes, it can.


cli: add 'search' command

add search command to search experiments

So is this about creating another file called cmd_search.py? And where from are we searching really?

Sorry @ankan17 this is actually a duplicate issue for #70 . I'll close this and move the discussion to that issue


Add azure-eventgrid track1 package versions from regression exclusion

Changes:

Add azure-eventgrid versions that are excluded from regression test
Replace list of all excluded versions with highest invalid version and exclude that version and below.

/azp run python - core

@xiangyan99: fyi. This should resolve regression failure for core.


Internal use of JsonKeysetWriter, which is deprecated

At _json_proto_keyset_format.py:83 (in my 1.10 Python Tink, and also in your repository in HEAD), you use JsonKeysetWriter, which is deprecated.
I don't think a library should be printing out deprecation warnings about internal usage of deprecated functions, since users have no way of fixing it.
Also, it's a bit worrying: is the deprecation something I, as a user, need to be concerned about?
I think either fixing the use (using the replacement suggested in the JsonKeysetWriter class), or simply removing the warning would be a good fix for this issue.

I agree, I removed the warning.

Here: https://github.com/tink-crypto/tink-py/commit/71752eaf810e55d286114d437ca556d378d1a6d6


chore: schedule daily generateResources action

Follow-up to https://github.com/pajlads/DinkPlugin/pull/425#discussion_r1495015187

some docs to check whether the syntax is correct https://github.com/peter-evans/create-pull-request/blob/main/docs/examples.md#use-case-create-a-pull-request-to-update-x-periodically


qlog: remove derived deserialize

Previously we derived qlog serde deserialize code
and this was not heavily tested. In some offline
tests, I found that the deserializer often failed
to construct the correct object, especially for
EventData which contains the most useful data.
A quick analysis puts this a few factors:

EventData is an enum that is untagged, which
means serde has to do some "duck typing".
qlog is very flexible and allows omission of
many fields, that makes guessing harder.
EventData variants can be quite similar in
structure and serde geusses in first-to-last
order. This causes, for example,
EventData::PacketSent to be deserialized as
EventData::PacketReceived. Probably the worst
possible aliasing.

The deserialization code ends up quite large,
I counted ~12k LOC jus for EventData. Until a
robust solution can be found, there seems no
benefit in keeping this.
cc: @agrover

:+1:


[WIP - Do not merge]: Practitioner Guides

Starting with the initial repo framework and readme for the practitioner guides.
I'll add additional commits after feedback and updates to the 3 guides that we'll launch with, but doing this in chunks will make it easier to check the formatting and overall look of the guides.

These need approval from @ElizabethN before merging.

Super happy to see these being created! On behalf of the community, thank you for all your hard work on these @geekygirldawn! 🌟 🚀


Links to sections

Allow users to share course sections as URLs. When these links are clicked, the user is automatically scrolled down to the appropriate section on the course page


Two warnings about command deprecated

Warning: The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Warning: The save-state command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

oh wow, thank you i didnt see this ill check it out /cc @LaurentDardenne

I think the modifications are minimal, they depend on a possible modification of this.
I don't know if this will also change.
I will test this soon

In the 'action.yml' file we must modify three lines including the version number of 'actions/cache' :
        #Write-Output "::set-output name=keygen::$($ModulesCache.Key)"
        echo "{keygen}={$($ModulesCache.Key)}" >> $GITHUB_OUTPUT

        $Paths=@(New-ModuleSavePath $ModulesCache.ModuleCacheInformations)

        #Write-Output "::set-output name=modulepath::$(ConvertTo-YamlLineBreak $Paths)"
        echo "{modulepath}={$(ConvertTo-YamlLineBreak $Paths)}" >> $GITHUB_OUTPUT
        $null = $ModulesCache | Export-CliXml -Path (Join-Path $home -ChildPath $CacheFileName)

    - name: Run module cacher action
      id: cacher
      uses<EMAIL_ADDRESS>
Then in the workflows, you have to change the 'actions/checkout' version to v2.5.0 (following a NodeJS version change), but I haven't yet understood why there are two active versions in the releases (V2 .5.0 and v3.1.0)

Hi guys, when will this be fixed (along with node 12)? Many thanks!

I'm currently knee deep in huge library changes on another one of my modules and probably won't be able to get around to it for 1-2 weeks but I am open to a PR.
Also, please use "everyone" in lieu of "guys". Merci 🫶

JK! I have to add a dependency so I'm going to update this one too if the tests pass after making @LaurentDardenne's suggested changes

I sincerely hope the laugh response wasn't because I asked you not to address me as a guy.
I have updated the modules and all the tests pass. Turns out, I needed to use $env:GITHUB_OUTPUT instead of $GITHUB_OUTPUT. I'll be updating GitHub's documentation as well.

Thanks very much for the work @potatoqualitee! And I apologize for the word... As a non-native English speaker, I'm thinking 'guys' is gender-neutral until I googled it 😭 . Since in my native language a masculine noun could be used to refer men, women or any mix-group, I didn't pay much attention to gender neutrality of words or sentences. Very sorry and thanks again!

Thank you for the response, @niheaven 😊


Use the new functional bean API when available on Spring 5

https://jira.spring.io/browse/SPR-14832

Draft support introduced via https://github.com/mix-it/mixit/commit/8e79022e3f2faedb7f34e67c4332104a56854569


feat: support setting (non-essential) vue-meta options by user

Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[x] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

With v2.3 vue-meta will introduce more non-essential plugin options. These options can also be set runtime, but it'd be nice if they could also just be set from the nuxt.config.
Adding the options to the SPA renderer doesnt have any useful effect for the moment, except maybe for setting a custom ssrAppId (which is ill-advised). So thats mostly included to be complete and maybe future vue-meta options.
Checklist:

[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[x] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests are passing.

Codecov Report

Merging #6432 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #6432   +/-   ##
=======================================
  Coverage   95.61%   95.61%
=======================================
  Files          79       79
  Lines        2689     2689
  Branches      694      694
=======================================
  Hits         2571     2571
  Misses        101      101
  Partials       17       17

Flag
Coverage Δ

#e2e
100% <ø> (ø)
:arrow_up:

#fixtures
50.79% <ø> (ø)
:arrow_up:

#unit
92.26% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

packages/config/src/config/_app.js
100% <ø> (ø)
:arrow_up:

packages/vue-renderer/src/renderers/spa.js
87.87% <ø> (ø)
:arrow_up:

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 3b9eddc...dca6d79. Read the comment docs.


Quick start

@thierryk I'll merge it, you can change if you want from master later.

Thanks @renatoi


Hope to be able to support WeCom

In China, wecom is our extensive use of organizational communication tools, hope to be able to support wecom robot, if you can, I will submit a pull request, our team is very need this ability.
Here are some wecom information：
website：https://work.weixin.qq.com/

Hey @DomineCore, unfortunately I don't think we'll be able to support WeCom anytime soon. However, I've just created an issue which might be something you'd like to keep an eye on: https://github.com/kubeshop/botkube/issues/1293
Cheers!


feat: update cdk-data-availability to 0.0.10

Description
Update cdk-data-availability to 0.0.10 with new contracts updated

Thanks for this. I've included the update to DAC 0.0.10 in https://github.com/0xPolygon/kurtosis-cdk/pull/266 once we get that merged you should be all set.

#266 has been merged to main


How can i Run it to Vb.NET & Net.Framework 4.8?

I have Problem to run the example to Vb.Net & Net.Framework 4.8
because .NET Framework 4.8 does not support asynchronous streams (IAsyncEnumerable). This feature is available starting from .NET Core 3.0 and later. In .NET Framework 4.8, you have to work around this limitation by using other asynchronous patterns.
is there an idea?
using var whisperFactory = WhisperFactory.FromPath("ggml-base.bin");
using var processor = whisperFactory.CreateBuilder()
    .WithLanguage("auto")
    .Build();

using var fileStream = File.OpenRead(wavFileName);

await foreach(var result in processor.ProcessAsync(fileStream))
{
    Console.WriteLine($"{result.Start}->{result.End}: {result.Text}");
}

Hello @andraschris ,
You should be able to install https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces/8.0.0 that allows IAsyncEnumerable to be used with NetFramework 4.8.
In that case, you'll use netstandard version (as netframework is not direclty in the targets of Whisper.net) so AsyncInterfaces package is a direct dependency of Whisper.net: https://github.com/sandrohanea/whisper.net/blob/main/Whisper.net/Whisper.net.csproj#L34

thank you i have allready installed but i have problem in my VB.net code. Is there an example in VB. net ?

        Dim whisperFactory = Whisper.net.WhisperFactory.FromPath("C:\VS2019\MimeKitEmail_Test\WhisperBins\ggml-base.bin")
        Dim processor = whisperFactory.CreateBuilder()
        processor.WithLanguage("auto")
        processor.Build()
        Dim FileStream = File.OpenRead("C:\1Temp\whisper\AudioGr1.m4a")
        ' Assuming ProcessAsync returns a list of tasks
        Dim results As List(Of Result) = Await processor.ProcessAsync(FileStream)
        For Each result In results
            Console.WriteLine($"{result.Start}->{result.[End]}: {result.Text}")
        Next
        ' Assuming ProcessAsync returns IEnumerable(Of Task(Of Result))
        Dim tasks As IEnumerable(Of Task(Of Result)) = processor.ProcessAsync(FileStream)
        For Each task In tasks
            Dim result As Result = Await task
            Console.WriteLine($"{result.Start}->{result.[End]}: {result.Text}")
        Next

I never used vb.net with IAsyncEnumerable but I can say the following that might be helpful:
IAsyncEnumerable is not an enumerable nor list of tasks and cannot be casted to one.
IAsyncEnumerable have a method called GetAsyncEnumerator and if the language doesn't have support for await foreach, you'll need to consumer it yourself as follows:
This is C#, but you can probably transform it to VB.net:

Hope this helps!

ok thank gou. i will try it.
but

there are strange things like "(ProccessAsync is not member of WhisperProccessorBuilder" while the variable is!!!

Is there a solution to run a command line exe (.net core in c#) from my vb.net code and get the result?

You will need to store the example processor and not call ProcessAsync on the builder itself.
processor.Build() is returning the processor, but doesn't have any effect on the builder
In your code, the
Dim processor As WhisperProcessorBuilder = ...
Should be:
Dim processorBuilder As WhisperProcessorBuilder  = ...
...
Dim processor as WhisperProcessor = processor.Build()
...
Dim sm = processor.ProcessAsync(FileStream)


NotOpenSSLWarning

I got this warning :
/Users/hoax/Library/Python/3.9/lib/python/site-packages/urllib3/init.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020

Python version?

Python version?

3.13

I know changes has been made but I don't remember in what version. I have this project running smoothly on 3.9.11.


Incorrect/ missing contribution information in README

Hi there,
I was looking to contribute to #17579 I've started reading the README file to see what the correct steps where for contribution and other information.  While reading it looks to me that the is missing or incorrect information in the  testing chapter of the README file. It looks like there have been changes around the test and these steps are not valid anymore.
In older versions, the test script run  node ./bin/devkit-admin test, is this still the approach we should take?
Thanks.
PS I hope this is the correct issue template for these kinds of issues.

Hi there,
You are correct the readme is outdated.
To test a single package
yarn bazel test //packages/schematics/update:update_test
yarn bazel test //packages/schematics/angular:no_typescript_runtime_dep_test
yarn bazel test //packages/schematics/angular:angular_test
yarn bazel test //packages/ngtools/webpack:webpack_test
yarn bazel test //packages/angular_devkit/schematics_cli:schematics_cli_test
yarn bazel test //packages/angular_devkit/schematics/tools:tools_test
yarn bazel test //packages/angular_devkit/schematics/tasks:tasks_test
yarn bazel test //packages/angular_devkit/schematics:schematics_test
yarn bazel test //packages/angular_devkit/core/node:node_test
yarn bazel test //packages/angular_devkit/core:core_test
yarn bazel test //packages/angular_devkit/build_webpack:build_webpack_test
yarn bazel test //packages/angular_devkit/build_optimizer:build_optimizer_test
yarn bazel test //packages/angular_devkit/build_ng_packagr:build_ng_packagr_ve_test
yarn bazel test //packages/angular_devkit/build_ng_packagr:build_ng_packagr_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_tslint_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_server_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_protractor_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_ng-packagr_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_karma_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_extract-i18n_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_dev-server_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_browser_ve_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_browser_test
yarn bazel test //packages/angular_devkit/build_angular:build_angular_app-shell_test
yarn bazel test //packages/angular_devkit/benchmark:benchmark_test
yarn bazel test //packages/angular_devkit/architect:architect_test
yarn bazel test //packages/angular/pwa:pwa_test
yarn bazel test //packages/angular/cli:angular-cli_test

Test all packages
yarn bazel test packages/...

Thanks for the quick response should I update the README?

A PR would be awesome 😁.
\I'd suggest thought that we don't add all the test targets in the read me since these change overtime.
I'd suggest to add an example, something along:

To test a single package use the full Bazel target example:

yarn bazel test //packages/schematics/angular:angular_test

For a a complete list of test targets use the below Bazel query:

yarn bazel query "tests(//packages/...)"

Also it would be great to add a note along:

You can find more info about debugging tests with Bazel in the docs.


Reuse roles from galaxy

golang role
docker-storage-setup role

Fixes #1, fixes #2 and fixes #3

@lukas-bednar Can you please review? Will appreciate any comments :smile:


React native package

Created to collaborate on the dedicated package for react native.
#23

Closing as there were no updates. We plan react native support in near future


docs: pip installation instructions

Clarified pip install instructions
Removed conda env + install instructions for that
Checked that pytest and notebooks run as expected after pip install

Unlcear why I am getting a conflict from the removed environment.

Unclear why I am getting a conflict from the removed environment.
EDIT: I wasn't on newest main after all. I pull --rebased the newest main, and then did a git rebase main in my branch and resolved the conflict. I now notice that the git log --graph is branching after all. What did I do wrong?

Not 100% sure but it looks like you put at least one merge on your branch (4b26896). We have a clean linear history until your branch, and then some doubled commits and merge on yours. For speed, since it's just erasing one file and rewriting a markdown, I would open a new branch off the updated main (make sure to git pull on the main) with these changes, because unwinding all your work with the merge and whatnot may take longer.

Recreated with linear history in #31


Fix missing types

Linked to this issue https://github.com/moleculerjs/moleculer-channels/issues/53

The problem is that the d.ts files are generated from the source code (jsdoc). So you can't modify the d.ts files directly. We should fix them in jsdoc.
https://github.com/moleculerjs/moleculer-channels/blob/2ddbb9d3ce69e769c0f81d96a2b60193215f0397/package.json#L9

You are right I just did a new commit to fix it within the JS code

This PR contains many non-relevant changes. Please create a new one only with the relevant changes.


Persistent storage: help wanted

Q
A

Bug report?
[ NO]

Feature request?
[NO ]

Support request?
[ YES]

Hello,
What/where are data writen by customers into my server?
Just the images in /web/media/cache?
Thank you :)
N.B. All data written in my db is ok, it's not about persistent storage

I use PAAS like dokku (similar to heroku).
With this kind of deplyment you need to configure the persistent storage
(https://www.quora.com/What-is-persistent-storage)

There is others place where data has to write from the website to the "code":
/app/cache
/app/logs
/web/media
/web/uploads
others?
When the offerer uploads some photos. Where the photos are stocks? what happen?
Could you help me please?
Thank you

Hello,

app/Resources/translations can be updated from admin
mongodb and sql database


(DNM) test change for build trigger

Closes
✅ Pull Request Checklist:

[ ] Included link to corresponding React Spectrum GitHub Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[ ] Updated documentation (if it already exists for this component).
[ ] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

GET_BUILD

GET_BUILD

GET_BUILD

GET_BUILD

GET_BUILD

GET_BUILD


Cancel process need execute cancel command before kill build process

So that user have a chance to gracefully stop the build process

@wpc do we run all parent commands' cancel tasks before killing the exec command sub process too?

yes

without killing subprocess, how could a custom clean-up script really clean-up the working directory? Because subprocess will continue to output data or hold file handler when you tried to clean up something in directory.
and when we say "gracefully stop the build process", is there really a "gracefully stop" for most of builds?


Release 0.0.14

Hello, just in case You'd be interested in some minor improvements. Best regards

Nevermind. Thank You very much.


[FEAT] Typescript definitions file

Is your feature request related to a problem? Please describe.
Installing @gympass/yoga on a cra react ts project gives the following message:
Could not find a declaration file for module '@gympass/yoga'. <EMAIL_ADDRESS>implicitly has an 'any' type.
  Try `npm i --save-dev @types/gympass__yoga` if it exists or add a new declaration (.d.ts) file containing `declare module '@gympass/yoga';`ts(7016)`

Describe the solution you'd like
Create a typescript definition file and push it to @types/gympass__yoga, this will assist with development on react js projects as well.
Describe alternatives you've considered
For now the alternative solution can be used to remove the warning, create a d.ts file and add declare module '@gympass/yoga'; to it. But autoimport suggestions on components are not available.

Hey @scrous,
Hope you're doing well! 🌟
Just wanted to give you a heads-up that it seems like this issue has taken a bit of a nap and gone MIA. 😴 Since we're doing some cleanup, we're going to close it for now.
No worries though! If you think there's still life in it or if you've got more info to share, feel free to wake it up by reopening. Your input is always appreciated!


WBC 1186

Coverage remained the same at 100.0% when pulling 6c337c31103e663defc8f726c3745b70b85355d6 on WBC-1186 into bd2715aa90262cbe410f27f3513b26c616cf7b61 on master.


BAEL-47433 - add links to github-baeldung articles

added link back to article
[skip ci]

test this please

test this please


Android: Specify locale to toUpperCase call

Calls to toUpperCase uses device locale unless locale is specified.
This is causing some trouble on eg. Turkish devices, where location is upper-cased to LOCATİON causing a crash:
LOCATİON is not a constant in com.joshblour.reactnativepermissions.ReactNativePermissionsModule$RNType
This PR solves the issue by specifying English as locale.

thanks!!


Add PyQt5 Touch GUI

I re-started the efforts for a Touchscreen GUI. Instead Python TKInter I am now using PyQt5.
Still work in progress.. issue, feedback and ideas welcome.. :-D

What would be the process to test this?
I followed this to check out your branch on RPi: https://github.com/rootzoll/raspiblitz/blob/master/FAQ.md#how-can-i-sync-a-branch-of-my-forked-with-my-local-raspiblitz
Then reinstalled the touchscreen from the SERVICE menu.
After a restart got to the Raspbian desktop welcome screen and just a black screen with a pointer after that.

Hm.. I have not test the full 'build-a-new-sd-card' process for this PR. So I might have missed a step.
Can you ssh in a run sudo -u pi DISPLAY=:0.0 /usr/bin/python3 /home/admin/gui/main.py

ok, needed to do:
mkdir gui
udo -u admin cp -r -f /home/admin/raspiblitz/home.admin/gui/*.* /home/admin/gui

This is needed in XXsyncScripts.sh and build_sdcard.sh when ready to be deployed.

now getting:
$ sudo -u pi DISPLAY=:0.0 /usr/bin/python3 /home/admin/gui/main.py
Traceback (most recent call last):
  File "/usr/lib/python3.7/logging/config.py", line 562, in configure
    handler = self.configure_handler(handlers[name])
  File "/usr/lib/python3.7/logging/config.py", line 735, in configure_handler
    result = factory(**kwargs)
  File "/usr/lib/python3.7/logging/handlers.py", line 147, in __init__
    BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
  File "/usr/lib/python3.7/logging/handlers.py", line 54, in __init__
    logging.FileHandler.__init__(self, filename, mode, encoding, delay)
  File "/usr/lib/python3.7/logging/__init__.py", line 1092, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.7/logging/__init__.py", line 1121, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/home/admin/00infoLCDQt.log'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/admin/gui/main.py", line 274, in <module>
    main()
  File "/home/admin/gui/main.py", line 260, in main
    setup_logging()
  File "/home/admin/gui/main.py", line 89, in setup_logging
    logging.config.dictConfig(config)
  File "/usr/lib/python3.7/logging/config.py", line 799, in dictConfig
    dictConfigClass(config).configure()
  File "/usr/lib/python3.7/logging/config.py", line 570, in configure
    '%r' % name) from e
ValueError: Unable to configure handler 'file_handler'

Will continue to test on the weekend.

sudo rm home/admin/00infoLCDQt.log
That file was generated by the test and is not writable by pi I assume.

what helped is:
sudo chown pi home/admin/00infoLCDQt.log

Now it is working fantastic and looks really cool, I love it!
Tested the buttons:
Info - works
Node - Zeus decoded it successfully
Invoice - paid with Wallet of Satoshi and decoded successfully with Zeus!
Suggestion here: the invoice should provide feedback when it is paid, a single message would be enough and it could loop check in the background something like:
lncli --chain=bitcoin --network=mainnet lookupinvoice <invoiceID>
(same as in the ssh menu)

I followed this to check out your branch on RPi...

I think that description is missing a step or two.

the invoice should provide feedback when it is paid

Good idea..!

This is needed in XXsyncScripts.sh and build_sdcard.sh when ready to be deployed.

I had added it to build_sdcard.sh but forgot it in XXsyncScripts.sh.

re the Off button:
was very happy to see the confirmation question after pressing.
It does not shut down the node only exits the GUI at present.
Debug output:
2019-10-12 08:54:32,701 - INFO - Starting 00infoLCDQt.py
libEGL warning: DRI2: failed to authenticate
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-pi'
DEBUG: B4: <sip.voidptr object at 0xb280ae90>
B4: pressed is: OK - quitting

I think a restart option would be useful too.

Oh...right.. Having it really shutdown is was a bit annoying during the development, and I forgot the change it... 😉
Adding a third option (Cancel, Shutdown, Restart) sounds like a good idea and shouldn't be too much work.

I think a restart option would be useful too.

done

the invoice should provide feedback when it is paid

done
:-D

Getting an errors since https://github.com/rootzoll/raspiblitz/pull/812/commits/29bff73046756d746777973076bd93a1f7ee6dc8:
$ sudo -u pi DISPLAY=:0.0 /usr/bin/python3 /home/admin/gui/main.py
Traceback (most recent call last):
  File "/home/admin/gui/main.py", line 22, in <module>
    from client import ReadOnlyStub, InvoiceStub
  File "/home/admin/gui/client.py", line 9, in <module>
    import grpc
ModuleNotFoundError: No module named 'grpc'

@openoms I spent a lot of time on this yesterday.. ;-)  Unfortunately there are also some bugs for which workarounds are needed.
I wanted to avoid two think in the Touchscreen code: 1) Python2 and 2) calling other shell scripts (with subprocess). Therefore I am now using the lnrpc gRPC binding provided by lnd.
There is currently something missing in the grpcio package version 1.24.1. For this the workaround is to preload a library: https://github.com/grpc/grpc/issues/20400 https://github.com/opencv/opencv/issues/15278
Additionally the grpc generation has an issue with Python3 relative/absolute imports.. :-/
So what is needed:
Install PyQt5 from debian packages
sudo apt-get install python3-pyqt5

Additional (global) Python packages
sudo -H pip3 install pyqtspinner qrcode inotify

Setup virtual Python3 environment (for grpc/lnrpc)
sudo -u admin bash -c "cd; virtualenv -p python3 --system-site-packages python3-env-lnd; source /home/admin/python3-env-lnd/bin/activate; pip install grpcio grpcio-tools googleapis-common-protos"

Build lnrpc bindings
rm /home/admin/config.scripts/lndlibs/rpc_pb2*
cd /home/admin/config.scripts/lndlibs
git clone https://github.com/googleapis/googleapis.git
cd /home/admin/config.scripts/
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 -m grpc_tools.protoc -I lndlibs --proto_path=lndlibs/googleapis:. --python_out=lndlibs --grpc_python_out=lndlibs lndlibs/rpc.proto

Fix lnrpc imports
sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/*.py

Copy latest ~/gui directory
Finally copy over the macaroons to a path where pi can read them (without the need for sudo)
sudo mkdir -p /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo chmod 700 /home/pi/.lnd/
sudo ln -s /home/admin/.lnd/tls.cert /home/pi/.lnd/
sudo cp /home/admin/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo cp /home/admin/.lnd/data/chain/bitcoin/mainnet/invoice.macaroon /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo chmod 600 /home/pi/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon
sudo chmod 600 /home/pi/.lnd/data/chain/bitcoin/mainnet/invoice.macaroon
sudo chown -R pi:pi /home/pi/.lnd/

Test-run from SSH
sudo -u pi DISPLAY=:0.0 LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 /home/admin/gui/main.py

Let me know what I forgot now.. :-D

now getting:
 $ sudo -u pi DISPLAY=:0.0 LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 /home/admin/gui/main.py
Traceback (most recent call last):
  File "/home/admin/gui/main.py", line 22, in <module>
    from client import ReadOnlyStub, InvoiceStub
  File "/home/admin/gui/client.py", line 13, in <module>
    from lndlibs import rpc_pb2 as ln
  File "/home/admin/config.scripts/lndlibs/rpc_pb2.py", line 6, in <module>
    from google.protobuf.internal import enum_type_wrapper
ModuleNotFoundError: No module named 'google'

Do we need to install this https://github.com/googleapis/googleapis.git after downloading?
These have been all satisfied before:

Install PyQt5 from debian packages
sudo apt-get install python3-pyqt5
Additional (global) Python packages
sudo -H pip3 install pyqtspinner qrcode inotify

Do we need to install this https://github.com/googleapis/googleapis.git after downloading?

Hm.. the git clone steps is needed for building the grpc bindings. But I would assume "google.protobuf.internal" is included in googleapis-common-protos which is installed after the virtualenv is setup....?! Can you check:
$ source /home/admin/python3-env-lnd/bin/activate
$ pip freeze  | grep -i goog
googleapis-common-protos==1.6.0

I am getting:
$ source /home/admin/python3-env-lnd/bin/activate
$ pip freeze  | grep -i goog
googleapis-common-protos==1.5.9

I have two separate systems that both do not have this issue... I don't believe this is the issue.. but please try to upgrade the google api: pip install -U googleapis-common-protos

Right, it is probably time for a clean SD for me. Also syncing a 2nd RPi to test. Will continue to report.

Works again with the fresh SD awesome! Waiting for a channel to test the invoice feedback.
Here are all the commands to test with a clean node (did not modify the instructions form above, just easier to paste):
# https://github.com/rootzoll/raspiblitz/blob/master/FAQ.md#how-can-i-sync-a-branch-of-my-forked-with-my-local-raspiblitz
cd raspiblitz/
git remote set-url origin https://github.com/frennkie/raspiblitz.git
git pull
/home/admin/XXsyncScripts.sh add-pyqt-gui
# again because the syncscript is updated too
/home/admin/XXsyncScripts.sh add-pyqt-gui

#as in https://github.com/rootzoll/raspiblitz/pull/812#issuecomment-541406172
sudo apt-get install python3-pyqt5
sudo -H pip3 install pyqtspinner qrcode inotify

sudo -u admin bash -c "cd; virtualenv -p python3 --system-site-packages python3-env-lnd; source /home/admin/python3-env-lnd/bin/activate; pip install grpcio grpcio-tools googleapis-common-protos"

rm /home/admin/config.scripts/lndlibs/rpc_pb2*
cd /home/admin/config.scripts/lndlibs
git clone https://github.com/googleapis/googleapis.git
cd /home/admin/config.scripts/
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 -m grpc_tools.protoc -I lndlibs --proto_path=lndlibs/googleapis:. --python_out=lndlibs --grpc_python_out=lndlibs lndlibs/rpc.proto

sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/*.py

sudo mkdir -p /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo chmod 700 /home/pi/.lnd/
sudo ln -s /home/admin/.lnd/tls.cert /home/pi/.lnd/
sudo cp /home/admin/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo cp /home/admin/.lnd/data/chain/bitcoin/mainnet/invoice.macaroon /home/pi/.lnd/data/chain/bitcoin/mainnet/
sudo chmod 600 /home/pi/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon
sudo chmod 600 /home/pi/.lnd/data/chain/bitcoin/mainnet/invoice.macaroon
sudo chown -R pi:pi /home/pi/.lnd/

Pure joy, it is working!

Everything is functional now, but the debug output is still complaining about the font:
$ sudo -u pi DISPLAY=:0.0 LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 /home/admin/gui/main.py
2019-10-14 06:46:06,495 - INFO - Starting main.py
libEGL warning: DRI2: failed to authenticate
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-pi'
2019-10-14 06:46:09,902 - INFO - starting config watcher
2019-10-14 06:46:10,286 - INFO - /usr/bin/xterm: cannot load font "-Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1"

Yes.. I know... I have been ignoring this up until now... Same for the authentication message.
But before we release it this should be fixed or hidden..

@openoms Can you make sure that you also ran these commands on your test rpi:
sudo sed -i -E 's/<weight>Normal</<weight>Bold</g' /etc/xdg/openbox/lxde-pi-rc.xml
sudo sed -i -E 's/<name>PibotoLt</<name>Arial</g' /etc/xdg/openbox/lxde-pi-rc.xml
sudo sed -i -E 's/window.active.title.bg.color: #87919B/window.active.title.bg.color: #000046/' /usr/share/themes/PiXflat/openbox-3/themerc
sudo sed -i -E 's/window.inactive.title.bg.color: #EEEFEE/window.inactive.title.bg.color: #000046/' /usr/share/themes/PiXflat/openbox-3/themerc

This is make sure that the title bar has a blue background (like the buttons) and also a similar font.

@openoms somethimes things are really just as easy as they should... https://github.com/rootzoll/raspiblitz/pull/812/commits/9778cf8d8ccd69c95c960feeb23a2e2b323a934c :-D (as the function called with the same Node URI string will always return the same QRCode this can be cached and will return instantly - if the Node URI changes it will be regenerated (once)).

Quick update process in case anyone else is testing (given these have been done: https://github.com/rootzoll/raspiblitz/pull/812#issuecomment-541456214):
cd raspiblitz/
git pull
/home/admin/XXsyncScripts.sh add-pyqt-gui -clean
sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/*.py

and  run:
$ sudo -u pi DISPLAY=:0.0 LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 /home/admin/gui/main.py
for instant gratification or reboot.

The "invoice" button should not create an invoice if the node has no channels at all or if the channels have no inbound liquidity.

Quick update process in case anyone else is testing (given these have been done: #812 (comment)):
cd raspiblitz/
git pull
/home/admin/XXsyncScripts.sh add-pyqt-gui -clean
sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/*.py

and run:
$ sudo -u pi DISPLAY=:0.0 LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 /home/admin/python3-env-lnd/bin/python3 /home/admin/gui/main.py
for instant gratification or reboot.

@openoms is this working with that new LCD with the built-in fan and power-pins?

@fluidvoice yes. I found no difference in the working of the LCD with power pin and fan and
our recommended LCD (+shim fan)

@openoms @rootzoll huge change.. please have a look at this.. the idea is that in the end a upgrade of the TouchUI functionality only requires pip install -U BlitzTUI (+ cycling the run level).

@openoms @rootzoll huge change.. please have a look at this.. the idea is that in the end a upgrade of the TouchUI functionality only requires pip install -U BlitzTUI (+ cycling the run level).

needed to use pip3 , but will build from a clean system again. Will use your branch for a custom SD build.
Can you please explain what this means:  + cycling the run level ?

Regarding Python3: IMHO we should aim for completely removing Python2 from Raspiblitz.. This should avoid future confusion (e.g. pip vs. pip2 vs. pip3).
Cycling runlevel:
sudo init 3; sleep 2; sudo init 5

Oh well... @openoms @rootzoll let's be reckless... I'd say it's ready for merge.. ;-p

@frennkie just tested. Absolutely loving the developments since the last version!
I am in full support of merging!
Only question: is the Donation button on the invoice screen greyed out intentionally?
The 402 SAT invoice works well, but I think a 0 amount invoice button still could be good.
Maybe a custom invoice with a 12 button numpad screen, but this is not priority as the RaspiBlitz itself is a full node node and not a PoS device.

I'm against a 12 button number pad.. Although it would be possible to implement of course... I just fear this would be too fiddly..
The donation button is the 0 sat invoice. It is deactivated by default. To enable it you add a line to the /mnt/hdd/raspiblitz.conf.
The same is valid for changing the default value of 402 for the normal invoice.

I think it's finally time to merge  this.
Any further suggestions and improves will go into separate PRs.


Create some routes and controllers

[ ] Create the post routes and controllers
[ ] Create the comment routes and controllers

[x]  Create the post routes and controllers
[x]  Create the comment routes and controllers


Add alloc_async function that takes a single element to copy into all the elements

This actually seems a little more subtle than I had hoped - it seems like you can only do memset for up to 32 bits with the driver api? A cleaner thing might just be to allocate host memory and then do take_async

yes, memset only works for primitives, iirc even for 64 bit values (but probably still kinda useless)

could there be an unsafe alloc function to just alloc but not zero the memory?

This actually seems a little more subtle than I had hoped - it seems like you can only do memset for up to 32 bits with the driver api? A cleaner thing might just be to allocate host memory and then do take_async

maybe just take the naive approach and loop through the whole region (using async copy this shouldn’t be too bad)

Not going to do this - if someone really wants to do this they can create their own kernel for setting values like they want (did this a couple of places in dfdx)


pychd not working

Hey,
I tried to install this tool but running it yields the following error:
$ pychd
Traceback (most recent call last):
  File "/home/jirka/miniconda3/envs/deepcompyle310/bin/pychd", line 5, in <module>
    from src.pychd.main import cli
  File "/home/jirka/miniconda3/envs/deepcompyle310/lib/python3.10/site-packages/src/pychd/main.py", line 6, in <module>
    from . import compile, decompile
  File "/home/jirka/miniconda3/envs/deepcompyle310/lib/python3.10/site-packages/src/pychd/decompile.py", line 11, in <module>
    from pytype.pyc.magic import magic_word_to_version
ModuleNotFoundError: No module named 'pytype.pyc.magic'

the same error happens for pychd decompile my_file.pyc as well.
I have installed the tool by simply running:
pip install pychd

I tried it on Python 3.8 and 3.10, same error on both.

should be working now


Owned iterator: into_ones()

Hi,
I'm building a tiny abstraction over this lib for my use case (a set of usizes with an API very similar to BTreeSet) and I'm stuck on the implementation of my IntoIterator because there is no owning equivalent of ones(). I mean, One<'a> iterates over a borrow of the FixedBitSet and I cannot easily keep the FixedBitSet and the One<'_> around on the same struct:
struct IntoIter<'a> {
    bit_set: FixedBitSet,
    ones: Ones<'a>,
}

I'm currently using rental as a workaround, but that is quite complex.
Does it make sense to implement a method like pub fn into_ones(&self) -> IntoOnes? I can work on a PR if you are interested.
Best regards,

I think it makes sense. My review time is a bit limited, but hopefully it can be solved

@sitegui do you mind clarifying into_ones allows writing struct IntoIter?

Hi @jrraymond , of course :)
This is a reduced example: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=aadc6f54122373d6724ead8fa8a8e828
The main problem is that Ones borrows the FixedBitSet, so I cannot create an owning struct. See that IntoIter ends up borrowing as well:
struct IntoIter<'a>(Ones<'a>);

impl<'a> IntoIterator for MySet {
    type Item = usize;
    type IntoIter = IntoIter<'a>;

    fn into_iter(self) -> Self::IntoIter {
        IntoIter(self.0.ones())
    }
}

The example is very reduced and seems very artificial, but in my use-case I have a complex type T that I convert into usize to store into the bitset and then I'd like to code like this to work seamlessly:
let my_set: MySet = todo!();
for el in my_set {
  // an owned `el`
}

but that requires MySet: IntoIterator. My type T is Copy, so I can work around with:
for &el in &my_set {
  // an owned `el`
}

However, I've ended up using a Vec<bool> instead of FixedBitSet in my project to implement the API I wanted.
Hope it clarifies ;)