Keep tweaking the display of item access on the page

Data changes (@alexwlchan):

[ ] Set the access status on items with method "Online request" and no status to "Open"
[ ] Set the access method on items which are on hold to "Not requestable"
[ ] Set the access method on open shelves items to "Not requestable"

UI changes (@davidpmccormick):

[ ] Display the access status instead of the access method
[ ] Don't display an access status or access method for open shelves items, just the location

User testing (@DominiqueMarshall):

[ ] Check that users understand the meaning of an item with an "on hold" note

What if we don't have an access status on the condition?
We should look at whether we can make it a required field on the model.


Angular 2 Models article

There's a really important part missing which is about using models that already exist.
How can you use a Model that already exists? I'd show how to add a static User.Get method to the class or factory to show how to get an existing User in a particular page instead of just saving

SEO checklist: https://docs.google.com/a/auth10.com/document/d/1-W6BVt1EaNrCMA-IUHSvwQUFBlk7XRgkhQyhxJyYh-o/edit?usp=sharing


fleek add causes fleek apply to fail

Describe the bug
In fleek 0.9.18 when git.{autocommit,autopush}=true, fleek add is now generating changes from the .fleek.yml then committing and pushing them.  This conflicts with fleek  apply that will error out if there is nothing to commit.
To Reproduce

fleek add {anything}
(notice it does the generate, git commit, and git push)
fleek apply
See error from git commit

Expected behavior
fleek add {something} && fleek apply should succeed to add the package and then activate the change.
Environment

OS: Ubuntu 22.04
Shell: bash or zsh (tested in both)
fleek version 0.9.18

Additional context
This appears to be new in fleek 0.9.18, I didn't experience this problem before I did up update of fleek.

Temporary workaround:
When the fleek apply fails with a git commit error after running however many fleek add and/or fleek remove commands, do the following:

