nwg-panel: 0.9.20 -> 0.9.22

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for nwg-panel is: GTK3-based panel for Sway window manager
meta.homepage for nwg-panel is: https://github.com/nwg-piotr/nwg-panel
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.9.22 with grep in /nix/store/5axa4vsrlmkakv9hr105p5ac0jb64nh7-nwg-panel-0.9.22
found 0.9.22 in filename of file in /nix/store/5axa4vsrlmkakv9hr105p5ac0jb64nh7-nwg-panel-0.9.22

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
nwg-panel

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5axa4vsrlmkakv9hr105p5ac0jb64nh7-nwg-panel-0.9.22 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/e25683900dc2dc94f2b704756ebf1916d9d967fe#nwg-panel

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5axa4vsrlmkakv9hr105p5ac0jb64nh7-nwg-panel-0.9.22
ls -la /nix/store/5axa4vsrlmkakv9hr105p5ac0jb64nh7-nwg-panel-0.9.22/bin

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

2 packages built:

nwg-panel
nwg-panel.dist

Maintainer pings
cc @ludovicopiero for testing.

#281974


Extend xDAI documentation

Extend xDAI documentation here: add xDAI, DAI, Gen, xGEN proposal process
Fix minor typos resolved

I think it's fine to put all documentation of xDAI in the Activation page, since going through that process will mean it's handled once they are working.
For existing members who need help migrating, we can just refer them there.

typo resolved

Using the xDAI to DAI POA bridge

I used the POA tokenbridge UI to transfer the xDAI to DAI.
Followed the transaction with https://explorer.anyblock.tools/ethereum/poa/xdai/ confirmed that my xDAI had been burnt
If it's taking too long to complete (more than 12 hours or something) check the - balanceDiff value in the bridge monitoring API -> https://bridge-monitoring.poa.net/xdai


RC Spot-Check Test: Graphing Quadratics 1.3.7-rc.1

RC Spot-Check Test
Mentions: {{MENTIONS}}
Simulation links

github repository for issues
phet top-level directory
sim: all_phet.html
phet-io wrapper index
link to phet-io zip file

Test Matrices
General Test:

[x] Tester = KW, Platform = iPad Safari, Time = 1
[x] Tester = NS , Platform = macOS 14.4.1 + safari 17.4.1 , Time = .75

PhET-iO Test:

[x] Tester = NS , Platform = macOS 14.4.1 + safari 17.4.1 , Time = .5
[ ] Tester = , Platform = , Time =

Additional Features Test:

[ ] Tester = , Platform = , Time =
[ ] Tester = , Platform = , Time =

Features included

PhET-iO
Dynamic Locale
Alternative Input
UI Sound
Sonification
Description
Voicing

Focus and Special Instructions
This is a maintenance release to fix a rendering problem with Safari 17.4. See Issues to Verify below.  Be sure to test with Safari 17.4 on macOS 14.4.1 (latest) and iPadOS 17.4.1 (latest)
Issues to Verify

[x] https://github.com/phetsims/graphing-quadratics/issues/206

For QA...

General features

What to Test

Click every single button.
Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.

If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Test some query parameters. (See QA Book for a
list of query parameters.)
When making an issue, check to see if it was in a previously published version.
Try to include version numbers for browsers.
If there is a console available, check for errors and include them in the Problem Description.
As an RC begins and ends, check the sim repo. If there is a maintenance issue, check it and notify developers if there
is a problem.
As the RC ends, notify the developer of any new QA credits that need to be added.

PhET-iO features

What to Test

Make sure that public files do not have password protection. Use a private browser for this.
Make sure that private files do have password protection. Use a private browser for this.
Make sure standalone sim is working properly.
Make sure the wrapper index is working properly.
Make sure each wrapper is working properly.
Launch the simulation in Studio with ?stringTest=xss and make sure the sim doesn't navigate to youtube
For newer PhET-iO wrapper indices, save the "basic example of a functional wrapper" as a .html file and open it. Make
sure the simulation loads without crashing or throwing errors.
Load the login wrapper just to make sure it works. Do so by adding this link from the sim deployed root:/wrappers/login/?wrapper=record&validationRule=validateDigits&&numberOfDigits=5&promptText=ENTER_A_5_DIGIT_NUMBER

Further instructions in QA Book
Conduct a recording test to Metacog, further instructions in the QA Book. Do this for iPadOS + Safari and one other
random platform.
Conduct a memory test on the stand alone sim wrapper (rc.1).
Test one platform combination with ?phetioDebug=true on the Studio and State wrapper.
If Pan/Zoom is supported, make sure that it works when set with PhET-iO State.
Test that the sim works offline:

Click the link to the phet-io zip file (at top of issue) to download the zip file.
Unzip it to a spot locally.
Open index.html by double clicking it on your desktop or in a Finder-view.
It should look like the standalone version of the sim in PhET-iO brand.

Accessibility features

What to Test

Specific instructions can be found above.

Make sure the accessibility (a11y) feature that is being tested doesn't negatively affect the sim in any way. Here is
a list of features that may be supported in this test:

Alternative Input
Interactive Description
Sound and Sonification
Pan and Zoom
Mobile Description
Voicing

Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.
Test all keyboard navigation inputs (if applicable).
Test all forms of input with a screen reader (if applicable).

If this sim is not in this list or up to date there, make an
issue in website to ask if PhET research page links need updating. Please
assign to @terracoda and @emily-phet.

Screen Readers
This sim may support screen readers. If you are unfamiliar with screen readers, please ask Katie to introduce you to
screen readers. If you simply need a refresher on screen readers, please consult the
QA Book, which should have all of the information
you need as well as a link to a screen reader tutorial made by Jesse. Otherwise, look over the a11y view before opening
the simulation. Once you've done that, open the simulation and make sure alerts and descriptions work as intended.

Platforms and Screen Readers to Be Tested

Windows 10 + Latest Chrome + Latest JAWS
Windows 10 + Latest Firefox + Latest NVDA
macOS + Safari + VoiceOver
iOS + Safari + VoiceOver (only if specified in testing issue)

Critical Screen Reader Information
We are tracking known screen reader bugs in
here. If you find a screen reader bug,
please check it against this list.

Keyboard Navigation
This sim supports keyboard navigation. Please make sure it works as intended on all platforms by itself and with a
screen reader.
Magnification
This sim supports magnification with pinch and drag gestures on touch screens, keyboard shortcuts, and mouse/wheel
controls. Please test magnfication and make sure it is working as intended and well with the use cases of the
simulation. Due to the way screen readers handle user input, magnification is NOT expected to work while using a screen
reader so there is no need to test this case.

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

Calling QA here

Thanks for the quick turnaround.  I'll proceed with publishing 1.3.7.

1.3.7 was published on 4/8/24.


Update ps-menu.psm1

On the main Menu function I've changed:
$cur_pos = [System.Console]::CursorTop
To:
$cur_pos = [System.Console]::get_CursorTop()
I suppose that was the original purpose of this variable. In the other form, it causes the menu to redraw itself below the original menu on every key pressed.
Cheers!

Both calls are equivalent and return the same value in my case


[FEATURE REQUEST]

In the todoist-card.js file, at line 443, it appears that this is where the check for only today or overdue status is checked and filtered.  I'm not a js expert (actually beginner) so I'm trying to figure out the logic here in order to solve the problem I have.
Problem:  I need to be able to create a card that lists tasks that are due two days, three days, or even a week out.  At the bare minimum, to be able to have two cards, one for tasks due today and one for tasks scheduled to be due tomorrow.
My experience is this:  If I don't filter out tasks that are due today or past due, then I end up with a card jammed with every task in the project, when I only want to see today's outlook.  So, if a task is due today, that's great, but if I'm creating a task today that's scheduled to be done tomorrow, I won't see that task on the card until midnight instead of having a card that shows "Tomorrow's Tasks" etc.
Any chance of working this out?

@arretx I have implemented a filtering option to select the number of days in the future to display in a card in my forked version here: https://github.com/grinstantin/todoist-card/pull/31 (https://github.com/sw-carlos-cristobal/todoist-card/releases/tag/beta-0.0.5)

Seems to be working well, but the feature I'm actually interested in is pinpointing a single day.  If I do "days out" I get today and tomorrow, but if I just want to see what's on the task list for tomorrow, I can't see it without today's tasks as well.
Looks like the calculation for this is handled on 534 in your js file on your repo.  Your repo doesn't have an "issues" tab so I'm responding here.

Ah do you mean picking a day range ahead of time like a static x through y
days in the future? Or are you looking to just ignore today and overdue
tasks?
On Wed, Jan 25, 2023, 2:20 PM Jon Griffith @.***> wrote:

Seems to be working well, but the feature I'm actually interested in is
pinpointing a single day. If I do "days out" I get today and tomorrow, but
if I just want to see what's on the task list for tomorrow, I can't see it
without today's tasks as well.
Looks like the calculation for this is handled on 534 in your js file on
your repo. Your repo doesn't have an "issues" tab so I'm responding here.
—
Reply to this email directly, view it on GitHub
https://github.com/grinstantin/todoist-card/issues/32#issuecomment-1404238463,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU7LMK5QSYHAOYXQQNEHNVDWUGKLHANCNFSM6AAAAAAUB5WGO4
.
You are receiving this because you commented.Message ID:
@.***>

Yes, to pick a single day, or range of days so you could have a card for "Today's Focus" which would be tasks that are due today, and a "Tomorrow's Focus" which would show only tasks that are due tomorrow.  Or you could show a card with "3 Day Outlook" which would show all tasks for the next three days, not including today, or the next three days with an offset index.  So today is Wednesday.  I could have a card that shows 3 days worth of "due" tasks starting on Friday, which would be 3 days out for a range of 3 days, so "show me all tasks that have a due date in the range "friday through Sunday""
I think I'm making sense ?

Yeah I think I know what you mean - I'll see what I can whip up sometime
this week
On Wed, Jan 25, 2023, 2:31 PM Jon Griffith @.***> wrote:

Yes, to pick a single day, or range of days so you could have a card for
"Today's Focus" which would be tasks that are due today, and a "Tomorrow's
Focus" which would show only tasks that are due tomorrow. Or you could show
a card with "3 Day Outlook" which would show all tasks for the next three
days, not including today, or the next three days with an offset index. So
today is Wednesday. I could have a card that shows 3 days worth of "due"
tasks starting on Friday, which would be 3 days out for a range of 3 days,
so "show me all tasks that have a due date in the range "friday through
Sunday""
I think I'm making sense ?
—
Reply to this email directly, view it on GitHub
https://github.com/grinstantin/todoist-card/issues/32#issuecomment-1404249139,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU7LMKYGVA6SMU56NRAZYY3WUGLRZANCNFSM6AAAAAAUB5WGO4
.
You are receiving this because you commented.Message ID:
@.***>

I think this issue can be solved with the standard Todoist functionality. You can create a filter in Todoist, and then use it with the Rest API to get the list of tasks you need. To do this, you need to create a separate sensor for each of your cards.
This should work:
- platform: command_line
  name: Specific Name For This List
  scan_interval: 60
  command: >
     echo "{\"items\":" $(
     curl
     -s
     -H 'Authorization: Bearer TODOIST_API_TOKEN'
     'https://api.todoist.com/rest/v2/tasks?project_id=TODOIST_PROJECT_ID&filter=TODOIST_FILTER_ID'
     ) "}"
  value_template: >
     {{ value_json.items[0].project_id }}
  json_attributes:
     - items

Replace TODOIST_API_TOKEN with your token, TODOIST_PROJECT_ID with ID of your project and TODOIST_FILTER_ID with ID of the filter you created in Todoist.
Please note that you won't be able to use use_quick_add option with card based on this list.
Also note that you can create only 3 filters in free Todoist's tariff plan.

Personally, I'd like to just have a singular sensor per project that I can just create one card and duplicate it over and over with different settings toggled to get unique visuals.
Here is my take on a sort of "sliding window" approach.
https://github.com/sw-carlos-cristobal/todoist-card/tree/sliding-window

Personally, I'd like to just have a singular sensor per project that I can just create one card and duplicate it over and over with different settings toggled to get unique visuals.
Here is my take on a sort of "sliding window" approach. https://github.com/sw-carlos-cristobal/todoist-card/tree/sliding-window https://github.com/sw-carlos-cristobal/todoist-card/releases/tag/beta-0.0.14

It would be nice, but on other hand - you can't just duplicate the functionality of Todoist in a HA card.

Yeah I get that - but I also don't want to pay for a subscription 😁😂


Connect mode option

This change replaces the halt_on_connect user option with connect_mode. There are four supported connection modes:

"halt": Stop core(s) without changing PC.
"pre-reset": Perform a hardware reset prior to halting the core(s).
"under-reset": Attempt to connect while holding hardware reset asserted. Uses reset vector catch to halt before executing the first instruction. Reset is released after connecting. Not all devices will support this.
"attach": Connect without halting the core(s).

Connect under reset is not fully working with the NXP Kinetis target family. This needs further debugging and will be fixed in a coming PR.

/morph test

@trowbridgec, @millerc-ep

The first check in the connect tests is failing. I'm merging anyway and will release an alpha because it's needed by the Mbed Studio team.

Feels like the Studio team is making all the right moves.
Excited to see what @arekzaluski  has in store for TechCon.


cocoapods does not support version 5.0.6?

When I use cocoapods, I found that I can only search for version 5.0.5。

Now I'm updated. please check it out 🙏


Fix notion rendering on mobile

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


Allow overriding Prism module with options

Hi,
I've added an option to override Prism module to use in the decorator.
I wanted this feature to customized Prism module with plugins and components.
import PrismDecorator from 'draft-js-prism';
import Prism from 'prismjs';
import 'prismjs/components/prism-java';
import 'prismjs/components/prism-scala';
import 'prismjs/components/prism-go';
import 'prismjs/components/prism-sql';
import 'prismjs/components/prism-bash';
import 'prismjs/components/prism-c';
import 'prismjs/components/prism-cpp';
import 'prismjs/components/prism-kotlin';
import 'prismjs/components/prism-perl';
import 'prismjs/components/prism-ruby';
import 'prismjs/components/prism-swift';

const decorators = [new PrismDecorator({
  prism: Prism
})];

// ...

This is awesome, would love to have this merged!


How to avoid controller re-initializing while tab changes ?

Take this example: I have two tabs: tabA and tabB,  both contain some text input and datatable component.  First fill some data in tabA and then press tabA's search button, tabA's datatable will present data sent from server. Then switch to tabB and return to tabA. The data in text input and datatable disappeared as the tabA's controller reinitialized.
I tried some methods , such as
$state.transitionTo(tab.route, tab.params, { reload: false,  inherit: false, notify: true  });
but still not resolved.
BTW, I am using AngularJS 1.3.9,  UI-Router  0.2.18
Thanks

That sounds a lot like ui-router-extras sticky states
There is no other built in way to keep two states active.  However, you could possibly also combine your tabA and tabB into a single state, but then you'd have to manage the components inside them yourself.


Camunda: FOI Request Processing changes to support assignment/claim of unopened request

As a (Intake Analyst) I want (assign a task to myself) So That (Could refine unopened request to start processing)
Additional Context
Applicants submitted FOI request is captured in "FOI RawRequest" entity; and it is listed in home page.
On click of record, the unopened request is displayed in form for refinement by Intake Analyst.
DOD

[ ] By default, all captured request should be available in the queue of group "Intake Analyst Team"
[ ] On assignment of request, the task in workflow engine; should be marked as claimed by user.

Technical Implementation Approach:
Expose a specific message based event API for business (FOI Request Management) API to assignment.
API Details:
POST /camunda/engine-rest/message
Message Body
{
"messageName" : "foi-unopened-assignment",
"processInstanceId":"d5c9c1d4-ebd6-11eb-9dbb-0242ac150002",
"processVariables" : {
"intakeAnalystId" : {"value" : "sumathi", "type": "String"}
}
}

Workflow Changes:
Version: 2

https://github.com/bcgov/foi-flow/pull/251

Please note, that the DOD bulletin#2 can be tested only after integration form web tier.


Topics: add stub descriptions for all currently qualifying proposed topics

Adds stub topic pages for all qualifying topics from our spreadsheet tracker and this repository's open issues.  (Qualifying means at least three mentions and doesn't have other issues.)
There are several benefits to having stub descriptions for topics:

It makes our content more accessible, even if only te people who already know what the topic is about

We can start linking to the new pages immediately, building backlinks

If a topic isn't worth hosting a page for, someone can complain before too much effort has been invested in writing about it

Maybe other people will be interested in expanding stub descriptions into full writeups

h/t to @jnewbery who suggested elements of this approach

Concept ACK!

@Xekyo thanks for the review!  Updated.

@jnewbery Thanks for the review!

What's the criteria for graduating from a stub to a full topic description?

I think my usual criteria is that I'm tired of writing about it and just want to open a PR and never talk about it again.  😅
Having a universal objective criteria does seem like a better way, and (if it's simple) I think it'll actually allow us to automatically add/remove the stub tag on the pages.  I'll work on something like if (words < x) stub = true.

I'll work on something like if (words < x) stub = true.

I'm not sure that a constant word count will work across all topics. Some topics are quite straightforward and there's really not much to say about them in the summary (e.g. signet), and some have very detailed summaries (e.g. threshold signatures).

I'm not sure that a constant word count will work across all topics.

I'll be sure to add an override, but in general, I think anything that warrants a topic page will probably be significant enough that we'll be able to write a certain number of words about it.  E.g., signet may seem straightforward but there were several years worth of design discussions involved in its creation; I'm sure we could add details about the problems with testnet, virtual transactions, the mechanics of block signing, how PoW is still used, the default signet, well-known examples of non-default signets, etc...

Addressed feedback and added code to automatically add stubs for pages with extended descriptions less than 100 words long (with manual override both to enable or disable the stub notice).  That makes the following 36 pages stubs (~40% of all current topics):
$ grep -rl 'is a stub' _site/en/topics | sed 's%_site/en/topics/%%; s%/index.html%%' | sort
addr-v2
block-explorers
coinjoin
coin-selection
consensus-cleanup-soft-fork
countersign
covenants
cpfp-carve-out
dandelion
exfiltration-resistant-signing
hd-key-generation
hold-invoices
hwi
jit-routing
miniscript
minisketch
musig
output-script-descriptors
payjoin
payment-batching
payment-secret
rendez-vous-routing
reproducible-builds
schnorr-signatures
segregated-witness
side-channels
sighash_noinput
signer-delegation
signet
taproot
tapscript
timelocks
unannounced-channels
utreexo
v2-p2p-transport
watchtowers

This has broken the header formatting for "Primary code and documentation" for the topic pages that aren't stubs:

The following hack fixes it, but I expect there's a better way to achieve the same:
--- a/_layouts/topic.html
+++ b/_layouts/topic.html
@@ -76,6 +76,7 @@ layout: post
   {% capture gh_base %}https://github.com/{{site.github_username}}/{{site.repository_name}}{% endcapture %}

+  {% capture notices %}

{% endcapture %}
   {% assign word_count = page.content | number_of_words %}
   {% if page.stub != false %}

Thanks for the review @jnewbery, and especially for catching the broken header!  I believe all feedback has been addressed.  (Sorry for the force push noise.)


TileMap: Added "set_line" and "get_line" to batch update tiles

At first, this is my first pull request and I'm not really a C++ dev … sorry for any mistakes :)
This PR is related to the performance enhancement request #31020.
Basicly it's a C++ loop of set_cell for a batch of tiles (based on PoolIntArray).
This gets a huge performance boost in case of big tilemaps / and frequent tilemap updates for the standard GD-Script user. Target was to keep it as flexible as possible (therefore also a start x) and only line wise loop -> the outer loop (columns = y) of the usually needed double-loop can stay in GD-Script without big performance disadvantages.
Example:
In case of an 1000x1000 Tilemap previously the full 1.000.000 loops with "set_cell" had to be executed in GD-Script (double-loop). With this change, only 1000 loops of "set_line" are done in GD-Script, the most part of the other loops (=999.000) will be done in C++.

I don't think this really make sense. You say this solution allow you to have less gdscript loops to do, but you still have to fill your Vector in a gdscript loop too, for each line you want to modify.
Also, this really look like a weird, too much specific API. Why a line ? Setting a Rect2i would make more sense. But that being said, I am not convinced that things brings a significant performance improvement over calling set_cell().

@groud Thx for having a look on my PR. In my usecase and I also assume this will be the same for others, who want to use Tilemap for a proc gen world, I design the world based on several logics (i. e. Simplex noise) and keep them in Arrays (or directly 2D-Arrays) -> reason is bad performance of set_cell and possibility of multi threading (Thread) with Arrays. But at the end I have to load all of this into the Tilemap and so far this is only possible by set_cell (which is already for a small 1000x1000 map noticeable).

Why a line ? Setting a Rect2i would make more sense.

Rect2i wouldn't work as here it's allowing to set a line with specific tile ID for each cell, while with Rect2i you could only batch-set a single ID to a region.
 I think we should try to design a cleaner system to batch update a tilemap (all of it, or a 2D region) with new data.
Using a 2D array would be better than a line IMO, so it could be something like:
var from = Vector2i(4, 6)
var data_mat = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] ] # 4x3