cd ~/.local/share/fleek/ (or use the alias fleeks)
`nix build ".#homeConfigurations.$(id -un)@$(hostname).activationPackage"
home-manager switch --flake .

This effectively runs what fleek would normally do after the commit, but does so manually.

I think it's missing a dirty check before it does the git add/commit/push cycle.

I used the version of fleek sometime before this, and fleek add didn't used to do anything with the git repo (from what I could tell). The issue is that now both fleek add and fleek apply try to do the commit and sync, but fleek add does only the git portion without the nix portion, and fleek apply does either/both only if the git workdir is still dirty.

@mtalexan can you replicate this with a git status in between the add and apply. I can't replicate this, and i'm not sure why.  Debug logs with FLEEK_DEBUG=1 fleek <command> would be useful too.

I never got back to this to replicate it again, but it seemed like it was probably just in the one exact version.  I'm on 0.10.5 and have no such issue anymore, and didn't have the issue when I was using the version prior to 0.9.18.
I'm pretty sure the problem was just an error checking vs responsibility one in the sub-commands for that specific release version.  The fleek apply didn't expect any other subcommand to do the push, so it was using that to determine if there was any nix installations to do.  But in the meantime the fleek add command had added support for committing and pushing.
Regardless, it's working without issue now.

thanks for reporting


check in gozk code into vendor/

No function change.
Check in gozk code instead of using "go get"

I think it would be good to track libraries with git submodules.

Unfortunately, gozk is hosted on launchpad, and is using Bazaar instead of git.
We really should try using gom instead of submodules; that gives us the version tracking we really want, without having to clone the entire repo (which can be annoyingly slow).  Plus it works with non-git libraries.  (I'm not against gpm/godeps/other package managers; gom just looks nice and similar to Bundler, which we've used extensively with Ruby at Ooyala).

I agree. check in code is probably the worst way to introduce dependencies. git submodule, when applicable, is not champion of this field either.
I am willing to give gom a try; but may i have this pull request approved first?

It seems wrong to check in a giant blob of code that we expect to remove; it bloats the git history forever for no good reason.  If you're going to try using gom, why not wait to merge this until you see if that works better?

Closing this PR as it seems irrelevant after moving to gom with this pull request.


Use ShadCN's DropdownMenu in the Cloud UI

This PR follows https://github.com/rilldata/rill/pull/3736, which introduces the ShadCN DropdownMenu component set. This PR uses the new dropdown menu in the following places in the Cloud UI:

The top bar's breadcrumbs' dropdown menus
The one-element menu that opens upon clicking a dashboard's "Share" button
The user avatar's dropdown menu in the top-right-hand corner of the application
The scheduled report page's dropdown (which shows the "Edit report", "Delete report" actions)

Closes #3630
Note: In the user avatar menu, I'd prefer if the "View As" submenu opened on click rather than on hover. I think I'm blocked by a bug with controlled dropdown menus. I've opened up the following issue in ShadCN-Svelte: https://github.com/huntabyte/bits-ui/issues/245

Regarding your issue with the SubTrigger, I agree that it's unintuitive. You have to also set disabled={true} on the SubTrigger and then you can add a control function via on:click

Regarding your issue with the DropdownMenuSub, I agree that it's unintuitive. You have to also set disabled={true} on the SubTrigger and then you can add a control function via on:click

Oh, nice find. Works 👍


Integration entries not populating devices/entities

Hello, I have two Acti9 PowerTag Link HD - Wireless to Modbus TCP/IP Concentrators (A9XMWD100) and some power meters connected to them:

A9MEM1520
A9MEM1540
A9MEM1580
A9MEM1591

This might be the same or similar problem to issue #15...?
When I try to connect either A9XMWD100, I encounter a problem. The automatic DPWS discovery finds both of them and I can add them to the integration (v0.2.2).
I get to a problem at this stage. One of the meters seems to get connected fine but the other doesn't - no devices or entities (attached screenshot):

You asked for logs in issue #15 to troubleshoot, so I am attaching the logs I get.

Also attaching the full logs.
If you need any additional logs or further information, please do tell. I'll be happy to provide so  we can troubleshoot the problem.

Hi, thanks for being so forward to provide the logs immediately! :)
It crashes right when it's querying your device's usage. Is it possible that this wasn't configured yet on your powertags?
I also fixed a logging issue, can you please update to v0.2.3 and attach the logs again?

Thanks for a speedy response and update.
I've updated and there is some progress. The PowerTagLink-Pisarna was populated with a lot more entities (from 2 on v0.2.2 to 65 on v0.2.3). The other PowerTag remains unpopulated. I've deleted it and re-added it with DPWS discovery with the hope it might help, but no change:

Here are the new logs.
If I connect to PowerTagLinks directly there is data from the connected power meters. (Here) is an example from the one that's not being populated with any entities (Proizvodnja).
I have just double checked their settings and both have been configured the exact same way except for the IPv6 setting. The one that's causing problems has IPv6 set/checked. You mentioned this might cause problems for Panel Server only and not for PowerTag Link devices under Installation/preparation. Should I disable IPv6 (we don't need it) and try again?

Small update that might provide additional information for troubleshooting.
I've installed HA on Hyper-V to try and connect with PowerTags with a unmodified fresh installation of HA. I get the same problem. The same PowerTag (Pisarna) connects and populates devices/entities without a problem and the other one (Proizvodnja) again gives "No devices or entities".
There is a connection to both though, because ATM I'm off site and both PowerTags give an error "Failed setup, will retry" with a pop-up Modbus Error: [connection] Failed to connect[ModbusTcpClient(IP:PORT)], which is expected since I'm not on site. But it shows that when onsite, it connects to both devices at least partially?

Alright I released v0.2.4 for you, please try it out and check if it fixes the problem. :)

Very thankful for the help!
Unfortunately, something broke and the situation is worse than before. Devices "fail to set up".

I tried removing and adding back a device (Proizvodnja) and even that broke. When trying to add with DPWS discovery I get an error:

When trying to add manually I get a "Failed to connect".
Attaching multiple logs since they aren't the same:

1st log after updating to v0.2.4 and HA restart (1st screenshot above).
2nd log was downloaded sometime in between 1st and 3rd, but I'm not sure what the state of restarting, removing, adding of devices was.
3rd log after removing PowerTagLink-Proizvodnja and trying to add it back, restarting HA for the second time and trying to add it once more.

I'm sorry for the confusing state of logs. Hopefully more information, even though confusing, might help to troubleshoot.

 Please check out v0.2.5.

No worries. All the help is very much appreciated. Thank you for the quick response too.
I've just updated to v.0.2.5 and we made some progress! The other gateway (renamed from Proizvodnja to PRZV between the updates) now connects successfully (at least it looks so) and shows data for a few devices, but not all. There are 28 meters connected to the gateway and only 11 show up (12 are shown on the screenshot because 11 meters + 1 gateway).

When looking at the 11 devices connected some say "wireless communication valid". I'm guessing this the default value and not a bug, right? Because I've not named all the devices connected the meters. For example, I have named the "Pakirka" device which is shown on the screenshot attached below. If it's working as intended, then all good.

I'm attaching current logs for further debugging: HA_PowerTagGateway_v0.2.5_2024-05-03.log

Please check out v0.3.0. :)

Amazing job! You've done it. All the meters are connected and read now.

There are some errors still present, but they don't seem critical.
One error is repeated many times and there is one unique error:

Attaching the full logs: HA_PowerTagGateway_v3.0.0_2024-05-06.log
I'm not sure if this is fixable from our end though...

Happy to hear! :)
The temperature ones, I can fix, but that would result in people's state history being invalidated and a different warning will be shown.
The reactive energy (VAh) isn't a unit that is supported by HA yet, so I have to lobby that one. I'll do all of this type of warnings at once.

Just for reference, there's some active discussion for supporting VAh and varh; https://github.com/home-assistant/architecture/discussions/724


requestValidationMode=0.0 undocumented

It seems, according to the reference source code (https://github.com/Microsoft/referencesource/blob/master/System.Web/HttpRequest.cs), that it is possible to set requestValidationMode="0.0", to disable validation completely. In fact, looking at that code (and my own experiments) setting it to "2.0" will not disable request validation completely, only setting it to "0.0" will do that.
This also means the section stating that "Any numeric value smaller than 4.0 (for example, 3.7, 2.9, or 2.0) is interpreted as 2.0." is erroneous, as "0.0" will result in a different behavior than setting "2.0".

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7a348f32-e8ba-0484-4bfe-d1f88ff9adef
Version Independent ID: 6b3e9fd1-914a-3e40-bd2f-199da92c74d8
Content: HttpRuntimeSection.RequestValidationMode Property (System.Web.Configuration)
Content Source: xml/System.Web.Configuration/HttpRuntimeSection.xml
Product: dotnet-api
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Thanks for your feedback @ahockersten. @scottaddie @Rick-Anderson can one of you look at this?

@danroth27  who can review this?

@Eilon ?

@HongGit can you answer this?

@ahockersten what you have observed is correct.
Setting requestValidationMode="0.0" will completely disable request validation in an application.
Setting requestValidationMode="2.0" will revert back to the original behavior.
This change was added in .NET 4.6 and above.
@Rick-Anderson could you please help us to get the documentation updated?

@Rick-Anderson has created PR https://github.com/dotnet/dotnet-api-docs/pull/447 for this. @HongGit please help review it.


Missing icon in backend nav

Hey there,
I've created a missing icon (see picture) for the backend nav:
/* Icon Leaflet */ #tl_navigation .group-leaflet { 	background: url(../../layout/svg_icons/map_grey.svg) 3px 2px no-repeat;     background-size: 12px; }
And here's the icon (used 30% grey for it): https://github.com/feathericons/feather/blob/master/icons/map.svg
Looks like this:

Greetings,
ToM

I don't understand the purpose of this. How is this related to the Leaflet core?

I don't understand the purpose of this. How is this related to the Leaflet core?

For me, its a step more to perfection for leaflet...
Every group category has its icon, that was my intention, to edit and share it.
Tom


Add a stand-alone "timing" program (PR 15088)

This is a re-creation of #15088

This is a re-creation of #15088

I wonder why you re-recreated it?
This way it is harder to follow-up on the results you posted in #15088.

I wonder why you re-recreated it?

It was moved to a different fork repo.

@richsalz moved the source to the Akamai github repo from his personal repo.

This PR is in a state where it requires action by @openssl/otc but the last update was 186 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 217 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 248 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 279 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 310 days ago

I wonder what the current state of affairs regarding inefficiency of credential loading is.
Is this still a problem? I fear so.
Are there open issue reports that can be linked to this tool?

I've just filed #18814 which makes use of this tool.

Glad you find it useful.
My interest is in the steady-state overhead.

I've used this too, I think it should be merged.

I am not contributing to OpenSSL, please take this PR and do what you want/need.

Fixups are now #18821 - I had to copy this because I cannot write to the akamai repo.
So closing this one.

@DDvO, I can write to the Akamai repo...


How can I change delay

this is to move question from Android ndk sample:  https://github.com/googlesamples/android-ndk/issues/476
I want to change delay. for example, by changing sample rate or buffer size.
How can I do it ?

Yes. I want to have ability to change delay.
I try that repo https://github.com/googlesamples/android-audio-high-performance  but it doesn't compile.

which one you tried: oboe, or aaudio one?

Hello alexd555,
By "change delay" do you mean that you want to create an echo effect? Or do
you want to decrease the audio latency?
Phil Burk
On Dec 23, 2017 12:30 AM, "alexd555"<EMAIL_ADDRESS>wrote:
Yes. I want to have ability to change delay.
I try that repo https://github.com/googlesamples/android-audio-
high-performance but it doesn't compile.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/android-audio-high-performance/issues/92#issuecomment-353714071,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE76aXAVeDF9ZKyTMAXaLLSd3bBx0YAdks5tDLoMgaJpZM4RLcuP
.

Yes. I want to increase or decrease latency. I also want to create an echo effect

The way that you decrease latency depends on the API that you are using. We
recommend using Oboe. What are you using?
To create an echo effect is not Android specific. You can find lots of
references online.
In essence, you create an array of samples and do something like this:
output = delayLine[cursor];
delayLine[cursor] = input;
cursor++;
if (cursor >= SIZE_DELAY_LINE) cursor = 0;

Phil Burk
On Sat, Dec 23, 2017 at 9:37 AM, alexd555<EMAIL_ADDRESS>wrote:

Yes. I want to increase or decrease latency. I also want to create an echo
effect
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/android-audio-high-performance/issues/92#issuecomment-353738731,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE76aQQ7-ldAQWXSDpUzwX4nfyLunEBQks5tDTptgaJpZM4RLcuP
.

What is oboe ?
If you mean " https://github.com/googlesamples/android-audio-high-performance" that I get error:
Error while executing process E:\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments

Oboe is a C++ wrapper for AAudio and OpenSL ES. It is recommended if you
want to write audio code in native C++.
https://github.com/google/oboe
If you want to write audio code in Java then we recommend using the
AudioTrack and AudioRecord Java classes.
On Sat, Dec 23, 2017 at 1:41 PM, alexd555<EMAIL_ADDRESS>wrote:

What is oboe ?
If you mean " https://github.com/googlesamples/android-audio-
high-performance" that I get error:
Error while executing process E:\Android\sdk\cmake\3.6.4111459\bin\cmake.exe
with arguments
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/android-audio-high-performance/issues/92#issuecomment-353749780,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE76afwUM1XDspHhLygRL0Xr5RV3eq2aks5tDXOdgaJpZM4RLcuP
.

I have java code but I have 150ms latency on nexus 4 or 5 but I need below 100ms.
Problem of java code is that minimum buffer size depend on sample rate. If I try to change buffer to 96,128,256,512 then I get same result
AudioRecord record = new AudioRecord(MediaRecorder.AudioSource.MIC,
SAMPLE_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
BUF_SIZE);
record.startRecording();
long shortsRead = 0;
audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
SAMPLE_RATE,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
BUF_SIZE,
AudioTrack.MODE_STREAM);
audioTrack.play();
while (mShouldContinue) {
int numberOfShort = record.read(audioBuffer, 0, audioBuffer.length);
if (numberOfShort> 0) {
audioTrack.write(audioBuffer, 0, numberOfShort);
}
}
audioTrack.stop();
audioTrack.release();
record.stop();
record.release();

Hello Alex,
To minimize latency, you want to use the devices natural sample rate
and burst size:
String text = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
int framesPerBurst = Integer.parseInt(text);
text = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
int sampleRate = Integer.parseInt(text);
The framesPerBurst is the size you should use for your audioBuffer length.
The buffer that you allocate for the AudioRecord and AudioTrack should
be bigger, and a multiple of this burst size.
And choose LOW_LATENCY mode.
https://developer.android.com/reference/android/media/AudioTrack.html#PERFORMANCE_MODE_LOW_LATENCY
You should also fully drain the AudioRecord for the first second when
doing the echo. Otherwise you end up with extra data left in the
AudioRecord, which adds latency.
After that the record and playback buffers will be in sync and you can
just use the loop you have now.
You can also tune the output buffer latency if you are on N or later.
https://github.com/philburk/android-midisuite/blob/master/MidiTools/src/main/java/com/mobileer/miditools/synth/AudioLatencyTuner.java
https://developer.android.com/reference/android/media/AudioTrack.html#setBufferSizeInFrames(int)
Phil Burk
On Sat, Dec 23, 2017 at 8:57 PM, alexd555<EMAIL_ADDRESS>wrote:

I have java code but I have 150ms latency on nexus 4 or 5 but I need below
100ms.
Problem of java code is that minimum buffer size depend on sample rate. If I
try to change buffer to 96,128,256,512 then I get same result
AudioRecord record = new AudioRecord(MediaRecorder.AudioSource.MIC,
SAMPLE_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
BUF_SIZE);
record.startRecording();
long shortsRead = 0;
audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
SAMPLE_RATE,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
BUF_SIZE,
AudioTrack.MODE_STREAM);
audioTrack.play();
while (mShouldContinue) {
int numberOfShort = record.read(audioBuffer, 0, audioBuffer.length);
if (numberOfShort> 0) {
audioTrack.write(audioBuffer, 0, numberOfShort);
}
}
audioTrack.stop();
audioTrack.release();
record.stop();
record.release();
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank You.
Could you give more specific example ? I want to have control on latency between 50-150ms.
Besides, this code not compiled
audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
How can I create audioManager ?

Oops. Do this first.
AudioManager audioManager = (AudioManager)
getSystemService(Context.AUDIO_SERVICE);

Could you give more specific example ? I want to have control on latency between 50-150ms.

You don't have direct control over latency. It will vary from device to device.
You best bet is to reduce latency to the minimum and then add a delay
effect if you want an echo.
You can estimate the actual latency by calling getTimeStamp() and
comparing the time that frames are presented to the time that you
write them.
We can give more examples during the week when folks are back to work.
Phil Burk
On Sun, Dec 24, 2017 at 1:21 PM, alexd555<EMAIL_ADDRESS>wrote:

Thank You.
Could you give more specific example ? I want to have control on latency
between 50-150ms.
Besides, this code not compiled
audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
How can I create audioManager ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Could you explain what meaning of framesPerBurs ?
Do you mean that buffer size of 240 samples can be better than 96 samples ?
How can I run "AudioManager audioManager = (AudioManager)
getSystemService(Context.AUDIO_SERVICE)" from class (not MainActivity) ? or pass this to another class from MainActivity ?

Hi,
Could you answer on my questions ?
Thanks,
Alex

Google is on Holiday Dec 25 & 26, and Dec 29 and Jan 1.
On Tue, Dec 26, 2017 at 12:28 AM, alexd555<EMAIL_ADDRESS>wrote:

Hi,
Could you answer on my questions ?
Thanks,
Alex
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/android-audio-high-performance/issues/92#issuecomment-353938152,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE76aQ5z2_ANsdTXZCT4bgBDTM-DrQZKks5tEK4lgaJpZM4RLcuP
.

@alexd555 Phil is explaining to you the way to get the device's native sample rate and buffer size. you could also look at this code here:
https://github.com/googlesamples/android-ndk/blob/master/audio-echo/app/src/main/java/com/google/sample/echo/MainActivity.java#L138
In latest OS, there is an audio fast path when your application uses those "native" parameters( no resampling inside audio framework or audio driver,  and no buffer management overhead when passing audio samples to lower layer stacks if your audio buffer size is the same as framesPerBurst,  DMA transferring is in burst ).
for Oboe, you link is correct, the sample is
https://github.com/googlesamples/android-audio-high-performance/tree/master/oboe
The youtube stream is here. I believe there
Oboe homepage is on github ( source and doc ),  I believe the Oboe sample would automatically download and build Oboe lib.

@alexd555 to build the Oboe sample, need to do a small modification in CMakeLists.txt:

clone Oboe repo to somewhere on your system first
tell CMakeLists.txt where your oboe directory is with:
set (OBOE_DIR  to-your-local-oboe-repo-directory)

then it should be able to built.  we should probably add this into README.md and add scripts to auto-clone oboe repo if not in certain directory.  will sync-up with Dontuner, thanks for trying it out!

Hi Alex,
I strongly suggest reading this guide: https://developer.android.com/ndk/guides/audio/audio-latency.html
Also check out the hello-oboe sample: https://github.com/googlesamples/android-audio-high-performance/tree/master/oboe
Lastly, if you want the lowest possible latency you'll need to write your code in C++. Java latency will be higher on all devices by a minimum of ~20ms.
Specific answers below:
Could you explain what meaning of framesPerBurst?
framesPerBurst is the number of audio frames which are read by the audio device during its read operation. This read operation happens every few milliseconds.
For example, if the framesPerBurst was 192 frames and the audio device's sample rate was 48000 samples per second the audio device would perform a read operation every 4ms because 192/48000 = 0.004 seconds.
The same term is applied to write operations as well, except that the audio device supplies frames of audio data to the app (e.g. from the phone's built-in microphone).
framesPerBurst typically represents the lowest possible latency for that audio device, since it cannot read or write in any smaller burst sizes. Common values for framesPerBurst are: 96, 192 and 240.
Do you mean that buffer size of 240 samples can be better than 96 samples ?
Each audio device has a fixed framesPerBurst size. You should supply data (typically an array of floats or 16-bit integers) of this specific size. https://developer.android.com/ndk/guides/audio/audio-latency.html#output-latency
How can I run "AudioManager audioManager = (AudioManager)
getSystemService(Context.AUDIO_SERVICE)" from class (not MainActivity) ? or pass this to another class from MainActivity ?
getSystemService is a method of Context. MainActivity is a subclass of Context. If you wish to call that method from another Java class you will need to pass this to your Java class (e.g. in the class constructor).
What do you mean "You should also fully drain the AudioRecord for the first second when
doing the echo" ? Can you give example ?
When you start reading data from an input audio device (e.g. a microphone) its data buffer may be full. This means you'll be reading the oldest data first which will result in sub-optimal latency. To read the newest data you should clear the audio device's data buffer, this can be done by performing a few successive reads (data can be discarded) which drains the buffer, allowing you to access the latest data from the input audio device.
Example: https://github.com/googlesamples/android-audio-high-performance/blob/master/aaudio/echo/src/main/cpp/echo_audio_engine.cc#L303

Can you give example with audio effects like HPF and WSOLA algorithm ?
for example , I need to save last samples before convolution.
Thanks,
Alex

Hi,
Could you help me with implantation HPF in Real Time ? I want to add it to NDK audio echo example.
Thanks,
Alex

This site is for Android audio specific programming. A High Pass Filter, or WSOLA, or delay techniques are not Android specific. I suggest doing a Google search. Start with "RBJ filter cookbook". Good luck!

audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);
requestAudioPermissions();
    (new Thread()
    {
        @Override
        public void run()

        {

            recordAndPlay();

        }
    }).start();

    startButton =  findViewById(R.id.start_button);
    startButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            if (!isRecording)
            {
                initRecordAndTrack();
                startRecordAndPlay();
            }
        }
    });
    stopButton =  findViewById(R.id.stop_button);

    stopButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
                stopRecordAndPlay();
        }
    });
}

public void initRecordAndTrack()
{
   // int min=9000;
    min = AudioRecord.getMinBufferSize(48000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
    audioRecord =new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION,16000,AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT,min);

    if (AcousticEchoCanceler.isAvailable())
    {

        AcousticEchoCanceler  echoCancler = AcousticEchoCanceler.create(audioRecord.getAudioSessionId());
        echoCancler.setEnabled(true);
    }
    int maxJitter = AudioTrack.getMinBufferSize(16000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);

    audioTrack = new AudioTrack(AudioManager.MODE_IN_COMMUNICATION, 16000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, maxJitter,
            AudioTrack.MODE_STREAM);
}

private void recordAndPlay()
{
    final short[] lin = new short[1024];
    final int[] num = {0};
    audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
    int bufferSize = 0;
    while (true)
    {
        if (isRecording)
        {

            bufferSize++;
            Log.i("recording::","continue...");
            num[0] = audioRecord.read(lin, 0, 1024);
            audioTrack.write(lin, 0, num[0]);
       }
    }
}

private void startRecordAndPlay()
{
            audioRecord.startRecording();
            audioTrack.play();
            isRecording = true;
}

private void stopRecordAndPlay()
{
    audioRecord.stop();
    audioTrack.pause();
    audioTrack.release();
    isRecording = false;
}

i have try this .... i want to add custome delay like 2 second, 3 second and more,,, how to acheive this ???


feat(node): enable logging

Fixes #1774

I am stumped on this one. I can get some, but not all logs to show up in Node tests:
npm test -- --useStderr remote.test.ts

 RUNS  __test__/remote.test.ts
 RUNS  __test__/remote.test.ts
 RUNS  __test__/remote.test.ts
[2024-10-28T21:31:51Z WARN  lancedb::connection] The rust implementation of the remote client is not yet ready for use.
[2024-10-28T21:31:51Z DEBUG reqwest::connect] starting new connection: http://localhost:8000/
 RUNS  __test__/remote.test.ts
[2024-10-28T21:31:51Z WARN  lancedb::connection] The rust implementation of the remote client is not yet ready for use.
 PASS  __test__/remote.test.tsqwest::connect] starting new connection: http://localhost:8000/
  remote connection
    ✓ should accept partial connection options (36 ms)
    ✓ should pass down apiKey and userAgent (17 ms)
    ✓ allows customizing user agent (2 ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        1.223 s, estimated 3 s
Ran all test suites matching /remote.test.ts/i.

There should be substantially more logs. But I can't tell if Jest is swallowing them or if the Rust crate isn't flushing them.

Turns out, there just wasn't much logging coming from reqwest anyways. I've added some of our own logging.


Batch preloading for history proof generation

Once we've loaded the users's states, we should be able to do a breadth-first search to preload all the nodes we'll need to touch to generate the necessary proof material. This would greatly reduce the number of DB queries and overall proof generation time.

New benchmark, before optimizations:
Benchmark key history proof generation on a small tree
                        time:   [49.902 ms 50.442 ms 51.001 ms]
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild


Add support for SIP Proxies so that non FritzBox SIP trunks can configured

Hi,
can you add the support for SIP Proxy!
To use SIP Trunk providers like bellSIP or Fonial we need to add a SIP Proxy server.
The pjsua2 is supporting the config option, but the HA plugin should make the proxy config setting and handling available.
Can you please add the proxy support in the ha-plugin?

just fyi vonage and linphone sip  work fine, so not  locked to  just using fritzboz sip trunks only

Hi, Any news on this? My provider Movistar (Spain) also requires a SIP proxy to register.


Don't allow setting name for array

This addresses the confusion in #7218 without getting rid of .name or adding any rename functionality.

@jrbourbeau is it ok with you if I merge this?

Yeah that's exactly right. The original issue was all about a messed up task graph that came about from someone thinking dask arrays were like xarray objects and mucking with the name.

FWIW there's precedence for this as it's similar to what we do with .chunks

Exactly! I was inspired by that :)


unexpected include required to compile simple sample

I have tried to create the WebSocket server using the Beast. As it mentioned in the README file Beast is header only library I have put only Beast/include directory to my project space.
During compilation I have received the following error
Beast/include/beast/websocket/detail/utf8_checker.hpp:17:39: fatal error: beast/unit_test/dstream.hpp: No such file or directory
To me it looks quite unexpectedly. Why real code includes something from unit tests.
@vinniefalco could you please explain this or share the link to some docs?

P.S. I am using master branch. Looks like on the develop  branch  it works fine

Yep, I see that. Those includes should not be there, I will try to fix it shortly.


wrapping op in while_loop makes it run faster, even with single iteration

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):  Linux Ubuntu 16.04
TensorFlow installed from (source or binary): Source
TensorFlow version (use command below): v1.5.0-0-g37aa430 (1.5.0)
Python version: 3.5.2
Bazel version (if compiling from source): 0.9.0
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: CUDA 9.1, CuDNN 7
GPU model and memory: GeForce GTX 1050, 4042MiB
Exact command to reproduce: See below

Describe the problem
I am working on an object detector. I have one entry point to my code that detects objects in a single image, and another that reads in a batch of images. The batch version uses tf.while_loop to apply the same inference code to each image in the batch. I can't put all the images into a single tensor because they are all likely to be different dimensions, so I am using a TensorArray. The final results work as expected, but the timing behavior is odd.
The first sess.run call in the loop over the dataset is always slower than the rest, presumably due to caching, memory allocation, etc. However, the first call in the non-batch version is WAY slower than the first call in the batch version. I distilled this down to the minimal examples below. The first version does a dot product in a straightforward way. On my machine, it takes about 13 seconds to run. The second version does the same dot product, but wrapped in a while_loop and writing the result to an intermediate TensorArray and then reading it out again. On my machine, it takes about 4 seconds to run. Presumably, version 2 has to do the same data copying, memory allocation, etc. as version 1, in addition to the overhead of the while_loop and TensorArray calls. So, the timing behavior is unexpected.
Version 2 can even be modified to compute the same dot product 10 (or more) times, and it will still run faster. This behavior holds even if the loop body is modified to use a random vector every time, so I don't think it is due to caching. It also holds even if parallel_iterations is held to 1, so I don't think it is due to parallelism. Is this a bug, or is something else going on under the hood?
Source code / logs
# version 1 (~13 seconds on my machine)
graph = tf.Graph()
with graph.as_default(), tf.device('/gpu:0'):
    nums = tf.range(200000000, dtype=tf.float32)
    dot_product = tf.reduce_sum((nums/2) * (nums-5))
with tf.Session(graph=graph) as sess:
    print(sess.run(dot_product))

# version 2 (~4 seconds on my machine)
graph = tf.Graph()
with graph.as_default(), tf.device('/gpu:0'):
    arr = tf.TensorArray(size=1, dtype=tf.float32)
    nums = tf.range(200000000, dtype=tf.float32)
    i = tf.constant(0)
    def body(i, arr):
        arr = arr.write(i, tf.reduce_sum((nums/2) * (nums-5)))
        return i+1, arr
    i, arr = tf.while_loop(
        cond=lambda i, x: i < 1,
        body=body,
        loop_vars=[i, arr],
        parallel_iterations=1)
    dot_product = arr.read(0)
with tf.Session(graph=graph) as sess:
    print(sess.run(dot_product))

I find the same behaviour.
I include a slight modified copy-pastable MVCE.
I get 9s and 3 s with the below on CPU.
MVCE
import tensorflow as tf
from timeit import default_timer

def func(nums):
    return tf.reduce_sum(tf.multiply(tf.add(nums,1), nums))

def v1():
    graph = tf.Graph()
    with graph.as_default(), tf.device('/cpu:0'):
        nums = tf.range(200000000, dtype=tf.float32)
        dot_product = func(nums)
    with tf.Session(graph=graph) as sess:
        print(sess.run(dot_product))

def v2():
    graph = tf.Graph()
    with graph.as_default(), tf.device('/cpu:0'):
        arr = tf.TensorArray(size=1, dtype=tf.float32)
        nums = tf.range(200000000, dtype=tf.float32)
        i = tf.constant(0)
        def body(i, arr):
            arr = arr.write(i, func(nums))
            return i+1, arr
        i, arr = tf.while_loop(
            cond=lambda i, x: i < 1,
            body=body,
            loop_vars=[i, arr],
            parallel_iterations=1)
        dot_product = arr.read(0)
    with tf.Session(graph=graph) as sess:
        print(sess.run(dot_product))

if __name__ == '__main__':
    t1 = default_timer()
    v1()
    print("time v1: {}".format(default_timer() - t1))
    t1 = default_timer()
    v2()
    print("time v2: {}".format(default_timer() - t1))

I'll try wrapping in a profiler context to see if I can spot the difference.

Seems strange - since v2 should be a superset of the ops in v1.  Perhaps a difference in something like constant folding?   (maybe try changing the optimization level in the session options)
Probably easiest to just grab a timeline of each (or use the profiler) and see which ops actually get run.
Also, several of the tensors involved are 1.6GB so this might cause some interesting differences in memory allocation?

The first session.run call being slower is almost certainly due to running the constant folder to optimize the graph.  When session.run is called for the first time on a set of feeds/fetches, the constant folder will run and parts of the graph will be replaced with a tf.constant node that has a protobuf containing the constant values.  Potential constants are always evaluated on the CPU device.  (Also, if the resulting value is larger than a certain threshold then it is discarded and the graph is left alone).
It it likely that when the same expression is computed in a loop the constant folder doesn't consider it a candidate.
In your code snippets above, you only time a single session.run call for each variant...   I would expect constant folding overheads (and many other overheads) to only affect the first execution of each graph.
If you do a warmup sess.run(dot_product) call, then put a loop around multiple calls of sess.run(dot_product) and evaluate it repeatedly, do you still see the loop version runnig faster?   If so then this is worth looking into further!
i.e. something like:
with tf.Session(graph=graph) as sess:
   print(sess.run(dot_product))
   t1 = default_timer()
   for _ in xrange(10):
       sess.run(dot_product)
   print("time v1: {}".format(default_timer() - t1))

So I ran sess.run first and then 10 runs in a timing loop with the constant variable, and also with a random variable. I also created a profile timeline for each.
Constant:
V1 timing: 0.00014590219943784178 / run 10 runs
V2 timing: 0.2790762079996057 / run 10 runs
Random:
V1 timing: 1.2271329755021725 / run 10 runs
V2 timing: 1.209720030199969 / run 10 runs
So it seems while loop is slower as expected after initial graph run.
import tensorflow as tf
from timeit import default_timer

def func(nums):
    return tf.reduce_sum(tf.multiply(tf.add(nums,1), nums))

def v1(random=False):
    graph = tf.Graph()
    with graph.as_default(), tf.device('/cpu:0'):
        if random:
            nums = tf.random_normal(shape=(200000000,),dtype=tf.float32)
        else:
            nums = tf.range(200000000, dtype=tf.float32)
        dot_product = func(nums)
    with tf.Session(graph=graph) as sess:
        sess.run(dot_product)
        t1 = default_timer()
        for i in range(10):
            sess.run(dot_product)
        print("V1 timing: {} / run 10 runs".format((default_timer() - t1)/10.))

        profiler = tf.profiler.Profiler(sess.graph)
        run_meta = tf.RunMetadata()
        sess.run(dot_product,
                options = tf.RunOptions(trace_level = tf.RunOptions.FULL_TRACE),
                run_metadata = run_meta)
        profiler.add_step(0,run_meta)
        opts = (tf.profiler.ProfileOptionBuilder(
                 tf.profiler.ProfileOptionBuilder.time_and_memory())
                 .with_step(0)
                 .with_timeline_output('timeline_v1_{}'.format('random' if random else 'const')).build())
        profiler.profile_graph(options=opts)

def v2(random=False):
    graph = tf.Graph()
    with graph.as_default(), tf.device('/cpu:0'):
        arr = tf.TensorArray(size=1, dtype=tf.float32)
        if random:
            nums = tf.random_normal(shape=(200000000,),dtype=tf.float32)
        else:
            nums = tf.range(200000000, dtype=tf.float32)
        i = tf.constant(0)
        def body(i, arr):
            arr = arr.write(i, func(nums))
            return i+1, arr
        i, arr = tf.while_loop(
            cond=lambda i, x: i < 1,
            body=body,
            loop_vars=[i, arr],
            parallel_iterations=1)
        dot_product = arr.read(0)
    with tf.Session(graph=graph) as sess:
        sess.run(dot_product)
        t1 = default_timer()
        for i in range(10):
            sess.run(dot_product)
        print("V2 timing: {} / run 10 runs".format((default_timer() - t1)/10.))

        profiler = tf.profiler.Profiler(sess.graph)
        run_meta = tf.RunMetadata()
        sess.run(dot_product,
                options = tf.RunOptions(trace_level = tf.RunOptions.FULL_TRACE),
                run_metadata = run_meta)
        profiler.add_step(0,run_meta)
        opts = (tf.profiler.ProfileOptionBuilder(
                 tf.profiler.ProfileOptionBuilder.time_and_memory())
                 .with_step(0)
                 .with_timeline_output('timeline_v2_{}'.format('random' if random else 'const')).build())
        profiler.profile_graph(options=opts)

if __name__ == '__main__':
    v1(False)
    v2(False)
    v1(True)
    v2(True)

OK, thanks - I don't see anything unusual in those results now other than v1 random being slower than v2 random.  I'd expect that running the RNG each step was substantially slower than the tf.range, but can't explain the -ve loop overhead unless it's just run-to-run variation. (this can happen based on other things running on the machine, heap allocation order, etc. etc.)
If the difference is repeatable, could you post the timelines and profile data?

I'm able to repeat each time.
V2 random is always a bit faster.
Here are the timelines for the four situations.
timelines.tar.gz

I think this should be closed, unless you still want to follow up that second case with random tensors in while loop being faster. Run MVCE to see if you get the same.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

I'm going to close this, since the explanation above about the constant folder explains the initial behavior that I was seeing. Feel free to re-open if needed.


Build mm.o from scratch

This PR enables building mm.cc from scratch instead of downloading from ; see https://github.com/nod-ai/iree-amd-aie/pull/602 for more context.
Note1: currently we need to use chess to compile mm.cc always because peano doesn't distibute libcxx (which is needed for <type_traits>).
Note 2: this PR removes AIETargetDirect.cpp which is an NFC - I should've removed it a while ago since we've basically been "dog-fooding" the direct path for a couple of weeks now but now is as good a time as any.
Note 3: this PR also removes the ability to specify the kernel in the aie.device op. The reason to remove this is to prevent the linker script generation from including direct references to the ukernel objects and instead opting to pass them on the CLI (which enables reusing mm.o across compiles). There's really no need to directly call out which ukernel you plan to use anyway since you're already referencing it by emitting the func.call. It's fine to pass a big kernel library on the command line (e.g., xchescc invocation) because the linker will DCE all function bodies you don't use.

BTW they (mlir-aie) is refactoring/updating mm.cc https://github.com/Xilinx/mlir-aie/pull/1631 (not sure if we should use their updated version or not).

Note 2: this PR removes AIETargetDirect.cpp which is an NFC - I should've removed it a while ago since we've basically been "dog-fooding" the direct path for a couple of weeks now but now is as good a time as any.

Please try not to mix patches...

Before this PR we could use ukernels without chess/vitis (that is what the example in run_test.py does). Is that still the case?

No. If you want both that's a "have your cake and eat it too" kind of situation - like the prior was possible only because mm.o was cached somewhere. If you want to support both compile time building of mm.o and use of cached mm.o that's a whole bunch of logic/threading/flags. Like it can be done ofc but I'm wondering if it's really necessary - in what situations do we have peano but not chess? Local dev? Because I'm assuming we certainly have both available for demos and perf runs right?

Please try not to mix patches...

They're not completely orthogonal - making the changes that I did to aie2xclbin required making changes in both AIETarget and AIETargetDirect. And sending a stacked PR for a hipri item (Abishek's ask) seemed overly tedious.

Before this PR we could use ukernels without chess/vitis (that is what the example in run_test.py does). Is that still the case?

No. If you want both that's a "have your cake and eat it too" kind of situation - like the prior was possible only because mm.o was cached somewhere. If you want to support both compile time building of mm.o and use of cached mm.o that's a whole bunch of logic/threading/flags. Like it can be done ofc but I'm wondering if it's really necessary - in what situations do we have peano but not chess? Local dev? Because I'm assuming we certainly have both available for demos and perf runs right?

I'm thinking ukernels could be provided pre-compiled by other teams, or might be created without chess. But ok, fine for now. So will mm.o will contain all ukernels in the future? Should probably be renamed to chess_microkernels.o or something in that case.

Please try not to mix patches...

They're not completely orthogonal - making the changes that I did to aie2xclbin required making changes in both AIETarget and AIETargetDirect. And sending a stacked PR for a hipri item (Abishek's ask) seemed overly tedious.


Added Dutch names

Users can now generate Dutch names with the chance.name({ nationality: "nl" }) option. The names are a collection of popular Dutch names, taken from the sources mentioned in the code.

Changes Unknown when pulling 586581ba4ada174343d4ba3207f1feb2db6f3976 on pcmill:Add-dutch-names into ** on chancejs:master**.

Nice work! Is there any reason this is still not merged?

Mostly no reason, sorry for the delay.
I had aspirations of figuring out the code splitting to reduce the file size before merging this but it's a hairy mess that I'm still working on. So merging this now. Will update when I cut a new release of Chance with this included.

...and this is live on npm as 1.0.9!

@victorquinn Wow, that nice! Thanks. I would like to add additional Dutch data generators, but I will wait until you split the code from the content. If I can help you with that, please let me know.


last writeback control

So now the process will be stopped with critical message, if the last 1000 cycles did not performed writeback.


Very fast, poor random

At least for me, in browser (firefox, linux), the game runs blazingly fast. Before, with the slow down as the snake grew, as long as I could survive to eat 2 or 3 times, then the speed became more reasonable, but with the new version which maintains full speed, I find it to be uncomfortably fast (but maybe it's just because I'm getting slow in my old age ;-) ). In addition, it seems that the randomization of food placement only happens when food is actually eaten, so I think you get the same sequence of food locations every game.
With the newly available speed, would it be feasible to tick the random number generator every game tick? You'd still only draw the food at the new location when the player ate the previous food, but the food placement will vary based on how many steps the snake has moved, rather than how many food the snake has eaten, thus adding randomization based on player actions. If a player managed to play identically, they would get an identical sequence of food, but most games would, I think, end up with more variation?
This only makes sense if there's some internal state to the random number generation, but it appears that's kept in dx, and if so, then generating more random numbers should change the sequence.
I'm not sure if it would help save any code size, but it doesn't seem like it would add any.

Thanks! I'll look into it tomorrow or maybe next week.

Actually managed to solve this by reducing two bytes (0a06be1)

@donno2048 Still too fast for me :D

Yeah I know, I was talking about the RNG


Add a hint to the console output if more tasks execute in parallel than being displayed

Expected Behavior
When executing a build from the command line, the console rows prefixed with > indicate the number of tasks being executed in parallel. If the number of rows does not correspond to the number of tasks being executed in parallel, a hint should be displayed to avoid confusion.
Current Behavior
The number of rows displayed is capped at rows / 2 for terminals where rows is known, or hard-coded to 4 if rows is unknown:
https://github.com/gradle/gradle/blob/5ec3f672ed600a86280be490395d70b7bc634862/subprojects/logging/src/main/java/org/gradle/internal/logging/console/ConsoleLayoutCalculator.java#L37-L42
This means one cannot generally conclude the number of tasks being run in parallel from the number of rows being displayed.
Context
The current behavior has caused irritations when profiling a build for a project on Windows vs. Linux on the same (dual-boot) PC: On Linux the number of >-console-rows was much larger than on Windows although the terminal had much more rows for display in both cases, which led to the (false) assumption that less parallelism was being used on Windows than on Linux.
It turned out that due to MinTTY being used as a terminal on Windows, and the limitation documented at https://github.com/gradle/native-platform/issues/33, it was simply a display issue.
In any case, also if the number of rows in being capped due to the rows / 2 constraint, a hint should be displayed on the console that the number of tasks being executed in parallel might be larger than the number of rows displayed in the console.

Sorry for the late reply.
This feature request is in the backlog of the relevant team and is prioritized by them.


Add Karaoke Forever

(also removed a trailing comma that made the JSON technically invalid)
Project URL
https://github.com/bhj/karaoke-forever
Category

Audio
Music

Description
Host awesome karaoke parties where everyone can queue songs from their phone's browser. Plays MP3+G and MP4 with WebGL visualizations.
Why it should be included to Awesome macOS open source applications  (optional)
It's been listed over at awesome-selfhosted for a while but it needs to be on more platform-specific lists as well.
Checklist

[x] Edit applications.json instead of README.md.
[x] Only one project/change is in this pull request
[x] Screenshots(s) added if any
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 1 link issue, a project collaborator will take care of these, thanks :)

Link issue by awesome_bot

Line
Status
Link

3547
301
https://github.com/dinhviethoa/dejalu redirects tohttps://github.com/dinhvh/dejalu

  Generated by :no_entry_sign: Danger

@bhj Thank you! 👍


Pictures are not fullscreen. They are square.

Pictures are not fullscreen. They are square.

Please indicate browser and operating system, and include a screenshot if
possible.
Thanks,
Michael
On Thu, Mar 11, 2021, 12:53 kangarooo @.***> wrote:

Pictures are not fullscreen
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/stuporglue/InstaGallery/issues/19, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEBQEXYAKITADIN7KKU2LTDEGS5ANCNFSM4ZA2TQ7Q
.

50px from top and bottom margin or padding missing for <div id="swipebox-slider"


How to Assign static IP's to each of the docker image when ever it is running?

Hi,
I'm unable to assign static IP to each of my docker images when it is starting, please suggest me any approaches are there?.
please do the needful.

@Pratap6 Hi, as stated in the other issue, this is not a support forum
For support, please see any of these:

docker-user mailing list
#docker on IRC
forums.docker.com

You can try out https://github.com/jpetazzo/pipework for doing more advanced networking within the container.

Ok Thank you @cpuguy83


Build fails on stackage nightly

       While building package binance-exports-<IP_ADDRESS> (scroll up to its section to see the error)
       using:
       /var/stackage/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_6HauvNHV_<IP_ADDRESS>_ghc-9.6.2 --verbose=1 --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-<IP_ADDRESS> build lib:binance-exports exe:binance-exports --ghc-options ""
       Process exited with code: ExitFailure 1
       Logs have been written
       to: /var/stackage/work/unpack-dir/.stack-work/logs/binance-exports-<IP_ADDRESS>.log

       Configuring binance-exports-<IP_ADDRESS>...
       Preprocessing library for binance-exports-<IP_ADDRESS>..
       Building library for binance-exports-<IP_ADDRESS>..
       [1 of 4] Compiling Paths_binance_exports
       [2 of 4] Compiling Web.Binance

       /var/stackage/work/unpack-dir/unpacked/binance-exports-<IP_ADDRESS>-ecaf18d16477d5fef55677c27ca8f6cff1a16dc9fc3ac7792b5da73251fe9fa3/src/Web/Binance.hs:31:51: error:
           Module ‘Control.Monad.Reader’ does not export ‘(<=<)’
          |
       31 | import           Control.Monad.Reader           ( (<=<)
          |                                                   ^^^^^

You can open a stackage PR to re-enable when ready.

Thanks, should be fixed in git@github.com:qfpl/tasty-hedgehog.git

Thanks!


java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader exception

Hi,
I am trying to run your OCR demo with following steps :

Downloaded ndk 64 bit and saved it in a directory and gave the path in environment variables.
Imported tess-two project in my workspace .
Run ndk-build command which is giving some compiling messages probably compiling the ndk. 4. Now i imported OCRTest demo and used tess-two as library in that demo . When i run the code i got following exception. Log cat details are as follows :

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/edu.sfsu.cs.orange.ocr-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]] couldn't find "liblept.so"
It is crashing on this line System.loadLibrary("lept");
I can find out that  when i run ndk-build, a never ending compiling messages keep on coming and yes one more thing, this particular .so file is in tess-two/libs/armeabi folder. Now can you guide me further what is missing
In my  eclipse project, in libs folder i have only three jar files google-api-translate-java-0.97.jar, jtar-2.1.jar and microsoft-translator-java-api-0.6-mod.jar.
These are few details how i worked so far on ocr, how to take it further from here? Please resolve the issue
Thanks,

http://stackoverflow.com/questions/36618297/java-lang-unsatisfiedlinkerror-dalvik-system-pathclassloader-error-while-runnin


Problems with VOD m3u8 build on the fly

Browser: Firefox 47.0
OS: Ubuntu 14.04.4 LTS
Clappr: 0.2.61
Steps to reproduce:
I am building a m3u8 playlist on the fly, so at the beginning of the transmission i don't have the complete playlist. To reduce the delay i send a incomplete VOD (#EXT-X-PLAYLIST-TYPE:VOD) playlist without #EXT-X-ENDLIST but the Clappr read this as a Live playlist and reconfigure to VOD when receive the complete playlist (with #EXT-X-ENDLIST).
To reproduce, send a VOD playlist without #EXT-X-ENDLIST and after send the complementation playlist with #EXT-X-ENDLIST.
I suggest to make two changes in the source code:
file: src/playbacks/hls/hls.js line: 318
change the method:
 _updatePlaybackType(evt, data)
    this._playbackType = data.details.live ? Playback.LIVE : Playback.VOD
    this._fillLevels()
    this._onLevelUpdated(evt, data)
 }

to
 _updatePlaybackType(evt, data) {
     this._playbackType = (data.details.type === 'LIVE' ? Playback.LIVE : Playback.VOD)
     this._fillLevels()
     this._onLevelUpdated(evt, data)
 }

file: node_modules/hls.js/lib/controller/stream-controller.js line: 788
change the code
// if live playlist, set start position to be fragment N-this.config.liveSyncDurationCount (usually 3)
if (newDetails.live) {
       var targetLatency = this.config.liveSyncDuration !== undefined ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * newDetails.targetduration;
       this.startPosition = Math.max(0, sliding + duration - targetLatency);
} else {
         this.startPosition = 0;
}

to
// if live playlist, set start position to be fragment N-this.config.liveSyncDurationCount (usually 3)
if (newDetails.type === 'LIVE') {
       var targetLatency = this.config.liveSyncDuration !== undefined ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * newDetails.targetduration;
       this.startPosition = Math.max(0, sliding + duration - targetLatency);
} else {
         this.startPosition = 0;
}

_updatePlaybackType(evt, data) {
this._playbackType = data.details.live ? Playback.LIVE : Playback.VOD
this._fillLevels()
this._onLevelUpdated(evt, data)
}

Thanks @Al3x4nd3r partially this can be done at Clappr but the last part should be done at https://github.com/dailymotion/hls.js

Thanks you, i open a issue at dailymotion for this: https://github.com/dailymotion/hls.js/issues/668
[]`s