tilemap.set_region(from, data_mat)

This would set all tiles from (4, 6) to (7, 8) (included) with the tile IDs from the 2D array.
Indeed it doesn't make much sense if one needs to construct the arrays manually just for this, but in @zzz-assault's case where the data has already been generated into a 2D array, that makes sense, and otherwise it could also be ready from e.g. JSON files.
It's still not perfect as it would still only allow setting a different tile ID but with the same flips and transpose for the whole region.
An alternative would be to add a new system to handle (tile_pos, tile_id, flip_x, flip_y, transpose) for a whole region and set it at once. Heck, could use #37070 ;)

Rect2i wouldn't work as here it's allowing to set a line with specific tile ID for each cell, while with Rect2i you could only batch-set a single ID to a region.

I think we are kind of on the same page I meant that we could have something like set_rect(Rect2i region, Vector, ...). The idea being to simply replace the "line logic" by a "region logic". The array then would need to be of lenght rect.width * rect.heigth.

Directly applying a 2D array would even be better, if I pass an GD Script 2D array to the c++ method, would that work (and simply doing the double for loop in the  c++ method)?
I agree that the missing options for flip and transpose might be an issue, but this could be solved either by default values or an additional 2D array per required option.

That being said, I am still not super convinced about how useful the PR is. If you already spend a lot of time generating the level I don't really see why it is a problem to spend a little bit more time updating the Tilemap.
If you fear the screen might freeze, you could simply use another Tilemap node not in the scene tree, and update it before replacing the one in the tree. This could even me done in another thread for performance reasons.

@groud I was able to perform all changes / operations with multi threading, so the performance of whole generation process incl. bitmask updating of a 1kx1k map is done in 3 secs ... the set_cell takes another 5 secs ... and 1kx1k is not the target size.
But sure perhaps the use case is not as general, as the solution is basically useless for platformers, but in RTS or Eco Sims you need to have the full map persistent (example games = transport tycoon or age of empires).

Haben't compared it yet, but I'm sure the issue is not the "set_cell" call, it's the required double loop (already use while loop for performance), with 1.000.000 iterations (due to 1000x1000 tiles).
If I run anything in GD Script with a double loop and 1.000.000 iterations it takes a noticable time. Therfore the idea to move most iterations to the engine source code and c++.

If I run anything in GD Script with a double loop and 1.000.000 iterations it takes a noticable time. Therfore the idea to move most iterations to the engine source code and c++.

Well not really. In fact this amount of iteration is not specifically high for today processors. The overhead produced by gdscript is not that significant. Please compare the results, if the improvement is not significant, there no reason to add the feature.

@groud I've done the test / comparison now.

First peek to 100% is calculating the "map logic" based on arrays (with THREAD used). The downfall to 10 - 15% is "set_cell" / "set_line" (no THREAD used) and the second 100% peek is "bitmask" (with THREAD used).
So basically the gap between first and second peek is the pure loop with set_cell or set_line.
The performance difference is clearly visible, but to be honest it's less then expected :(
But I wasn't able to use multi threading with set_cell (also if Tilemap was not added to Scene Tree), need to verify if this is still the case and if my "set_line" solution would allow this (then the performance gain would be more significant -> at least in my usecase)

Just to give a bit of internal background : I'm a big fan of doing such ranged instructions from gdscript (see https://github.com/godotengine/godot-proposals/issues/290), and have been following the thread about the tilemap update slowness. Having done some profiling with @Xrayez project that was doing a lot of updates to visual server, I suspect there is a similar problem with tilemaps.
So we have potentially 2 slow areas:

Update call from gdscript / c#
Update to visual server

I have brought up an area with @clayjohn and @reduz which is currently a source of inefficiency, which is that the smallest unit sent to the renderer is a command for a single rect (or other primitive). My suggestion was to increase allow variable sizes for commands, because there is a lot of housekeeping for each commands, and things like tilemaps and text will contain a lot of similar rects which can be grouped together.
Reduz suggested as a compromise, we add a new command multi_rect, which will be available in addition to the existing single commands. This will be a great fit for tilemaps and text. He also believes it will speed up rending in Vulkan too.
This also offers an opportunity for far more efficient updating of these multi_rects to the visual server. At the moment updating individual rects to the visual server is taking a disproportionately large amount of time (each rect is causing a dynamic allocation on update, for example!). This can instead be done as a batch update (or region) for the multi_rect.
In turn inside the tilemap, the multi_rects might be used for zones for culling purposes (I haven't looked inside tilemap yet), and we could offer a fast translation of tilemap updates to multi_rects.
I think the updating via regions makes a lot of sense, and it even may be possible to keep the 'master data' gdscript side (i.e. just translate this master data to multi_rects in the tilemap), which would be more efficient, but it may be a trade off with safety.
In any case I think once we are using a region or batch update method from script, it may be crucial that the data input matches the data used internally to store the tilemap (which may be chosen to easily convert to multi_rect), to avoid unnecessary and inefficient conversions.
So I think there is an argument to go through a proposal for this where we can pin down the best data structure for the tilemap / multi_rect. There may be some changes in this area, particularly regarding things like flips in negative rect sizes. This may be better stored as a bitfield.
Any changes to the API here have to be made quite carefully because of reasons of backward compatibility, because if we make the wrong decision (because of a rush to have it better than it is now), we can get complaints if we decide to change it again.
Also we need to have a way of specifying a null cell on a grid, if there isn't one already (I'm assuming you can already do this by supplying a zero, but I haven't used tilemaps).

Also we need to have a way of specifying a null cell on a grid, if there isn't one already (I'm assuming you can already do this by supplying a zero, but I haven't used tilemaps).

If you mean clearing cells, you pass ID -1 to do so (TileMap.INVALID_CELL).

@groud I've done the test / comparison now.

@zzz-assault sorry to bother you with this, but could you evaluate the time spent into the loops ? Most likely by using something like OS.get_unix_time() before and after the loops and then compute the difference ?
As @lawnjelly explained, there are two slow areas, the question is whether your bottleneck is inside the "Update call from gdscript / c#" or not. So we have to evaluate how much time the code spends there to see if adding a batch function for set_cell is worth or not.

Yup looking internally into the tilemap I can already see this structure:
		struct {
			int32_t id : 24;
			bool flip_h : 1;
			bool flip_v : 1;
			bool transpose : 1;
			int16_t autotile_coord_x : 16;
			int16_t autotile_coord_y : 16;
		};

And I was going to suggest something like that, combining the bits for flips etc into e.g. a 32 bit int with the ID. It makes no sense to try and send flips independently, unless for user friendliness (in which case you could maybe use the single update command instead).
In your commit you are only sending 1 flip / transpose per line, which isn't an efficient way of updating if you have varying flips throughout a line.

@groud don't worry … I'm super happy, that so many contributers are trying to help and find a solution (which is probably above my capabilities).
data based on print(OS.get_unix_time()):

1536x1536 w. "set_cell" = 8
1536x1536 w. "set_line" = 3

3072x3072 w. "set_cell" = 33
3072x3072 w. "set_line" = 14

P.S.: The print statement is exactly before and after the while loop, inside the loops nothing is performed except incrementing y (and x in case of set_cell) and the "set_cell" / "set_line" method.
Hint: As you can see in the screenshot, my CPU is not a potato ... Intel I7 8700

Ah, indeed in both situation we can see the processing takes several seconds and that your solution provides significant improvements. So I guess you are right, surprisingly the amount of gdscript calls has a significant impact of the performances.
However, there is still room for improvement in the tilemap code apparently, I am pretty sure setting the cells could be a lot faster. I would be great if we could find the bottleneck there too.

While I agree that there are certainly rendering issues which can be improved, I think for the large part, this is still a GDScript problem.
I'm almost sure if someone could go through all issues/PRs here regarding performance issues, we'd get issues and enhancements originating from the GDScript bottlenecks specifically.
For instance, there was a similar PR suggesting adding Image.replace_color. @mhilbrunner suggested that Image.set_pixels(array) could be added to core in https://github.com/godotengine/godot/pull/19234#issuecomment-402192350, but nobody got to implement that so far.
Similarly, I implemented Image.bucket fill implementation in C++ for the same reasons I got like x35 speedup, and a similar method is indeed implemented in the TileMap, but it's only used for the editor:

@zzz-assault unfortunately, according to my discussion experience with Godot maintainers, I wouldn't rely/hope on the engine to solve specific problems. If they do help with solving them to some extent, it takes a significant amount of persistence to discuss this, which oftentimes takes several months to review once the implementation is ready. 😝
@zzz-assault I suggest rewriting your class in C++ and see how this improves it for you, see Custom modules in C++ documentation, that would be also a nice opportunity for you to learn C++.

@zzz-assault I suggest rewriting your class in C++ and see how this improves it for you, see Custom modules in C++ documentation, that would be also a nice opportunity for you to learn C++.

That's true, but C# might be enough too, and easier to use.

@groud I hoped that the performance bottleneck is mainly GD-Script, but you are right, it seems there is also an issue within the "set_cell" method. But at least my solution could improve the computing time by roughly 2-3 times.
@lawnjelly It would be great to get a super performant solution, but I'm also in favor of more beginner friendly solutions, so more people can use the batch process. Perfect would be a simple 2DArray, which is loaded into the tilemap completely (but I assume a lot of checks would be needed, to avoid issues with the Variant Data Type of the basic Array in GD-Script).
@Xrayez Thx for the advise, but I've got only 2 main bottlenecks directly connected to the Tilemap Node (my logic script isn't a problem so far), which are problematic (1. set_cell / 2. update_bitmask), for both I could write a C++ native script to solve my own issue, but I still think this is a common issue for others trying to create proc gen content in 2D -> so I'm trying to provide at least for "set_cell" a simple step forward with my PR :)