https://github.com/dailymotion/hls.js/issues/668


npm install error

Followed the getting started instructions, after running npm install received the following error.
npm ERR<EMAIL_ADDRESS>postinstall: 'node node_modules/bower/bin/bower install'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script  'node node_modules/bower/bin/bower install'
npm ERR! This is most likely a problem with the Fabric package, not with npm itself.
Running win 8.1

Thanks for this! This issue is probably because there isn't actually anything to install. Before moving to GitHub, we were consuming some external libs via Bower, but removed those deps while cleaning house; seems we forgot to also remove the postinstall script. This will be fixed soon.

Any idea when another update is coming?
Thanks!

We don't have a firm ETA yet (we're still in the middle of adapting some of our processes for GitHub :)), but I would expect something within the next few weeks.

The fix is in Master, let us know if you still have trouble and we can reopen. This will definitely be bundled with the next release (soon!).


Version 0.5.0

image 0.25.1 needs an MSRV of 1.67.1.
0.24.9 needs 1.63, 0.24.8 needs 1.61 FYI

Doh.

You know, it's a breaking version number anyway, we might as well just bump the MSRV wihle we're at it.


Problem with compiling projects with nexe that use winston

Please tell us about your environment:

winston version?

[ ] winston@2
[x] winston@3

node -v outputs: v8.11.3
Operating System? Windows
Language? ES6/7