I still think in this existing code the approach to setting the 2 flips and transpose is potentially problematic. It works for situations where you use no flips etc, but the moment you have flips, it becomes useless. We need to solve this problem I think.

@lawnjelly Hmm, you might be right, I could use instead of single "bool"'s a vector3 Array with x,y,z as the 3 switches. For performance I would check with if statement first if no Array was provided and if not keep the loop as commited now -> if yes, the downside would be that I need to translate the x,y,z of each Vector 3 into the bool Statements (in each loop cycle - i.e. 0 = false, everything else = true) - not sure about the performance downside of this. Also a check if both Arrays (PoolIntArray and PoolVec3Array) have the same size and if not push out an error.
What do you think, would this be a good approach?

Bools are flat out inefficient for transferring this kind of info, they tend to only be used when there are small numbers of items involved (e.g. a function call). Trying to send a bool in a Vector3 is even worse.
The standard solution for sending a number of bools is bitflags. If you have constant / enums for the flips / transpose, you can store the whole lot in one unsigned int (where | is the 'bitwise or' instruction):
var my_tile : int = tile_id | Tilemap.FLIP_H | Tilemap.FLIP_V | Tilemap.TRANSPOSE

Notice I say unsigned int. The snag is that we are currently using -1 to store blank tiles. This won't work easily, because bitwise, -1 in say an 8 bit value is:
11111111

This means the OR instruction to save the flags won't work. So in this situation you'd to use another approach, such as storing the blank status itself as a bitflag, e.g. Tilemap.BLANK constant.
Given that gdscript doesn't support unsigned ints, the maximum positive bit you can set in 32 bit is<PHONE_NUMBER>, so you could use that as the highest value of your bitflag constants. This would allow you say 7 bit for bitflags, and 24 bit range for the tile IDs.

This would be the most efficient and compact way of sending the data I think. Whether it would be deemed user friendly or not, is another matter.

@lawnjelly Thank you for your advise (great to learn for me :) ), but as the "set_line" function itself targets "the usual GD-Script User", I think your solution might be to complicated (lets say -> not user friendly ;) ).
Not sure how to proceed now, as said from a user perspective either having a Vector3 Array or 3x Byte Arrays, would be the easiest to understand. I would assume if someone uses flip/transpose, he would use all or two of this features within a line, so I'm more leaning in the direction of the Vector 3 Arrays.
Any other ideas? … or stick to bool? (which is basicaly only one toggle for the whole line)

This is now open for over a year, so I'll close the PR.
In addition I think the best way to proceed with this use case, would be a solution via Rect2 and somehow recognize the flip, transpose flags.


Code search throws HTTP 500 error : wrong type for value; expected string; got template.HTML

Description
We've enabled the code indexer to be able to search source code. Trying to do so throws an error 500 with the following log entry:
2024/01/19 12:15:53 .../context_response.go:86:HTML() [E] Render failed: failed to render template: repo/search, error: template error: builtin(bindata):repo/search:56:87 : executing "repo/search" at <Safe>: wrong type for value; expected string; got template.HTML
												{{.FormattedLines | Safe}}

Gitea Version
1.21.3
Can you reproduce the bug on the Gitea demo site?
Unknown!
note: try.gitea.io throws a 500 so I was unable to test if the same occurs there
Log Gist
No response
Screenshots
No response
Git Version
2.41.0
Operating System
CentOS 7
How are you running Gitea?
binary package linux amd64
Database
MySQL/MariaDB

This has been fixed in 1.21.4. Please upgrade.

This has been fixed in 1.21.4. Please upgrade.

Ah awesome! Thank you

Well... I will once it releases, I guess ;)


cant i run Alexa on my NOOBS operativ system? [ No start up no nothing]

Ive followed the installation guide to the point, only i have NOOBS insted of rasbian.
but in the instalation setup it says that i have my OS is debian...
apreciate it alot for all help, ive started with Raspberry pi 2 weks ago so im a total noob to this. altså i use  MagicMirror 2 by michmich.

NOOBS is not an OS. It's an operating system installer which by default installs Raspbian (Debian-based OS), so choose Debian.
I'm not sure what your question is exactly.

i cant seem to get it to start, ive done what the instalation guide told me
to do, but nothing happends after i reboot. I thought it might be the OS
that was wrong..

NOOBS is not an OS. It's an operating system installer which by default
installs Raspbian (Debian-based OS), so choose Debian.
I'm not sure what your question is exactly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504556,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYpxNr86FDGrPSJPQ4GeF4z0hDLswTwPks5rgHntgaJpZM4MMFzx
.

I recall having a similar difficulty when I tried to install APi after NOOBS to install the OS.
Try with the Raspbian downloaded from the RPi site onto a 16GB Class 10 and then

sudo apt-get update

sudo apt-get dist-upgrade

Worst case is you end up with the cleanest freshest Pi.
After  that, if there are probs, I’m around all day.  Not the greatest geek, but I prevailed in getting this to werk.
From: NoBreakz<EMAIL_ADDRESS>Sent: Sunday, February 26, 2017 8:05 AM
To: alexa-pi/AlexaPi<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [alexa-pi/AlexaPi] cant i run Alexa on my NOOBS operativ system? [ No start up no nothing] (#178)
i cant seem to get it to start, ive done what the instalation guide told me
to do, but nothing happends after i reboot. I thought it might be the OS
that was wrong..

NOOBS is not an OS. It's an operating system installer which by default
installs Raspbian (Debian-based OS), so choose Debian.
I'm not sure what your question is exactly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504556,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYpxNr86FDGrPSJPQ4GeF4z0hDLswTwPks5rgHntgaJpZM4MMFzx
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504973 , or mute the thread https://github.com/notifications/unsubscribe-auth/AT7SzCxWwUhGQpfTjUNKrr_9FcatWwO6ks5rgHtNgaJpZM4MMFzx .  https://github.com/notifications/beacon/AT7SzOkYfUBZ5euzSK_prgjy1QJfKN_hks5rgHtNgaJpZM4MMFzx.gif

Thanks!
Funny thing happend, when i disconected the webcamere ( i use a logitech
c270 as a mic.... i know.. ill get a propper mic on monday)  Alexa keeps
saying hello at random times, but i dont get a interface or anything like
that, arent i supposed to?
But anyway im reading up how to set up the webcam properly on the
raspberry. Ill let you know how it goes
But as far as i know yoy can only use a usb mic, right?
#noob
lør. 25. feb. 2017 kl. 20.42 skrev Ken McDonnell<EMAIL_ADDRESS>
I recall having a similar difficulty when I tried to install APi after
NOOBS to install the OS.
Try with the Raspbian downloaded from the RPi site onto a 16GB Class 10
and then

sudo apt-get update

sudo apt-get dist-upgrade

Worst case is you end up with the cleanest freshest Pi.
After that, if there are probs, I’m around all day. Not the greatest geek,
but I prevailed in getting this to werk.
From: NoBreakz<EMAIL_ADDRESS>Sent: Sunday, February 26, 2017 8:05 AM
To: alexa-pi/AlexaPi<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [alexa-pi/AlexaPi] cant i run Alexa on my NOOBS operativ
system? [ No start up no nothing] (#178)
i cant seem to get it to start, ive done what the instalation guide told me
to do, but nothing happends after i reboot. I thought it might be the OS
that was wrong..

NOOBS is not an OS. It's an operating system installer which by default
installs Raspbian (Debian-based OS), so choose Debian.
I'm not sure what your question is exactly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504556,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AYpxNr86FDGrPSJPQ4GeF4z0hDLswTwPks5rgHntgaJpZM4MMFzx
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504973> ,
or mute the thread <
https://github.com/notifications/unsubscribe-auth/AT7SzCxWwUhGQpfTjUNKrr_9FcatWwO6ks5rgHtNgaJpZM4MMFzx>
. <
https://github.com/notifications/beacon/AT7SzOkYfUBZ5euzSK_prgjy1QJfKN_hks5rgHtNgaJpZM4MMFzx.gif>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282507309,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYpxNoiC4pxKd-1XevsD2YpulEKcSgsHks5rgIQTgaJpZM4MMFzx
.

Well, actually, there is no display interface, it’s a voice interface only.  You say her name, ask her a question and she answers you, that’s the whole package.  The Amazon echo is referred to as speaker (as in speaker interface).  You can hook up a couple of LEDs to see what she is up to (Name recognition, searching) or just clip on a Sense Hat, if you  have one, it lights up rainbow.
What happens when you say Alexa (note this does not work for everyone, a friend’s accent never made it trigger), but the TV did, a lot.
If you can trigger “hello” you have 8 secs to ask a question, give a command, and then a few seconds of latency before the reply.  IF this is happening, it’s working. What’s missing for you?
Yes, USB mic is the only way to do a mic on a RPi.
From: NoBreakz<EMAIL_ADDRESS>Sent: Sunday, February 26, 2017 9:01 AM
To: alexa-pi/AlexaPi<EMAIL_ADDRESS>Cc: Ken McDonnell<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [alexa-pi/AlexaPi] cant i run Alexa on my NOOBS operativ system? [ No start up no nothing] (#178)
Thanks!
Funny thing happend, when i disconected the webcamere ( i use a logitech
c270 as a mic.... i know.. ill get a propper mic on monday) Alexa keeps
saying hello at random times, but i dont get a interface or anything like
that, arent i supposed to?
But anyway im reading up how to set up the webcam properly on the
raspberry. Ill let you know how it goes
But as far as i know yoy can only use a usb mic, right?
#noob
lør. 25. feb. 2017 kl. 20.42 skrev Ken McDonnell<EMAIL_ADDRESS><EMAIL_ADDRESS>>:

I recall having a similar difficulty when I tried to install APi after
NOOBS to install the OS.
Try with the Raspbian downloaded from the RPi site onto a 16GB Class 10
and then

sudo apt-get update

sudo apt-get dist-upgrade

Worst case is you end up with the cleanest freshest Pi.
After that, if there are probs, I’m around all day. Not the greatest geek,
but I prevailed in getting this to werk.
From: NoBreakz<EMAIL_ADDRESS>Sent: Sunday, February 26, 2017 8:05 AM
To: alexa-pi/AlexaPi<EMAIL_ADDRESS><EMAIL_ADDRESS>>
Cc: Subscribed<EMAIL_ADDRESS><EMAIL_ADDRESS>>
Subject: Re: [alexa-pi/AlexaPi] cant i run Alexa on my NOOBS operativ
system? [ No start up no nothing] (#178)
i cant seem to get it to start, ive done what the instalation guide told me
to do, but nothing happends after i reboot. I thought it might be the OS
that was wrong..

NOOBS is not an OS. It's an operating system installer which by default
installs Raspbian (Debian-based OS), so choose Debian.
I'm not sure what your question is exactly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504556,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AYpxNr86FDGrPSJPQ4GeF4z0hDLswTwPks5rgHntgaJpZM4MMFzx
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282504973> ,
or mute the thread <
https://github.com/notifications/unsubscribe-auth/AT7SzCxWwUhGQpfTjUNKrr_9FcatWwO6ks5rgHtNgaJpZM4MMFzx>
. <
https://github.com/notifications/beacon/AT7SzOkYfUBZ5euzSK_prgjy1QJfKN_hks5rgHtNgaJpZM4MMFzx.gif>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282507309,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYpxNoiC4pxKd-1XevsD2YpulEKcSgsHks5rgIQTgaJpZM4MMFzx
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-282508436 , or mute the thread https://github.com/notifications/unsubscribe-auth/AT7SzPaOOtVdETaTKvqe5XMFr2V_uah7ks5rgIhigaJpZM4MMFzx .  https://github.com/notifications/beacon/AT7SzE8Ip_XNA3lHSF3nmkb_IOGmf2zHks5rgIhigaJpZM4MMFzx.gif

UPDATE
so I got myself a propper mic, but the random "HELLO" are still there.
Ive tested the mic and it works in raspberry.
she even say "HELLO" in a diffrent tone, but i dunno, she doesnt respond to any interaction from me

Alexa only says "Hello" when the program is first run.  She says "yes" when the trigger word has been detected.
The fact that you're getting random "Hellos" indicates that the program is getting re-started after a crash somehow.
The first time you installed this, was there an option for an automatic restart that you selected?  This feature has recently been removed due to creating confusing debug scenarios.
If you've chosen this option, I strongly suggest that you disable it.  There's an entry about it in the wiki, here.
As for debug, there are a couple things you can look at:
1.) List activity of the program with sudo journalctl -u AlexaPi.  Q will quit it.
2.) Start in debug mode:
sudo systemctl stop AlexaPi to stop the current instance.
sudo /opt/AlexaPi/src/main.py -d to start with debug messages.  Ctrl-C will stop the program.

yes I put YES on the option to restart Alexa if crash ( something like that in the install)
thnx ill look into it, I'll let you know what happens :)

ok, ive put sudo journalctl -u AlexaPi
mars 03 19:24:42 raspberrypi systemd[1]: Starting Alexa client for all your devi mars 03 19:24:42 raspberrypi systemd[1]: Started Alexa client for all your devic mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed  mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] server-lookup.c: Una mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] main.c: Unable to co mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] bluez4-util.c: org.b mars 03 19:25:36 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed  mars 03 19:26:09 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed  mars 03 19:26:09 raspberrypi python[592]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_op mars 03 19:26:09 raspberrypi python[592]: Checking Internet Connection... mars 03 19:26:09 raspberrypi python[592]: Connection OK mars 03 19:26:09 raspberrypi python[592]: Traceback (most recent call last): mars 03 19:26:09 raspberrypi python[592]: File "/opt/AlexaPi/src/main.py", line  mars 03 19:26:09 raspberrypi python[592]: loop() mars 03 19:26:09 raspberrypi python[592]: File "/opt/AlexaPi/src/main.py", line  mars 03 19:26:09 raspberrypi python[592]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPT mars 03 19:26:09 raspberrypi python[592]: alsaaudio.ALSAAudioError: No such file mars 03 19:26:09 raspberrypi systemd[1]: AlexaPi.service: main process exited, c mars 03 19:26:10 raspberrypi systemd[1]: Unit AlexaPi.service entered failed sta mars 03 19:26:11 raspberrypi systemd[1]: AlexaPi.service holdoff time over, sche mars 03 19:26:11 raspberrypi systemd[1]: Stopping Alexa client for all your devi mars 03 19:26:11 raspberrypi systemd[1]: Starting Alexa client for all your devi lines 1-23...skipping... -- Logs begin at fr. 2017-03-03 19:24:36 CET, end at fr. 2017-03-03 20:15:06 CET. -- mars 03 19:24:42 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:24:42 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed to get card object. mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:25:30 raspberrypi pulseaudio[1085]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:25:36 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed to get card object. mars 03 19:26:09 raspberrypi pulseaudio[1085]: [pulseaudio] udev-util.c: Failed to get card object. mars 03 19:26:09 raspberrypi python[592]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:26:09 raspberrypi python[592]: Checking Internet Connection... mars 03 19:26:09 raspberrypi python[592]: Connection OK mars 03 19:26:09 raspberrypi python[592]: Traceback (most recent call last): mars 03 19:26:09 raspberrypi python[592]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:26:09 raspberrypi python[592]: loop() mars 03 19:26:09 raspberrypi python[592]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:26:09 raspberrypi python[592]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound']['i mars 03 19:26:09 raspberrypi python[592]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:26:09 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:26:10 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:26:11 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. mars 03 19:26:11 raspberrypi systemd[1]: Stopping Alexa client for all your devices... mars 03 19:26:11 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:26:11 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:26:18 raspberrypi pulseaudio[1187]: [pulseaudio] udev-util.c: Failed to get card object. mars 03 19:26:19 raspberrypi pulseaudio[1187]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:26:19 raspberrypi pulseaudio[1187]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:26:19 raspberrypi pulseaudio[1187]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:26:23 raspberrypi python[1176]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:26:23 raspberrypi python[1176]: Checking Internet Connection... mars 03 19:26:23 raspberrypi python[1176]: Connection OK mars 03 19:26:23 raspberrypi python[1176]: Traceback (most recent call last): mars 03 19:26:23 raspberrypi python[1176]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:26:23 raspberrypi python[1176]: loop() mars 03 19:26:23 raspberrypi python[1176]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:26:23 raspberrypi python[1176]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound'][' mars 03 19:26:23 raspberrypi python[1176]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:26:24 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:26:24 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:26:25 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. mars 03 19:26:25 raspberrypi systemd[1]: Stopping Alexa client for all your devices... mars 03 19:26:25 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:26:25 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:26:27 raspberrypi pulseaudio[1242]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:26:27 raspberrypi pulseaudio[1242]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:26:27 raspberrypi pulseaudio[1242]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:26:31 raspberrypi python[1231]: [71500500] alsa audio output error: cannot estimate delay: Input/output error mars 03 19:27:02 raspberrypi python[1231]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:27:02 raspberrypi python[1231]: Checking Internet Connection... mars 03 19:27:02 raspberrypi python[1231]: Connection OK mars 03 19:27:02 raspberrypi python[1231]: Traceback (most recent call last): mars 03 19:27:02 raspberrypi python[1231]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:27:02 raspberrypi python[1231]: loop() mars 03 19:27:02 raspberrypi python[1231]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:27:02 raspberrypi python[1231]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound'][' mars 03 19:27:02 raspberrypi python[1231]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:27:02 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:27:02 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:27:03 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. mars 03 19:27:03 raspberrypi systemd[1]: Stopping Alexa client for all your devices... mars 03 19:27:03 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:27:03 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:27:08 raspberrypi pulseaudio[1507]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:27:08 raspberrypi pulseaudio[1507]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:27:08 raspberrypi pulseaudio[1507]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:27:12 raspberrypi python[1476]: [747004d8] alsa audio output error: cannot estimate delay: Input/output error mars 03 19:27:43 raspberrypi python[1476]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:27:43 raspberrypi python[1476]: Checking Internet Connection... mars 03 19:27:43 raspberrypi python[1476]: Connection OK mars 03 19:27:43 raspberrypi python[1476]: Traceback (most recent call last): mars 03 19:27:43 raspberrypi python[1476]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:27:43 raspberrypi python[1476]: loop() mars 03 19:27:43 raspberrypi python[1476]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:27:43 raspberrypi python[1476]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound'][' mars 03 19:27:43 raspberrypi python[1476]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:27:43 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:27:43 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:27:44 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. mars 03 19:27:44 raspberrypi systemd[1]: Stopping Alexa client for all your devices... mars 03 19:27:44 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:27:44 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:27:49 raspberrypi pulseaudio[1592]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:27:49 raspberrypi pulseaudio[1592]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:27:49 raspberrypi pulseaudio[1592]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:27:53 raspberrypi python[1579]: [713004d8] alsa audio output error: cannot estimate delay: Input/output error mars 03 19:28:24 raspberrypi python[1579]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:28:24 raspberrypi python[1579]: Checking Internet Connection... mars 03 19:28:24 raspberrypi python[1579]: Connection OK mars 03 19:28:24 raspberrypi python[1579]: Traceback (most recent call last): mars 03 19:28:24 raspberrypi python[1579]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:28:24 raspberrypi python[1579]: loop() mars 03 19:28:24 raspberrypi python[1579]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:28:24 raspberrypi python[1579]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound'][' mars 03 19:28:24 raspberrypi python[1579]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:28:24 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:28:24 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:28:25 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. mars 03 19:28:25 raspberrypi systemd[1]: Stopping Alexa client for all your devices... mars 03 19:28:25 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 03 19:28:25 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 03 19:28:28 raspberrypi pulseaudio[1642]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Er mars 03 19:28:28 raspberrypi pulseaudio[1642]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSu mars 03 19:28:28 raspberrypi pulseaudio[1642]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.free mars 03 19:28:31 raspberrypi python[1631]: [71500500] alsa audio output error: cannot estimate delay: Input/output error mars 03 19:29:02 raspberrypi python[1631]: ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card mars 03 19:29:02 raspberrypi python[1631]: Checking Internet Connection... mars 03 19:29:02 raspberrypi python[1631]: Connection OK mars 03 19:29:02 raspberrypi python[1631]: Traceback (most recent call last): mars 03 19:29:02 raspberrypi python[1631]: File "/opt/AlexaPi/src/main.py", line 587, in <module> mars 03 19:29:02 raspberrypi python[1631]: loop() mars 03 19:29:02 raspberrypi python[1631]: File "/opt/AlexaPi/src/main.py", line 505, in loop mars 03 19:29:02 raspberrypi python[1631]: inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, config['sound'][' mars 03 19:29:02 raspberrypi python[1631]: alsaaudio.ALSAAudioError: No such file or directory [plughw:1] mars 03 19:29:02 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 03 19:29:02 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. mars 03 19:29:03 raspberrypi systemd[1]: AlexaPi.service holdoff time over, scheduling restart. lines 1-116

It looks like you don't have the proper device specified for your microphone in /etc/opt/AlexaPi/config.yaml.
Specifically, this error shows up in there:
alsaaudio.ALSAAudioError: No such file or directory [plughw:1]
Check this page in the wiki for a next step.

thnx! but do i make changes in the config.yaml?
and if so, where/what?

arecord -D yourdevice test.wav ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM yourdevice arecord: main:722: audio open error: Ingen slik fil eller filkatalog
i get this code when i try to test the recording, the speakers work fine

ps! the last thing is in Norwegian, translated its " No such file or file category"

*catalog

@NoBreakz Update to latest version and then we can debug more.
https://github.com/alexa-pi/AlexaPi/wiki/Q&A-(FAQ)#how-do-i-upgrade-alexapi

Ive updated the Pi, both as shown in te link you posted and in the pi
config ( apt-get update )
But it seems like the pi has trouble finding the mic.
Ive tried the aplay test.mav bit i only get errors..
Any idé what can be the problem?
lør. 4. mar. 2017 kl. 19.25 skrev René Kliment<EMAIL_ADDRESS>
@NoBreakz https://github.com/NoBreakz Update to latest version and then
we can debug more.
https://github.com/alexa-pi/AlexaPi/wiki/Q&A-(FAQ)#how-do-i-upgrade-alexapi
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/issues/178#issuecomment-284170641,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYpxNj5LYvm9u6ZU3KABAj8dhselLps8ks5riaywgaJpZM4MMFzx
.

@NoBreakz Now that you've updated, post the log.

here is the debugging log
sudo journalctl -u AlexaPi.service
-- Logs begin at lø. 2017-03-04 21:53:49 CET, end at sø. 2017-03-05 12:21:11 CET mars 04 21:53:55 raspberrypi systemd[1]: Starting Alexa client for all your devi mars 04 21:53:55 raspberrypi systemd[1]: Started Alexa client for all your devic mars 04 21:54:01 raspberrypi python[575]: Traceback (most recent call last): mars 04 21:54:01 raspberrypi python[575]: File "/opt/AlexaPi/src/main.py", line  mars 04 21:54:01 raspberrypi python[575]: import coloredlogs mars 04 21:54:01 raspberrypi python[575]: ImportError: No module named coloredlo mars 04 21:54:01 raspberrypi systemd[1]: AlexaPi.service: main process exited, c mars 04 21:54:01 raspberrypi systemd[1]: Unit AlexaPi.service entered failed sta lines 1-9/9 (END)...skipping... -- Logs begin at lø. 2017-03-04 21:53:49 CET, end at sø. 2017-03-05 12:21:11 CET. -- mars 04 21:53:55 raspberrypi systemd[1]: Starting Alexa client for all your devices... mars 04 21:53:55 raspberrypi systemd[1]: Started Alexa client for all your devices. mars 04 21:54:01 raspberrypi python[575]: Traceback (most recent call last): mars 04 21:54:01 raspberrypi python[575]: File "/opt/AlexaPi/src/main.py", line 19, in <module> mars 04 21:54:01 raspberrypi python[575]: import coloredlogs mars 04 21:54:01 raspberrypi python[575]: ImportError: No module named coloredlogs mars 04 21:54:01 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 04 21:54:01 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state. ~

mars 04 21:54:01 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE mars 04 21:54:01 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state.

ok so ive read the wiki, on the debuggin its stands

If you hear the word hello multiple times and your AlexaPi doesn't work, it's because the service keeps crashing (for example due to a faulty config) and gets restarted because you chose this option in setup. Follow the instructions above to find and fix your problem.
but how to i configure my config.yaml file, ive tried, i even manage to change the file permission so that i can edit it, but im not sure wich part im gonan change, im i going to add the source for my mic?
and thanl you so much everybody for the help so far!

@NoBreakz You have to run the setup script again after the upgrade.

what script :)?