What is the problem?
When I compile a project that uses winston with nexe project.js -o project.exe and use the integrated formatters, I get the error Cannot find module './format' or Cannot find module './combine.js'. When executing the project.js file directly everything works fine. The nexe compiling process didn't show any errors.
Other information
Stacktrace
javascript Error: Cannot find module './combine.js'   at Function.Module._resolveFilename (module.js:547:15)   at Function.Module._load (module.js:474:25)   at Module.require (module.js:596:17)   at require (internal/module.js:11:18)   ...
Related
There's been a similar problem that was fixed with a newer release of winston. #178.

nexe probably doesn't like the dynamic requires in logform.  Webpack detects browser in https://github.com/winstonjs/logform/blob/master/package.json and uses the browser-safe version instead (no dynamic requires).  If nexe could do the same, your error would most likely go away.  But that is probably a question for the nexe folks, whether it's possible to specify to prefer browser fields like webpack over main fields.  Let us know if you figure something out, could be good for documentation!

My Solution/Workaround

Just don't use nexe. Use pkg instead.
I used nexe because it makes it easy to include additional resources (e.g. JQuery, vuejs) in your executable. This works with pkg too but is a bit tricky.

FYI: this error is also triggered when using Parcel (http://parceljs.org) with the --target node flag.
I still haven't found a way to fix that in my case

@RPDeshaies have you found a solution to the problem? I ran into the same issues

@MichaelHirn I found the solution here quite useful

I had the same issue and I was importing the following:
import { createLogger, transports,format } from "winston";

I changed the import for format to
import { format } from "logform/dist/browser";

and that solved it for me.
I am using https://parceljs.org/ for packaging a lambda.

I have this problem when running a third party library that uses winston internally from another project.
Third party lib is bundled using esbuild. The other one webpack.
There's a way to bypass the error?
I use Yarn Berry (v.3 now, I think)
Any help is appreciated.
Thank you.

I encountered perhaps the same issue, but in a different context. Bumped into error Cannot find module ‘./combine.js’ after building my Lambda function using esbuild. I found this issue logform library uses non-string literals in require and fails at runtime, but works with webpack, and the verified fix for me was to upgrade the winston logger to a newer version, that takes in this fix from logform to avoid dynamic requires.

I ran a test of Jellyseerr v2.0.1 (https://github.com/SynoCommunity/spksrc/pull/6294) and I think I ran into the same issue. The build completed successfully but when I try to run the package I get this:
$ ./jellyseerr
node:internal/modules/cjs/loader:1250
  throw err;
  ^

Error: Cannot find module 'logform'
Require stack:
- /home/mreid/Documents/jellyseerr/node_modules/winston/lib/winston.js
- /home/mreid/Documents/jellyseerr/dist/logger.js
- /home/mreid/Documents/jellyseerr/dist/lib/settings/migrator.js
- /home/mreid/Documents/jellyseerr/dist/lib/settings/index.js
- /home/mreid/Documents/jellyseerr/dist/api/plexapi.js
- /home/mreid/Documents/jellyseerr/dist/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1247:15)
    at Module._load (node:internal/modules/cjs/loader:1073:27)
    at Module.require (node:internal/modules/cjs/loader:1333:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/home/mreid/Documents/jellyseerr/node_modules/winston/lib/winston.js:10:17)
    at Module._compile (node:internal/modules/cjs/loader:1491:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1570:10)
    at Module.load (node:internal/modules/cjs/loader:1310:32)
    at Module._load (node:internal/modules/cjs/loader:1126:12)
    at Module.require (node:internal/modules/cjs/loader:1333:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/mreid/Documents/jellyseerr/node_modules/winston/lib/winston.js',
    '/home/mreid/Documents/jellyseerr/dist/logger.js',
    '/home/mreid/Documents/jellyseerr/dist/lib/settings/migrator.js',
    '/home/mreid/Documents/jellyseerr/dist/lib/settings/index.js',
    '/home/mreid/Documents/jellyseerr/dist/api/plexapi.js',
    '/home/mreid/Documents/jellyseerr/dist/index.js'
  ]
}