ok, I deleted AlexaPi and reinstalled it, then i tried this
pi@raspberrypi:~ $ sudo systemctl stop AlexaPi
pi@raspberrypi:~ $ sudo /opt/AlexaPi/src/main.py -d
Traceback (most recent call last):
File "/opt/AlexaPi/src/main.py", line 536, in
capture = alexapi.capture.Capture(config, tmp_path)
File "/opt/AlexaPi/src/alexapi/capture.py", line 31, in init
self.validate_config()
File "/opt/AlexaPi/src/alexapi/capture.py", line 35, in validate_config
input_devices = alsaaudio.pcms(alsaaudio.PCM_CAPTURE)
AttributeError: 'module' object has no attribute 'pcms'

what is the attributeError?

Alright, I don't know. I don't see any circular dependencies or anything.
@alexa-pi/team Anybody?

can the config.yaml file be the problem?

No.

but shouldnt I spesify the sound input (mic), because the in the audio device settings on my PI the default is set to "bcm2835" and not the mic

@NoBreakz yes, you use /etc/opt/AlexaPi/config.yaml to set it as needed for your specific hardware setup.  If you're using a Raspberry Pi with a USB Microphone/camera everything should just work after a fresh install.
__
When you did the reinstall, did you choose to create a new config.yaml or did you keep the old one?  I think your installation was sufficiently dated to where the old one might not apply.
As far as the reinstall is concerned, here's how I think we're expecting it was performed:
-sudo rm -r /opt/AlexaPi or something to delete the old directory
-cd /opt
-sudo git clone https://github.com/alexa-pi/AlexaPi
-sudo AlexaPi/src/scripts/setup.sh
-Select all defaults provided for the install.
-Create new config.yaml.  Enter all the details requested, as listed on your amazon developer account.
-Navigate to <ip_address:5050> in a browser and log in.
Does that sound about right for what you did?

hi maso, yup, thats what i did, i even did the full uninstall and did the steps all over again, except i kept the same alexa information tho, but the refresh token worked fine so i rebooted, but nothing happends, not even the "hello" from before, actually i didnt get an option this time to add it this time :P

This has nothing to do with the configuration. It looks like a bug in the python code (or pyalsaaudio). It #worksForMe though ... I'm not sure what could go wrong.

but i used the same config.template.yaml, change the name like it say sudo mv config.template.yaml config.yaml
then I put in the amazon info, and put input and output on "default"

ok, im trying thi sagain, only now im makeing a new device aswell,
when i try to get the refresh token i can only get it if i follow the localhost:5050 not the ipaddress
when i try to follow the ip address this is the message
We're sorry!
An error occurred when we tried to process your request. Rest assured, we're already working on the problem and expect to resolve it shortly.
Hide Details
Error Summary
400 Bad Request
The redirect URI you provided has not been whitelisted for your application. Please add your redirect URI in the 'Allowed Return URLs' section under 'Web Settings' for your Security Profile on Amazon Developer Portal.
im not sure if this got anything to do with the errors but its there anyway.
but i still got the refresh token

i think the problem can be in the .asound.gif file ( wich i currently dont have) so i need to create it to set the usb device as default. my best guess at the problem

ok, i earesed the whole SSD card and reinstalled it, now this comes up
i@raspberrypi:~ $ sudo journalctl -u AlexaPi.service -- Logs begin at Fri 2017-03-10 19:12:32 CET, end at Fri 2017-03-10 19:14:50 CET Mar 10 19:12:38 raspberrypi systemd[1]: Starting Alexa client for all your devic Mar 10 19:12:38 raspberrypi systemd[1]: Started Alexa client for all your device Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] server-lookup.c: Unabl Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] main.c: Unable to cont Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] bluez4-util.c: org.blu Mar 10 19:13:10 raspberrypi python[580]: INFO: Checking Internet Connection ... Mar 10 19:13:10 raspberrypi python[580]: INFO: Starting new HTTPS connection (1) Mar 10 19:13:10 raspberrypi python[580]: INFO: Connection OK Mar 10 19:13:10 raspberrypi python[580]: INFO: AVS token: Requesting a new one Mar 10 19:13:10 raspberrypi python[580]: INFO: Starting new HTTPS connection (1) Mar 10 19:13:11 raspberrypi python[580]: INFO: AVS token: Obtained successfully Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source lines 1-15/15 (END)...skipping... -- Logs begin at Fri 2017-03-10 19:12:32 CET, end at Fri 2017-03-10 19:14:50 CET. -- Mar 10 19:12:38 raspberrypi systemd[1]: Starting Alexa client for all your devices... Mar 10 19:12:38 raspberrypi systemd[1]: Started Alexa client for all your devices. Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11 Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11 Mar 10 19:12:49 raspberrypi pulseaudio[885]: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Mana Mar 10 19:13:10 raspberrypi python[580]: INFO: Checking Internet Connection ... Mar 10 19:13:10 raspberrypi python[580]: INFO: Starting new HTTPS connection (1): api.amazon.com Mar 10 19:13:10 raspberrypi python[580]: INFO: Connection OK Mar 10 19:13:10 raspberrypi python[580]: INFO: AVS token: Requesting a new one Mar 10 19:13:10 raspberrypi python[580]: INFO: Starting new HTTPS connection (1): api.amazon.com Mar 10 19:13:11 raspberrypi python[580]: INFO: AVS token: Obtained successfully Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read! Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers. Mar 10 19:13:41 raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.
raspberrypi pulseaudio[885]: [alsa-source-USB Audio] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

@renekliment  @maso27  doesn any of this make sense? sorry for beeing so noob, but nothing i try seems to work

A lot has changed in AlexaPi regarding audio. Try the latest version.
Closing due to inactivity.


[shared_preferences] Exception whenever i try to write to sharedpreferences

I have upgraded to flutter 2, upgraded all packages to null safety, got to upgrade gradle to 3.5.0 in order to make the app working again. I migrated to the new embedding as well. Its all working now, excepts the shared preferences package.
Whenever my app is trying to set a value, it throws an exception:
E/flutter (12224): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(error, Task io.flutter.plugins.sharedpreferences.MethodCallHandlerImpl$1@a3c3344 rejected from java.util.concurrent.ThreadPoolExecutor@dd8bc2d[Running, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0], null, java.util.concurrent.RejectedExecutionException: Task io.flutter.plugins.sharedpreferences.MethodCallHandlerImpl$1@a3c3344 rejected from java.util.concurrent.ThreadPoolExecutor@dd8bc2d[Running, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0]
E/flutter (12224): 	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2086)
E/flutter (12224): 	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848)
E/flutter (12224): 	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1394)
E/flutter (12224): 	at io.flutter.plugins.sharedpreferences.MethodCallHandlerImpl.commitAsync(:137)
E/flutter (12224): 	at io.flutter.plugins.sharedpreferences.MethodCallHandlerImpl.onMethodCall(:96)
E/flutter (12224): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(:233)
E/flutter (12224): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(:85)

E/flutter (12224): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(:818)
E/flutter (12224): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (12224): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter (12224): 	at android.os.Looper.loop(Looper.java:174)
E/flutter (12224): 	at android.app.ActivityThread.main(ActivityThread.java:7682)
E/flutter (12224): 	at java.lang.reflect.Method.invoke(Native Method)
E/flutter (12224): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
E/flutter (12224): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
E/flutter (12224): )
E/flutter (12224): #0      StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:581
E/flutter (12224): #1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:158
E/flutter (12224): <asynchronous suspension>
E/flutter (12224): #2      MethodChannelSharedPreferencesStore.setValue
package:shared_preferences_platform_interface/method_channel_shared_preferences.dart:30
E/flutter (12224): <asynchronous suspension>
E/flutter (12224):

Logs

[√] Flutter (Channel stable, 2.0.0, on Microsoft Windows [Version 10.0.19041.804], locale de-DE)
    • Flutter version 2.0.0 at C:\src\flutter
    • Framework revision 60bd88df91 (4 days ago), 2021-03-03 09:13:17 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\Fuhrberg\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.54.0)
    • VS Code at C:\Users\xx\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.20.0

[√] Connected device (3 available)
    • ONEPLUS A6013 (mobile) • 95a75628 • android-arm64  • Android 10 (API 29)
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 88.0.4324.190
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 88.0.705.81

looks like there's already an issue that tracks this bug https://github.com/flutter/flutter/issues/77155

@KzumO36
This certainly looks similar to https://github.com/flutter/flutter/issues/77155. There's a solution mentioned in it that you may try and see if it works for you. If not, please follow-up in that issue.
Closing from here as duplicate. If you disagree, write in comments and I'll reopen it.


Code refactoring

Related to #22

This is an amazing commit, seriously impressive the work done here refactoring all this. But it all looks fantastic so I'll merge, thanks as always!


Problems with getting started documenation re: creating/listing wallet

I ran into a few minor issues in the getting started documentation for Dawn3,