Node.js v20.18.0

Any thoughts on resolving this?


KAFKA-7309: Upgrade Jacoco for Java 11 support

Jacoco 0.8.2 adds Java 11 support:
https://github.com/jacoco/jacoco/releases/tag/v0.8.2
Java 11 RC1 is out so it would be good for us to
get a working CI build.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@lindong28 trivial one liner change in the build, please review when you have a chance.

The test failure is unrelated.

Merged to trunk


refact(snapshot): Made decisions optional for snapshot entity.

Summary

Made decisions optional for snapshot since fsc expects no decisions key to be there if no decisions are present.

@mikeng13 @mjc1283 can you please review this PR?


[bug] fix flink-translate lost the dependency commons-io

Purpose of this pull request
the flink-v2-example will exec error, because it lost the dependency commons-io
and the dependency has in the file known-dependencies.txt.
Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs

when I add the commons-io,it's ok

it't not need to add license,because it exist.

Please check dependencies list, if you add extra dependencies in project please add it in know-denpencies.txt. BTW, you can exeute bash tools/dependencies/checkLicense.sh in shell and check it.

Could you retest after updating the code? No clear log, but it's ok on my local


Voice Message feature (#416)

Creates

UI componentsimport PlaybackTime from "@sendbird/uikit-react/ui/PlaybackTime"
import ProgressBar from "@sendbird/uikit-react/ui/ProgressBar"
import VoiceMessageInput from "@sendbird/uikit-react/ui/VoiceMessageInput"
import VoiceMessageItemBody from "@sendbird/uikit-react/ui/VoiceMessageItemBody"

PlaybackTime: Display the current time in 00:00 format with the received millisecond value
ProgressBar: Display the current progress status with the received maxSize and currentSize of millisecond unit value
VoiceMessageInput: UI component for recording and playing a voice message
VoiceMessageItemBody: UI component for rendering a voice message also able to play voice message

VoiceRecorderimport { VoiceRecorderProvider, useVoiceRecorderContext } from '@sendbird/uikit-react/VoiceRecorder/context'
import useVoiceRecorder from '@sendbird/uikit-react/VoiceRecorder/useVoiceRecorder'

VoiceRecorderProvider: A react context provider component providing start, and stop functions
useVoiceRecorderContext: A react useContext hook of VoiceRecorderProvider
useVoiceRecorder: A react hook that provides advanced context, recordingLimit, recordingTime, recordingFile, and recordingStatus. Recommend using this hook in the customized components.

VoicePlayerimport { VoicePlayerProvider, useVoicePlayerContext } from '@sendbird/uikit-react/VoicePlayer/context'
import useVoicePlayer from '@sendbird/uikit-react/VoicePlayer/useVoicePlayer'

VoicePlayerProvider: A react context provider component providing play, and pause functions
useVoicePlayerContext: A react useContext hook of VoicePlayerProvider
useVoicePlayer: A react hook that provides advanced context, playbackTime, duration, and playingStatus. Recommend using this hook in the customized components.

utils/isVoiceMessage: A function that you can check if the given message is a voice messageimport isVoiceMessage from '@sendbird/uikit-react/utils/message/isVoiceMessage'
const isVoiceMsg: boolean = isVoiceMessage(message);

Edits

Install lamejs to transcode the audio file to mp3
Add props isVoiceMessageEnabled and voiceRecord props to the App, SendbirdProvider, and MessageInput components, to turn on/off the voice message recording feature<SendbirdProvider
  isVoiceMessageEnabled
  voiceRecord={{
    maxRecordingTime: 60000,
    minRecordingTime: 1000,
  }}
>
  {/* implement custom application */}
</SendbirdProvider>

Add props renderFileUploadIcon, renderVoiceMessageIcon, and renderSendMessageIcon into the Channel, ChannelUI, and MessageInput component
Add onVoiceMessageIconClick props to the MessageInput component
Add onBeforeSendVoiceMessage props to the Channel component
Fetch message list including MetaArray in the Channel and Thread modules
Provide new icon-type AudioOnLined & new icon-color Primary2 and OnBackground4
Provide new string sets<SendbirdProvider
  stringSet={{
    BUTTON__OK: 'OK',
    VOICE_MESSAGE: 'Voice Message',
    MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_MUTED: 'You\'re muted by the operator.',
    MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_FROZEN: 'Channel is frozen.',
  }}
>
  {/* implement custom application */}
</SendbirdProvider>

BUTTON__OK: 'OK' → Used on the submit button of pop up modal
MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_MUTED: 'You're muted by the operator.' → Used in an alert pop-up modal
MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_FROZEN: 'Channel is frozen.' → Used in an alert pop-up modal
VOICE_MESSAGE: 'Voice Message' → Used in ChannelPreviewItem, QuoteMessage, and MessageSearch to appear that the message type is the voice## External Contributions

When required, close this PR and opne one from yourside


Unable to use unsigned right shift operator

When trying to use the >>> operator I get a compiler error saying  ERROR: Unexpected '>', >> compiles fine.

Not implemented
TurboScript was a prototype and I am no logger updating this repo instead I am working on a language specification for TurboScript here once the spec completed. I will start working on the fresh implementation.


Possible crash in putenv

In file included from test\test_system.cpp:11:0:
..../boost/nowide/cenv.hpp: In function 'int boost::nowide::putenv(char*)':
..../boost/nowide/cenv.hpp:104:41: warning: comparison between pointer and
zero character constant [-Wpointer-compare]
while(*key_end!='=' && key_end!='\0')

If it's possible to propagate a null pointer to this function, then there should also be a check for it.
The crash here looks like it will stem from the pointer going out on a journey and not coming back until the segfault comes.

Fixed in review branch


"bats" test files are fragmented and inconsistent

Currently, there are three "bats" unit test files.  There does not seem to be a motivation (why 3?), a naming convention, or consistency (different files test different things .. but then they sometimes overlap).
A clean-up is needed.  Suggestion: a single file, with tests organised by type/functionality (simple and just fine for a simple tool); or factor this out into separate files (can do this later if there is really a need).

Any guidelines on contributing?

Hello,
Thanks for the interest.
This is a small project that moves forward at a leisurely pace without the need for a heavyweight process.  I’ve made a few contributions over the last couple years.  The repo owner brought me in as a collaborator.
We should really write a note on contributions.  Here is what I’ve observed as well as what I’d expect.  That is, my two cents:

Content-wise: keep the project simple (a single purpose tool); new features need to have a real use case (not “nice to have”); compatibility and compliance are important.
Code-wise: keep consistent naming and formatting and style.
Commit-wise: submit a clean (squashed), documented pull-request that can be rebased on master. The content of the PR should be in the git commit log; rationale should be in the issue discussion thread.
Assigning a semantic version string to this code and making clean releases needs work.  I’m sorta working on this.  Contributions should not be confused with releases.

As for issue #52.  I introduced the bats tests some time ago.  Over a couple iterations they have become fragmented and inconsistent.  Resolving this issue means looking at the tests, proposing an organisation and naming scheme (e.g. single file with sections, separate files by function/test type, ??).  Then the tests can be refactored and cleaned up.  Just to keep things
under control, I would not start adding/fixing/removing tests along the way: just create an issue(s) and attack that later.
Go for it!
— ranger6

On 15 Apr 2021, at 01:28, Hugo Ferreira @.*** @.***>> wrote:
Any guidelines on contributing?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/fsaintjacques/semver-tool/issues/52#issuecomment-819914011, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA2YZ6MRW6J6LGHKZICHKB3TIYQKFANCNFSM4VTHV4YQ.

Nice @ranger6 !
Thanks for those two cents, real nice and valuable. Going to keep that in mind, the bats refactoring seems a good way to get to know the project.
As for the item 4... I actually found this project searching for ways to easily keep a semver bumping on a project:
https://threedots.tech/post/automatic-semantic-versioning-in-gitlab-ci/ (pretty sure something like that would also be possible on github-workflows)
I'm currently reasearching a proper way to keep that in a git project, either by reading a commit, or infering this on branch naming on PR, etc... As of now I'm inclined to git-hooks as a way to do so, but not really sure. Would really apreaciate the options and look forward to what you're working on and your ideas on that matter.

PR #64 closes this issue.


ODR violations among helper classes in LB strategies

Original issue: https://charm.cs.illinois.edu/redmine/issues/1359

$ grep -n 'class ' *LB.C | awk -F: '{print $3 "\t" $1 ":" $1}' | sort

1. formatted, de-crufted output of the above:

class ObjLoadGreater {	GreedyLB.C:47
class ObjLoadGreater {	CommAwareRefineLB.C:79
class ObjLoadGreater {	RefineSwapLB.C:8
class ObjLoadGreater {	TempAwareCommLB.C:189
class ObjLoadGreater {	TempAwareGreedyLB.C:42
class ObjLoadGreater {	TempAwareRefineLB.C:251
class ObjLoadGreater {	TreeMatchLB.C:60

class ObjPeCommInfo {	CommAwareRefineLB.C:101
class ObjPeCommInfo {	TempAwareCommLB.C:211

class PeCommInfo {	CommAwareRefineLB.C:86
class PeCommInfo {	TempAwareCommLB.C:196

class ProcCommGreater {	CommAwareRefineLB.C:110
class ProcCommGreater {	TempAwareCommLB.C:220

class ProcLoadGreater {	CommAwareRefineLB.C:67
class ProcLoadGreater {	GreedyLB.C:40
class ProcLoadGreater {	TempAwareCommLB.C:177
class ProcLoadGreater {	TempAwareGreedyLB.C:35
class ProcLoadGreater {	TempAwareRefineLB.C:237
class ProcLoadGreater {	TreeMatchLB.C:53

The case between RefineSwapLB and GreedyLB caused actual, observable failures in RefineSwapLB, because its definition has a member variable, while Greedy's did not. When linked with GreedyLB, it picked up a definition of the copy constructor that did not have anything to copy. Thus, copied instances ended up containing garbage. This disappeared when optimization was enabled in compiling RefineSwapLB, because the desired definitions were all inlined, and the conflicting definition from Greedy never had a chance to cause trouble.
I originally observed this when trying to run SNL's PIC particle-pushing kernel mini-app, since RefineSwapLB showed the best performance results there.
The generic fix is to give the various class definitions all distinct names, so that there are no divergent definitions of the same symbols anywhere.

Original date: 2017-01-13 16:32:21

Another option is to just move the compare classes inside their load balancer class, which would probably be cleaner and avoid future name conflicts.

Original date: 2017-01-13 19:01:48

I like your suggestion much better than mine. It applies equally well to all of the helper classes mentioned.

Original date: 2017-01-13 21:31:15

Please link the the changes when setting status to Implemented, so that it's easy to cross-reference

Original date: 2017-01-13 21:31:34

~~https://charm.cs.illinois.edu/gerrit/#/c/2124/~~ https://github.com/UIUC-PPL/charm/commit/bd72a9ce6008562c9f7c2615439985c6b5d1f340


references from zotero not complete

https://viecpro-frontend.acdh-ch-dev.oeaw.ac.at/de/detail/persons/345676
Dotter is missing

additionally add references from doubletten that do not exist in final entries

This only applies to Vorfinalen-entries, the references are only available at the level of the duplicates and must be retrieved from there. For this purpose, we have created the Mustefrau Doublette Musterfrau (TEST_HZAB) DOUBLETTE, Maria Anna ==> https://viecpro.acdh-dev.oeaw.ac.at/apis/entities/entity/person/345734/detail for the Bibsonomy entries and linked it to the pre-final entry Musterfrau with a "merged into" person-person relation.