I couldn't create or list wallets with just the plugin = eosio::wallet_plugin, as is described.
I also needed plugin = eosio::wallet_api_plugin
There's no mention that you need to import the private keys into your wallet before you can use them in the next step. Semi-intuitive, but probably worth mentioning.
This line didn't work for me:
./cleos set contract currency ../../contracts/currency/currency.wast ../../contracts/currency/currency.abi
But worked when I used the contract-dir:
./cleos set contract currency ../../contracts/currency/
I couldn't issue currency until it was created (got: assertion failed: unable to find key). Turns out it was this issue: https://github.com/EOSIO/eos/issues/1725
Should add the following line to create before issuing:
cleos push action currency create '{"issuer":"currency", "maximum_supply": "1000000000.0000 CUR", "can_freeze": 1, "can_recall": 1, "can_whitelist": 1}' -p currency@active
The table name used is this command is wrong:
./cleos get table currency currency account
Should be accounts, not account
https://github.com/EOSIO/eos/issues/1742
Reading sample contract balances. The commands reference the wrong table again (account instead of account. Also transposes eosio and currency when querying accounts table for eosio balance. Should be:
./cleos get table currency eosio accounts
instead of:
./cleos get table eosio currency account

Fixes to these will be pushed to the wiki later this week as part of a broader set of wiki changes.


No longer works

Code is out of date and will not run anymore, needs updating.

same here with Inkscape 1.1

It looks like OptionParser.add_option should be updated with arg_parser.add_argument, but it seems like the arguments also need to be updated 😭

Main issue is the -e is now "--export-filename" - i added a pr that should fix this.

Thank you @kuhnchris , it works again with your code (v 1.0.1 on Ubuntu here)

you can export layers as png without any plugin now, look this: https://www.youtube.com/watch?v=5iaTyCGrWy4&t=730s

@zer0brain what do you mean "now", the video you linked is from 2015.
This plugin provides some extra features, so it is a pity that it does not work anymore. Sadly on Inkscape 1.1 it won't work for me even with @kuhnchris fix. (It installs, but when i run it nothing happens).

There's a reworked extension version, if you are interested.

@zer0brain what do you mean "now", the video you linked is from 2015.
This plugin provides some extra features, so it is a pity that it does not work anymore. Sadly on Inkscape 1.1 it won't work for me even with @kuhnchris fix. (It installs, but when i run it nothing happens).

to be honest i haven't tried inkscape lately, so it might be that I need to adapt something for 1.1, if there is already an improved version, as @dmitry-t puts it, please use that one, if not, let me know and I'll take a look at it, can't be that much to get it back to work, probabbly some parameters changed again. :-)
All the best,
Chris

OK, now I understand what @zer0brain meant: I tried out the latest Inkscape 1.2.1 and it has a built-in batch export feature that lets you export layers as PNG.
This mostly satisfies my use case (althought it would still be nice to have the additional features of the plugin).


[KYUUBI apache#6486] enabling both KERBEROS and LDAP functions simultaneously is not available

:mag: Description
Issue References 🔗

This pull request fixes #6486
To enable both authentication methods(kerberos and ldap) simultaneously.
kyuubi server set kyuubi.authentication=KERBEROS,LDAP
Other relevant authentication parameters have been correctly configured.
reproducible:
kint user01
beeline -u 'jdbc:hive2://felixzh:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi1.9.1'
ERROR as follows:
ERROR hive.Utils Unable to read HiveServer2 configs from Zookeeper
Unknown HS2 problem when communication with Thrift server.
Error: Could not open client transport for any of the Server URI's in Zookeeper: Peer indicated failure: javax.security.sasl.AuthenticationException: Error validating LDAP user: uid=anonymous,..........
Describe Your Solution 🔧
ZookeeperDiscoveryClient.scala addConfsToPublish() correctly set hive.server2.authentication.kerberos.principal
HiveSiteHS2ConnectionFileParser.java addKerberos() correctly set principal
Types of changes :bookmark:

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

Test Plan 🧪
Behavior Without This Pull Request :coffin:
Behavior With This Pull Request :tada:
Related Unit Tests

Checklist 📝

[x] This patch was not authored or co-authored using Generative Tooling

Be nice. Be informative.

The current behavior is expected. When multiple auth methods are enabled, we can NOT assume that the user wants to use Kerberos for authentication, in this case, the user must fill all properties by himself/herself.

The current behavior is expected. When multiple auth methods are enabled, we can NOT assume that the user wants to use Kerberos for authentication, in this case, the user must fill all properties by himself/herself.

Yes. You are right.  I misunderstood.

KERBEROS: beeline -u ' jdbc:kyuubi://host:port/schema;kyuubiServerPrincipal='
LADP: beeline -u ' jdbc:kyuubi://host:port/schema' -n -p


Question about world diff

New world diff feature is amazing!
I have a question. Is it possible to use it in other places? In Neogit view, for example?

Not really, at the moment it can only be used on buffers that are tracked by git with gitsigns attached.


[spec] Remove floating point NCEG operators from spec

According to https://dlang.org/deprecate.html, we can remove
floating point NCEG operators from specification.

Thank you!


How can I manually delete 2 or three entries from the database

This is not really an issue, but a request for some advice.
I'm writing some hooks that run when new entries arrive.
How can I manually remove some entries from the database, so that when I press "G"
two or three new entries are downloaded and hooks are run.

It sounds like your goal is testing a new entry hook function? Hmm,
that's a good question. You could pass a dummy entry manually to your
function to see how it reacts. There's also a test harness (under
tests/) for running things on a virtual, temporary database.
More generally, Elfeed's philosophy is that you don't delete entries, so
there's nothing exposed to do so. After deleting an entry, Elfeed would
still need to keep track of these deleted entries to prevent them from
appearing again if they're still available from the original feed
(though this doesn't really apply when testing). Rather than track
deleted entries in a different "deleted entries" index, the simpler
solution is to build on top of the existing tagging system, hiding
entries with, say, a "junk" tag on them.
That being said, I do think it would be reasonable for a function on the
new entry hook to be able to reject an entry on the spot based on
whatever criteria it wants. This isn't something Elfeed would need to
track  — that being the hook's responsibility — so the usual issues with
deleting entries doesn't apply.


Handle light group

We should support also the following light command format *1*1 - #2 - ##, "where" syntax with hash

I think this is more a feature / enhancement than a bug, but it's just me !

:wink:

Updated rx-openwebnet v1.3.0 to handle this feature

Version 2.9.0 adds this feature


[BUG] onPushNotificationReceived null object reference

Describe the bug
When receiving firebase notifications which is not from NotificationHubs, I get null object reference exception.
Exception or Stack Trace
 java.lang.NullPointerException: Attempt to invoke interface method 'void com.microsoft.windowsazure.messaging.notificationhubs.NotificationListener.onPushNotificationReceived(android.content.Context, com.microsoft.windowsazure.messaging.notificationhubs.NotificationMessage)' on a null object reference
        at com.microsoft.windowsazure.messaging.notificationhubs.FirebaseReceiver.onMessageReceived(FirebaseReceiver.java:52)
        at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@21.0.1:13)
        at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@21.0.1:8)
        at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@21.0.1:3)
        at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@21.0.1:3)
        at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(Unknown Source:1)
        at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.1.1:6)
        at java.lang.Thread.run(Thread.java:764)

To Reproduce
Steps to reproduce the behavior:

Configure NotificationHubs
Test send notifications using Azure portal's Test Send feature.
Receive notifications from Test Send.
Test send notifications using FCM.
See above exception.

Code Snippet
Add the code snippet that causes the issue.
init {
NotificationHub.setListener(this)
}
override fun onPushNotificationReceived(context: Context?, notificationMessage: NotificationMessage?) {
Log.d("notification: ${notificationMessage}")
}
Expected behavior
I expect to get notifications from both notificationHubs and FCM.
Setup (please complete the following information):

OS: Android 9, Samsung SM-G950N
Version of the Library used: 1.1.4

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

I'm seeing the same issue with push notifications from notificationhub. I'm running the latest version of the library. I'm seeing it on Samsung, LG, Google, and Motorola phones and versions 7, 9, 10, 11 of Android. 100% of the time the app is in background.

@marstr @stankovski I had same problem too.
When I sent Data message, and my app is killed before, crash occured. The log is:
java.lang.NullPointerException: Attempt to invoke interface method 'void com.microsoft.windowsazure.messaging.notificationhubs.NotificationListener.onPushNotificationReceived(android.content.Context, com.google.firebase.messaging.RemoteMessage)' on a null object reference
        at com.microsoft.windowsazure.messaging.notificationhubs.FirebaseReceiver.onMessageReceived(FirebaseReceiver.java:52)
        at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@21.0.1:13)
        at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@21.0.1:8)
        at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@21.0.1:3)
        at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@21.0.1:3)
        at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(Unknown Source:1)

Is it a sdk bug? Please tell me if you fixed it. Thank you so much!

Howdy folks, sorry for the delay here. Snuck by me while I was on vacation. I'll get this into triage and investigate.

@marstr Thank you so much, please investigate it and ping us if you found something.

@marstr I'm sorry to bother you. But I really need it, so can you share a bit about the reason for the bug and when it will be fixed?
I am very grateful for that. Thank you so much.

@marstr I'm sorry to bother you. But I really need it, so can you share a bit about the reason for the bug and when it will be fixed?
I am very grateful for that. Thank you so much.

@marstr Please tell me if you found something.

Alright - I did some investigating today. The cause of this issue is regarding Android lifecycles, and the different entry points for your applications that will be encountered during foreground usage and background receipt of remote messages.
Essentially, by calling NotificationHub.setListener in an Activity, it isn't getting set when the application is started from the background by launching the FirebaseMessagingService, which throws the exception seen above when there is no NotificationListener set.
The way to fix this is to set the NotificationListener earlier in the Android lifecycle, so it is set regardless of the entrypoint that is used while the app is being launched. The easiest way to do this is to extend the Application class, override the onCreate method, and update your AppManifest.xml to use your overload.

I should say - this seems like it's a common enough "gotcha" that I'm looking into what it would take to update the sample applications to demonstrate the Application level instantiation logic. I can't promise a timeline on that work yet though.

Since this is an Android lifecycle nuance, and there isn't direct action to take with the SDK, I'm going to close this issue.

@marstr Sorry, but I got the crash when my app is killed, and the notification push come.
I mean at that time, the app is absolutely in background. So do you think this way will work?

The way to fix this is to set the NotificationListener earlier in the Android lifecycle, so it is set regardless of the entrypoint that is used while the app is being launched. The easiest way to do this is to extend the Application class, override theonCreate method, and update your AndroidManifest.xml to use your class.

Yes - basically when your app is in the background, Android may decide to tombstone it. In this case, when the notification is received it needs to start the app again. However, because this time it's starting it from the Android Service that receives notifications, not your normal Activity, the NotificationHub object isn't getting configured. Basically, moving the NotificationHub.start call and the NotificationHub.setListener call to an Application.onCreate method should solve the problem because it will get invoked regardless of whether the application is brought back to life through your Activity, or the notification receiving Service.

Thank you @marstr I'll try it. Have nice weekend!

Similar question/answer on Stack Overflow for those interested: Azure Notification Hubs for Android: How do I handle Data-Messages with a Background-Service?


Occasionally restart of avahi-daemon is required after boot of VM

Seems to be an issue related avahi-daemon/zeroconf


NEI/Creativw Tab hang

Minecraft freezes when I try to pull up the mekanism creative or nei tab in the latest version of resonant rise, <IP_ADDRESS>
I belive this is due to the sheer number of items minecraft is attempting to display.

Most likely due to the Portable Tanks. Disable "PrefilledPortableTanks" in your config.

Thank you. Sorry to bother you.

No problem at all!

Since this continues to be an issue, even in the current build. Why not actually fix the bug that's causing portable tanks to crash everyone's games?


Example programmatic_database_usage.py has incorrect hard-coded path to database

nixnet-python/nixnet_examples/programmatic_database_usage.py, line 18 assigns an incorrect path. Should be as follows:
- database_filepath = os.path.join(os.path.dirname(__file__), 'nixnet_examples\databases\custom_database.dbc')
+ database_filepath = os.path.join(os.path.dirname(__file__), 'databases\custom_database.dbc')
We should also determine why this issue wasn't identified by automated tests.

The test file that is supposed to run examples lives here:
nixnet-python/tests/test_examples.py
We should check to see if this test is currently being run with our CIs. If not, we should consider adding it there so we catch these type of things automatically.

The examples are run with the driver mocked out.

Examples can be verified in situations without required hardware present (don't have to wait for CI)
Testing examples with a real driver is more complicated.  It might require changing the examples to be more "testable" which might put them at odds with their purpose of being examples.

See https://github.com/ni/nixnet-python/blob/master/tests/test_examples.py