What's going on when I do a outbound pass a ByteBuf object

Apr 01, 2015 10:37:29 PM io.netty.util.ResourceLeakDetector reportLeak
SEVERE: LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records: 0

I'd extends DefaultFullHttpRequest and the calling code NEW a ByteBuf object from a string then call channel.writeAndFlush(it) such like:
        final ByteBuf buf = PooledByteBufAllocator.DEFAULT
                .directBuffer()
                .alloc()
                .buffer(512)
                .writeBytes(data.getBytes(CharsetUtil.UTF_8));
        final FullHttpRequest request = new DefaultFullHttpRequest(
                HttpVersion.HTTP_1_1,
                HttpMethod.POST,
                _uri.getRawPath(),
                buf);

        request.headers().set(HttpHeaderNames.HOST, _uri.getHost())
                .set(HttpHeaderNames.ACCEPT_CHARSET, CharsetUtil.UTF_8)
                .set(HttpHeaderNames.USER_AGENT, USER_AGENT)
                .set(HttpHeaderNames.ACCEPT, ACCEPT_ALL)
                .set(HttpHeaderNames.CONTENT_LENGTH, buf.readableBytes())
                ;
       //...
       channel.writeAndFlush(request);

JVM options: -Dio.netty.leakDetectionLevel=paranoid
The netty guide suggested don't to care about the outbound ByteBuf object, but I don't know when and how to release it.

Thats because you do:
final ByteBuf buf = PooledByteBufAllocator.DEFAULT
                .directBuffer(512)
                .writeBytes(data.getBytes(CharsetUtil.UTF_8));

This allocates 2 buffers...
You want this:
final ByteBuf buf = PooledByteBufAllocator.DEFAULT
                .directBuffer()
                .buffer(512)
                .writeBytes(data.getBytes(CharsetUtil.UTF_8));


Support for Icons in href Side nav items

Feature Description
I'd like to be able to specify that an icon appear to the left of side nav items, even if that side nav item is a simple href.
Use Case
I have sidenav items that are hrefs, but want to style them like any other sidenav item.

@noanflaherty up to provide an example of how you'd want docs.ymlto read?

Yeah I'm imagining this:

Awesome, this is helpful! Is this something that you'd like to use immediately? Looking to get a sense of priority. Makes sense for us to support this.

If it was available, we’d use it immediately.


Rename payment_sent event

The payment_sent event is async and is confusing with the other payment_succeeded which is then consumed by different places around the app. (For example NIP-47 notifications)
The succeeded and failed ones are synchronous, I should have named the sent one better - maybe payment_succeeded_async instead of payment_sent which would then match the existing payment_failed_async one.

what was the difference between the sync and the async thing there?

the NWC pay_invoice event has a 60 second timeout, so the request could fail due to timeout (leading to payment_failed), but later succeed (leading to payment_sent)

can we rename it? or does _async describe this enough?

@bumi I would propose this naming - there is only one change:

payment_succeeded
payment_succeeded_async (Renamed from payment_sent)
payment_failed
payment_failed_async

how about _later instead of async?
or payment_succeeded_request and payment_succeeded_delayed ?

@bumi it's not necessarily later - we subscribe to LDK/LND events and it will be fired as soon as we get it (which unless the payment is delayed, it will actually be fired before payment_succeeded)

then maybe we just use that one and not two events?
sounds like the one is reliable and the other one is not?

@bumi good point, however it'll only work for the LNClients that support notifications. I would actually then move these events to the new transactions service layer which is where our internal database is updated. This will also enable notifications for self payments. (briefly mentioned in https://github.com/getAlby/hub/issues/299)

Also, this will enable self payments for keysend payments which currently relies on the LNClient nwc_payment_received event.


Conversion to TFlite

Hi,
How do you convert models to TFlite? I tried converting, but my app is crashing while trying to get output.
 If you do, does it reduce the model accuracy?
Please help. Thanks.

Hi @shubham0204 , Thank you for your prompt reply.
I'm trying to convert FaceNet model from keras_facenet python library.
I am able to convert it using Tensorflow 2.17 and get output in python. But it doesn't run on android because latest version for TFlite in android is 2.16.1. I tried converting the model using lower versions of Tensorflow in python, but the models don't work.
I am getting this error while trying to run TFlite model on android:
Caused by: java.lang.IllegalStateException: Internal error: Unexpected failure when preparing tensor allocations: tensorflow/lite/core/subgraph.cc BytesRequired number of elements overflowed.


issues running the test cases given in the repo

Sorry, opening a new issue for reaching out to you
Hi, I have cloned helm testing repository and had all the pre requisites installed. I see the below errors when executing go test -v
Is there anything i am missing here? just followed the instructions in read me file
TestPodTemplateRendersContainerImage 2020-08-11T18:22:04+01:00 command.go:87: Running command helm with args [template --set image=nginx:1.15.8 --show-only templates/pod.yaml pod ../charts/minimal-pod]
TestPodTemplateRendersContainerImage 2020-08-11T18:22:04+01:00 command.go:158: ### Error: unknown flag: --show-only****
template.go:20:
Error Trace: template.go:20
minimal_pod_template_test.go:22
Error: Received unexpected error:
exit status 1
Test: TestPodTemplateRendersContainerImage
TestPodDeploysContainerImage 2020-08-11T18:22:04+01:00 command.go:158: Error: release: "nginx-v46mkh" not found
delete.go:12:
Error Trace: delete.go:12
panic.go:617
testing.go:698
install.go:16
minimal_pod_integration_test.go:39
Error: Received unexpected error:
exit status 1
Test: TestPodDeploysContainerImage
--- FAIL: TestPodDeploysContainerImage (1.62s)
=== RUN TestPodTemplateRendersContainerImage
3.TestPodDeploysContainerImage 2020-08-11T18:22:03+01:00 command.go:158: Error: This command needs 1 argument: chart name
install.go:16:
Error Trace: install.go:16
minimal_pod_integration_test.go:39
Error: Received unexpected error:
exit status 1
Test: TestPodDeploysContainerImage
TestPodDeploysContainerImage 2020-08-11T18:22:03+01:00 command.go:87: Running command helm with args [delete nginx-v46mkh]

Which version of helm are you using? The error "Error: unknown flag: --show-only" suggests that you are using helm 2 instead of helm 3.
Terratest has switched to only supporting helm 3 since https://github.com/gruntwork-io/terratest/releases/tag/v0.25.0, so you will need to lock your go mod to use the release just before that one if you wish to test with helm 2.

Thank you @yorinasub17
I have locked go mod to use release v0.24.2. It works :-)


Update Vulp to latest version

Closing as the content of this branch has moved to https://github.com/upkie/upkie/pull/207


Add mixin to colcon-common-extentions

Relates to #18
I notice python3-colcon-mixin isn't installed with ros-dev-tools, and isn't part of python3-colcon-common-extensions.
Thoughts on adding it? The mixin documentation is already included in the "reference" section of the colcon documentation, so it would seem natural to me to make it one of the default plugins.
https://colcon.readthedocs.io/en/released/reference/verb/mixin.html

Duplicates https://github.com/colcon/colcon-mixin-repository/issues/36
I agree, this is a great enhancement. If you follow the ROS tutorials, then follow the colcon docs, there's a gap.

@mjcarrol While it's on your mind from the other PR, do you have any thoughts on this addition? If you like it, I'm happy to do a PR.


Refactor external_deps in puppet, add aarch64 support

Testing plan: Installed a basic aarch64 host (with no postgresql, due to wal-g limitations mentioned in the commits)

This is great, merged, thanks @alexmv!  I very much appreciate having these versions all living in a single place now.  Worth discussion @andersk's idea of further centralizing a registry on top of this, but this seems like a nice checkpoint in any case.


System keeps disabling ssh password after every update

After disabling ssh password one time, system keeps turning it off at every raspiblitz update, while restoring persistent configuration at boot.
Fixed it by placing the ssh.reset file on boot partition root and manually changing the PasswordAuthentication field to yes on the following files inside the ssd:
/mnt/hdd/app-data/sshd/ssh/sshd_config
/mnt/hdd/app-storage/ssh-old-backup/sshd_config

Does is now survive updates?

Does is now survive updates?

Don't know. Haven't reflashed since.
It did correctly accept my password ssh connection after changing the ssh_config files in the ssd.


How to connect livy-spark with standalone spark cluster ?

Hi,
Can you help to point some tutorials or explain which configuration that I have to change to connect livy-spark with running spark standalone cluster,

whether it is possible right now ?
or do I have to create livy-spark cluster ?

I have try the following and its not working :

POST the session creation with the following data {"kind": "spark", "master" : "spark://localhost:7077" }
Start the livy-server with master parameters : ./bin/livy-server --master spark://localhost:7077

havent got any other idea, and I cannot find any reference to set master in the configuration
Thanks

You should configure you Spark as Standalone, then Livy will pick up automatically your Spark options if Spark if configured property. Then if you run Livy in local mode (the default), it should work.

that work @romainr , thanks
sorry for the late reply

@andrimirandi could you please explain me how you got that working. For me it doesn't work at all and also even tried with YARN too

@shamsmali (and to anyone else who faces this issue):

Navigate to livy-0.5.0-incubating-bin/conf
cp livy.conf.template livy.conf
vi livy conf

and uncomment the line:
livy.spark.master = spark://your-spark-standalone-cluster-url:7077
(Without quotes).


remove CompAbilityUserMagic.MagicAttributeEffeciencyLevel

No usages found.

Removed - Was an old way of doing things but replaced with less cumbersome code.


DPDK test application for DSA

build a demo container and deployment that shows DSA resource requests and that HW works.
https://doc.dpdk.org/guides/dmadevs/idxd.html

cleanup


Uncaught TypeError: Cannot assign to read only property 'prefix' of object '#'

Description
Error thrown when you have a property named prefix and do not use it for data-binding.
Live Demo
https://glitch.com/edit/#!/sudden-peak?path=my-element.html:22:24
Note: if you add a data-binding for the prefix property in the template, the error disappears
Steps to Reproduce
Example:

Create element from polymer-cli
Add property prefix to new element with type String and default value of empty string.
Check console for error

Expected Results
No error thrown
Actual Results
Error is displaying in console:
Uncaught TypeError: Cannot assign to read only property 'prefix' of object '#<MyElement>'

Browsers Affected

[x] Chrome
[x] Firefox
[x] Edge
[ ] Safari 9
[ ] Safari 8
[x] IE 11

Versions

Polymer: v2.6.0
webcomponents: v1.2.0

I can't find any reference to prefix in the Polymer library so I'm not sure if it's something that gets inherited from the HTML element and I can't override that? I couldn't find anything in the docs about property names I couldn't use.

I was unable to see the error in Glitch, but this JSBin shows the issue as well: http://jsbin.com/codaqutiho/1/edit?html,console,output
Now I think this is because this property already exists on an Element: https://developer.mozilla.org/en-US/docs/Web/API/Element/prefix You can run the following snippet and see that the setter does not exist:
Object.getOwnPropertyDescriptor(Element.prototype, 'prefix')

I do not think this is an issue with Polymer, but simply that no one is able to assign to the prefix property on any Element.

Oh, I missed your original comment at the end of your post. So yes, we came to the same conclusion. Therefore I am closing this issue, as this is sadly not something we have control over, but is baked into the platform.

That's fine. Is this something that should be raised in the documentation? I couldn't see anything there regarding what property names can't be called.

Yes that would make sense to me. Feel free to update the documentation at https://github.com/polymer/docs in an appropriate location.


restructure sozo reference

wdyt?

Just not sure we need the reference nest - i think it's cleaner without it

changed the SUMMARY structure to this

and the reference page to this

yep perfect


Update Dependency to fix Vulnerability

dependency Wait-On was updated to fix a security issue with lodash.
Automatic PR was already created by whitesource: https://github.com/bahmutov/start-server-and-test/pull/300

Thanks for pushing the new version, issue solved


Doesn't compile on Linux

You're pinned to a released version of ZIPFoundation, but their last release didn't unwrap an optional value in the else case of a #if os(macos) || ... check. They fixed it at head in weichsel/ZIPFoundation#323, but they haven't released a version with the fix.

Which version of Swift are you using?

$ swift --version
Swift version 5.10 (swift-5.10-RELEASE)
Target: x86_64-unknown-linux-gnu

Can you give an example of the error? 5.10 is the correct version for this project, and it's building fine for me on debian 12, even after cleaning the project. There are a lot of warnings, but I'm not seeing any build errors, and the server runs fine.

/mnt/c/Users/Dan/Documents/GitHub/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
            fseeko(result, 0, SEEK_END)
                   ^
/mnt/c/Users/Dan/Documents/GitHub/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: note: coalesce using '??' to provide a default when the optional value contains 'nil'
            fseeko(result, 0, SEEK_END)
                   ^
                          ?? <#default value#>
/mnt/c/Users/Dan/Documents/GitHub/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
            fseeko(result, 0, SEEK_END)
                   ^
                         !

It's possible it only affects Ubuntu 24.04, since that's also the version mentioned in weichsel/ZIPFoundation#320.

Not sure if there's anything we can really do to solve this until ZIPFoundation puts out a new version.

For now, you can locally switch the package() method to package(url:revision:), so: .package(url: "https://github.com/weichsel/ZIPFoundation.git", revision: "fac78dfe5a886ad98e355ba98475b30b3753213a"). Assuming the fix is merged into head, that ought to get you up and compiling. I'd prefer to avoid merging in that sort of change to the package file (because no updates); here's hoping a new ZipFoundation release is forthcoming.

As you may have been able to tell from the paths, my Ubuntu was on WSL, so I installed Debian as well and it seems to be working there.

I haven't dug into this at all yet. We've used Ubuntu 22.04 as the server OS and base container image for the last two sailings in 2023 and 2024 (20.04 before that in 2022, the debut of Swiftarr). When I did my developing on Fedora 37ish there was a glibc update that made certain Swift features not work natively on my laptop. It took a release or two of the OS or Swift or both for that to sort itself out. Meaning this happens, and it's unfortunate. Yay evolving tech.
I do not intend on spending cycles to upgrade us to Ubuntu 24.04 for the 2025 sailing unless there is a really compelling reason to do so. The next big jump in my mind will likely come along with Swift 6.

Can confirm on Ubuntu 24.04 (same error as Dan):
/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
 43 |         #endif
 44 |         if append {
 45 |             fseeko(result, 0, SEEK_END)
    |                    |- error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
    |                    |- note: coalesce using '??' to provide a default when the optional value contains 'nil'
    |                    `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
 46 |         }
 47 |         return result
/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
 43 |         #endif
 44 |         if append {
 45 |             fseeko(result, 0, SEEK_END)
    |                    |- error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
    |                    |- note: coalesce using '??' to provide a default when the optional value contains 'nil'
    |                    `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
 46 |         }
 47 |         return result
/swiftarr/.build/checkouts/ZIPFoundation/Sources/ZIPFoundation/Archive+MemoryFile.swift:45:20: error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
 43 |         #endif
 44 |         if append {
 45 |             fseeko(result, 0, SEEK_END)
    |                    |- error: value of optional type 'UnsafeMutablePointer<FILE>?' (aka 'Optional<UnsafeMutablePointer<_IO_FILE>>') must be unwrapped to a value of type 'UnsafeMutablePointer<FILE>' (aka 'UnsafeMutablePointer<_IO_FILE>')
    |                    |- note: coalesce using '??' to provide a default when the optional value contains 'nil'
    |                    `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
 46 |         }
 47 |         return result
[230/1242] Compiling Logging MetadataProvider.swift

And that replacing the line in Package.swift with .package(url: "https://github.com/weichsel/ZIPFoundation.git", revision: "fac78dfe5a886ad98e355ba98475b30b3753213a") as Chall described makes it compile.

Interesting note related to Swift 6 (#333): I had to use swift [run|build] --use-integrated-swift-driver to avoid random compiler failures:
error: failed parsing the Swift compiler output: unexpected JSON message: {
 "command_arguments" : [
    "-frontend",
    "-c",
...
...
    "\/swiftarr\/.build\/checkouts\/swift-nio\/Sources\/NIOCore\/AsyncSequences\/NIOAsyncSequenceProducerStrategies.swift",
    "\/swiftarr\/.build\/checkouts\/swift-nio\/Sources\/NIOCore\/AsyncSe: dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: nil))

https://forums.swift.org/t/compiler-crashing-with-unhelpful-error/62138
https://forums.swift.org/t/project-does-not-compile-with-swift-6-on-windows-but-on-macos/75435


Support for SPIR-V extension

Hello,
I wanted to use spirv extension in my OpenGL project, but when I tried adding GL_ARB_gl_spirv as an extension in my custom build.rs It did not generate corresponding functions and enums.
Here is my code:
    Registry::new(         Api::Gl,         (4, 5),         Profile::Core,         Fallbacks::All,         [             "GL_ARB_bindless_texture",             "GL_ARB_seamless_cubemap_per_texture",             "GL_EXT_texture_filter_anisotropic",             "GL_ARB_gl_spirv"         ],     ).write_bindings(GlobalGenerator, &mut file)         .unwrap();
Other extensions work without any problem. Is this problem related to gl_generator, khronos api, or did I do something wrong?

The khronos_api crate probably needs an update.

Successfully compiled and ran SPIR-V program using OpenGL after merge request. Huge thanks for helping with pull request and merging it! :)


documentation on usage not 100% correct.

On the gitpage it gives this usage example:
LazyColumnScrollbar(listState = listState) {
LazyColumn(....)
}
Howver, since this actually matches two different signatures of the composable named LazyColumnScrollbar (as the name is overloaded), it will not compile in Android Studio.
I had to do this:
LazyColumnScrollbar(listState = listState, enabled = true) {
LazyColumn(....)
}
as this only matches one composable signature to get it to work.
Otherwise, great library!

4546263e792ddd7560379f2a8c7dea2386aec040


HDDS-4575: Refactor SCMHAManager and SCMRatisServer with RaftServer.Divison

What changes were proposed in this pull request?
Simplify SCMHAManager and SCMRatisServer with RaftServer.Division
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4575
How was this patch tested?
CI

+1


No images are shown

I tried all possible options and also various image sources. However, there is always the same single image shown which says "Sorry, Sorry Retry ..." instead of giving a time. Any idea what's going wrong?
I am on Sony Xperia Z3 Compact with CyanogenMod 12.1 (Android-Version 5.1.1).

OK I'll look into this next week ..

I'm experiencing the same issue.  It does not work on all of my devices.


⚠ Bofrost.be has degraded performance

In d26e972, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1712 ms

Resolved: Bofrost.be performance has improved in 331136a.


Apache Kafka and zookeeper from the catalog

Describe your issue here
It seems to be an issue here. The kafka service is frequently interrupted.
This is what I can see in the logs from zookeeper.
4/12/2016 12:43:20 PMTue Apr 12 10:43:20 UTC 2016 - checking rancher network...
4/12/2016 12:43:31 PMtail: can't open '/opt/zk/logs/zookeeper.out': No such file or directory
4/12/2016 12:43:31 PMTue Apr 12 10:43:31 UTC 2016 - [ Static zk configuration... ]
4/12/2016 12:43:31 PMTue Apr 12 10:43:31 UTC 2016 - [ Getting zk configuration... ]
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Backend set to rancher
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Starting confd
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Backend nodes set to
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Using Rancher Metadata URL: http://rancher-metadata
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Target config /opt/zk/data/myid out of sync
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Target config /opt/zk/data/myid has been updated
4/12/2016 12:43:31 PM2016-04-12T10:43:31Z 9d8e625ad063 /usr/bin/confd[25]: INFO Target config /opt/zk/conf/zoo.cfg out of sync
4/12/2016 12:43:35 PMtail: /opt/zk/logs/zookeeper.out has appeared; following end of new file
4/12/2016 12:43:35 PM2016-04-12 10:43:35,333 [myid:] - INFO  [main:QuorumPeerConfig@103] - Reading configuration from: /opt/zk/bin/../conf/zoo.cfg
4/12/2016 12:43:35 PM2016-04-12 10:43:35,340 [myid:] - INFO  [main:QuorumPeerConfig@340] - Defaulting to majority quorums
4/12/2016 12:43:35 PM2016-04-12 10:43:35,343 [myid:3] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
4/12/2016 12:43:35 PM2016-04-12 10:43:35,343 [myid:3] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 1
4/12/2016 12:43:35 PM2016-04-12 10:43:35,347 [myid:3] - INFO  [PurgeTask:DatadirCleanupManager$PurgeTask@138] - Purge task started.
4/12/2016 12:43:35 PM2016-04-12 10:43:35,356 [myid:3] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer
4/12/2016 12:43:35 PM2016-04-12 10:43:35,362 [myid:3] - INFO  [PurgeTask:DatadirCleanupManager$PurgeTask@144] - Purge task completed.
4/12/2016 12:43:35 PM2016-04-12 10:43:35,371 [myid:3] - INFO  [main:NIOServerCnxnFactory@94] - binding to port <IP_ADDRESS>/<IP_ADDRESS>:2181
4/12/2016 12:43:35 PM2016-04-12 10:43:35,382 [myid:3] - INFO  [main:QuorumPeer@959] - tickTime set to 2000
4/12/2016 12:43:35 PM2016-04-12 10:43:35,382 [myid:3] - INFO  [main:QuorumPeer@979] - minSessionTimeout set to -1
4/12/2016 12:43:35 PM2016-04-12 10:43:35,382 [myid:3] - INFO  [main:QuorumPeer@990] - maxSessionTimeout set to -1
4/12/2016 12:43:35 PM2016-04-12 10:43:35,382 [myid:3] - INFO  [main:QuorumPeer@1005] - initLimit set to 10
4/12/2016 12:43:35 PM2016-04-12 10:43:35,395 [myid:3] - INFO  [main:QuorumPeer@473] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
4/12/2016 12:43:35 PM2016-04-12 10:43:35,398 [myid:3] - INFO  [main:QuorumPeer@488] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
4/12/2016 12:43:35 PM2016-04-12 10:43:35,405 [myid:3] - INFO  [Thread-2:QuorumCnxManager$Listener@504] - My election bind port: /<IP_ADDRESS>:3888
4/12/2016 12:43:35 PM2016-04-12 10:43:35,413 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@714] - LOOKING
4/12/2016 12:43:35 PM2016-04-12 10:43:35,419 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@815] - New election. My id =  3, proposed zxid=0x0
4/12/2016 12:43:35 PM2016-04-12 10:43:35,435 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@597] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
4/12/2016 12:43:35 PM2016-04-12 10:43:35,436 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@597] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), FOLLOWING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
4/12/2016 12:43:35 PM2016-04-12 10:43:35,436 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@597] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
4/12/2016 12:43:35 PM2016-04-12 10:43:35,437 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@597] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
4/12/2016 12:43:35 PM2016-04-12 10:43:35,438 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@597] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LEADING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
4/12/2016 12:43:35 PM2016-04-12 10:43:35,439 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@784] - FOLLOWING
4/12/2016 12:43:35 PM2016-04-12 10:43:35,443 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Learner@86] - TCP NoDelay set to: true
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:host.name=9d8e625ad063
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.version=1.8.0_66
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.vendor=Oracle Corporation
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.home=/opt/jre1.8.0_66
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.class.path=/opt/zk/bin/../build/classes:/opt/zk/bin/../build/lib/.jar:/opt/zk/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zk/bin/../lib/slf4j-api-1.6.1.jar:/opt/zk/bin/../lib/netty-3.7.0.Final.jar:/opt/zk/bin/../lib/log4j-1.2.16.jar:/opt/zk/bin/../lib/jline-0.9.94.jar:/opt/zk/bin/../zookeeper-3.4.6.jar:/opt/zk/bin/../src/java/lib/.jar:/opt/zk/bin/../conf:
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
4/12/2016 12:43:35 PM2016-04-12 10:43:35,448 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.io.tmpdir=/tmp
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.compiler=
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.name=Linux
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.arch=amd64
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.version=3.10.0-327.4.4.el7.x86_64
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.name=root
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.home=/root
4/12/2016 12:43:35 PM2016-04-12 10:43:35,449 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.dir=/opt/zk
4/12/2016 12:43:35 PM2016-04-12 10:43:35,450 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@162] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /opt/zk/data/version-2 snapdir /opt/zk/data/version-2
4/12/2016 12:43:35 PM2016-04-12 10:43:35,451 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Follower@63] - FOLLOWING - LEADER ELECTION TOOK - 32
4/12/2016 12:43:35 PM2016-04-12 10:43:35,472 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Learner@323] - Getting a diff from the leader 0x0
4/12/2016 12:43:35 PM2016-04-12 10:43:35,474 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:FileTxnSnapLog@240] - Snapshotting: 0x0 to /opt/zk/data/version-2/snapshot.0
4/12/2016 12:43:35 PM2016-04-12T10:43:35Z 9d8e625ad063 /usr/bin/confd[25]: INFO Target config /opt/zk/conf/zoo.cfg has been updated
4/12/2016 12:43:35 PMTue Apr 12 10:43:35 UTC 2016 - [ Starting monit... ]
4/12/2016 12:43:36 PM New Monit id: 92a28379f6707d7558c4653f57a9b40d
4/12/2016 12:43:36 PM Stored in '/root/.monit.id'
4/12/2016 12:43:36 PMStarting Monit 5.15 daemon with http interface at [*]:2812
4/12/2016 12:44:36 PM2016-04-12 10:44:36,094 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /0:0:0:0:0:0:0:1:44967
4/12/2016 12:44:36 PM2016-04-12 10:44:36,168 [myid:3] - WARN  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@357] - caught end of stream exception
4/12/2016 12:44:36 PMEndOfStreamException: Unable to read additional data from client sessionid 0x0, likely client has closed socket
4/12/2016 12:44:36 PM	at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
4/12/2016 12:44:36 PM	at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
4/12/2016 12:44:36 PM	at java.lang.Thread.run(Thread.java:745)
4/12/2016 12:44:36 PM2016-04-12 10:44:36,171 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@1007] - Closed socket connection for client /0:0:0:0:0:0:0:1:44967 (no session established for client)
4/12/2016 12:45:36 PM2016-04-12 10:45:36,096 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /0:0:0:0:0:0:0:1:45107
4/12/2016 12:45:36 PM2016-04-12 10:45:36,096 [myid:3] - WARN  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@357] - caught end of stream exception
4/12/2016 12:45:36 PMEndOfStreamException: Unable to read additional data from client sessionid 0x0, likely client has closed socket
4/12/2016 12:45:36 PM	at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
4/12/2016 12:45:36 PM	at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
4/12/2016 12:45:36 PM	at java.lang.Thread.run(Thread.java:745)
4/12/2016 12:45:36 PM2016-04-12 10:45:36,097 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@1007] - Closed socket connection for client /0:0:0:0:0:0:0:1:45107 (no session established for client)
4/12/2016 12:46:36 PM2016-04-12 10:46:36,102 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /0:0:0:0:0:0:0:1:45241
4/12/2016 12:46:36 PM2016-04-12 10:46:36,103 [myid:3] - WARN  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@357] - caught end of stream exception
4/12/2016 12:46:36 PMEndOfStreamException: Unable to read additional data from client sessionid 0x0, likely client has closed socket
4/12/2016 12:46:36 PM	at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
4/12/2016 12:46:36 PM	at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
4/12/2016 12:46:36 PM	at java.lang.Thread.run(Thread.java:745)
4/12/2016 12:46:36 PM2016-04-12 10:46:36,103 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@1007] - Closed socket connection for client /0:0:0:0:0:0:0:1:45241 (no session established for client)
4/12/2016 12:47:36 PM2016-04-12 10:47:36,111 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /0:0:0:0:0:0:0:1:45379
4/12/2016 12:47:36 PM2016-04-12 10:47:36,112 [myid:3] - WARN  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@357] - caught end of stream exception
4/12/2016 12:47:36 PMEndOfStreamException: Unable to read additional data from client sessionid 0x0, likely client has closed socket
4/12/2016 12:47:36 PM	at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
4/12/2016 12:47:36 PM	at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
4/12/2016 12:47:36 PM	at java.lang.Thread.run(Thread.java:745)
4/12/2016 12:47:36 PM2016-04-12 10:47:36,112 [myid:3] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@1007] - Closed socket connection for client /0:0:0:0:0:0:0:1:45379 (no session established for client)
Zookeeper
3.4.6-RANCHER
Kafka
0.9.0-Rancher

Useful
Info

Versions
Rancher v1.0.0 Cattle: v0.159.2 UI: v0.100.3

Access
Disabled

Route
authenticated.project.help

Could you look open this issue in the https://github.com/rancher/community-catalog repository? We won't provide direct support to the non-certified templates, but you can submit an issue there and mention the person who created the template to see if they might help out.

@eguswes As I mentioned, it's best if you open your issue in the other repo. Thanks!


Contributing guide

Adds a contribution guide.

Will merge it like that, with the following action items:

Work on adding an issue template (for both huggingface_hub and accelerate)
Have a similar method to transformers-cli env for accelerate (can be a get_versions() like Adrin mentions)

@sgugger, ok for you if I open issues for that on accelerate?

Fine by me! It can be a good first issue!


fix: lock into vpc-go-sdk v0.41.0

Description
lock into vpc-go-sdk v0.41.0 and create renovate rule to prevent it from updating (see https://github.com/IBM/vpc-go-sdk/issues/49)
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

When merging, use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

/run pipeline

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


zwave wake up interval showing wrong

Home Assistant release (hass --version):
0.55
Python release (python3 --version):
3.5
Component/platform:
zwave
Description of problem:
The zwave node wake up interval is always showing 240 in the frontend instead of the actual configured value. Mine are mostly at 600 or 3600, but all nodes show 240.
Expected:
Wake up interval showing the configured value.

Values are fetched from ozw registry.
Battery devices are not updated in the ozw cache until they wake up.
What does your zwcfg file show for wakup values of your nodes?
Home assistant should use the same zwcfg file as ozwcp if you use it. This is what I think is happening. Home assistant must be stopped when replacing/editing the zwcfg file, otherwise it won't stick.

I’ve isolated this issue to Aeotec devices. A recently installed Fibaro device shows the correct value.
Also verified that the devices do operate at the configured and expected interval. They do!
So there’s a mismatch between the device and OZW. This leads me to an issue with OZW and not HA.
To answer your questions:
3. The zwcfg shows the wrong values (same as HA)
4. Check I know and double checked. Not using ozwcp anymore.

Ok, then this is a device problem or OZW problem. We rely on the info provided from OZW.

I have the same problem with incorrect wake up intervals in Home Assistant. I've tried setting and viewing the wake up interval in Domoticz instead, using the same ozw config and it seems to be working.


[Question]: Add chat history / GPTIndexChatMemory

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
Hi all,
I upgraded a couple of weeks ago to llama-index==0.6.37 and I would now like to implement the chat history, can you kindly support me? Do you have any reference or can lead me to docs? I saw some examples but they use OpenAIChat /agent_executor
Thanks
`      documents = SimpleDirectoryReader(folder_name).load_data()
    llm_predictor = LLMPredictor(
        llm=OpenAI(temperature=0, model_name=ai_model, max_tokens=512)
    )
    service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)

    # Call VectorStoreIndex.load_from_disk
    index = VectorStoreIndex.from_documents(
        documents, service_context=service_context
    )
    query_engine = index.as_query_engine()
    results = query_engine.query(prompt)
    # Query the index
    message_to_send = results.response`

Instead of Query Engine, you can use Chat Engine to track the history. Refer https://gpt-index.readthedocs.io/en/latest/core_modules/query_modules/chat_engines/root.html

Thanks @BharahthyKannan what about something like this?
It is still answering that it does not know my name.
`        custom_prompt = Prompt("""
Given a conversation (between Human and Assistant),
give me an answer using all relevant context \
    <Chat History>
    {chat_history}

    <Follow Up Message>
    {question}

    <Standalone question>
    """)
            custom_chat_history = [
        (
            'Hi, I am John and I was wondering if your company accepts Euro payments?.',
            'Hi John, Yes we do accept Euro.'
        )
    ]

    query_engine = index.as_query_engine()
    chat_engine = CondenseQuestionChatEngine.from_defaults(
        query_engine=query_engine,
        condense_question_prompt=custom_prompt,
        chat_history=custom_chat_history,
        verbose=True
    )

    results = chat_engine.chat('Do you remember my name?')

    message_to_send = results.response
    `

@sorrentinopasquale How can we use chatengine along with limiting GPT to the data we provide it only.

@BharahthyKannan How can we use chatengine along with limiting GPT to the data we provide it only.

you can use vectordatabase that you store to the chatbot

Any idea how to use history while using graphs? Graphs do not have chat engine option, it only has query engine.


EPIC: Make optional dependencies available via conda-forge

Comment:
I noticed that some optional polars dependencies aren't available through conda-forge. It would be nice if all optional dependencies could be installed via conda - so that one doesn't need pip.
Missing (to the best of my knowledge):

[ ] xlsx2csv
[ ] deltalake

Also, it would be good to add the version constraints from https://github.com/pola-rs/polars/blob/master/py-polars/pyproject.toml#L42-L59 as run-constraints to the polars conda-forge recipe
transferred from https://github.com/pola-rs/polars/issues/7585

xlsx2csv and deltalake are both available on conda-forge and are nearly up-to-date (https://github.com/conda-forge/xlsx2csv-feedstock/pull/1 @borchero 👀).
I am not sure how we can map pip's optional dependencies to conda until https://github.com/conda/ceps/pull/55 is accepted, without introducing run_constraints for the package in general.

I recently noticed that fastexcel is missing from conda-forge though, I'll take care in the next couple days.

I merged the xlsx2csv version update, thanks for pointing me to it @0xbe7a

Added fastexcel to the todo-list :)

If I understand run constraints correctly, they can be optional - that's the whole point? That they are not requirements but constraints in case the optional requirement is fulfilled?
@0xbe7a maybe I misunderstand, but to me that's what the docs say pretty explicitly.
See: https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#run-constrained
E.g.

Run_constrained
Packages that are optional at runtime but must obey the supplied additional constraint if they are installed.
Package names should follow the package match specifications.
requirements:
  run_constrained:
    - optional-subpackage =={{ version }}

and

If build and link dependencies need to impose constraints on the run environment but not necessarily pull in additional packages, then this can be done by altering the Run_constrained entries. In addition to weak/strong run_exports which add to the run requirements, weak_constrains and strong_constrains add to the run_constrained requirements. With these, e.g., minimum versions of compatible but not required packages (like optional plugins for the linked dependency, or certain system attributes) can be expressed:

However, the run_constraint is also enforced even if the user is not using the Polars features that depend on these packages. For example, we might have a large environment containing openpyxl 2.* because some other logic makes use of it and is not using the Polars "read excel" functionality. The run_constraint would still enforce openpyxl 3.*. Conda would fail to solve this case, while with pip, we could simply not enable the optional feature.

True, but no package truly always use all the functionality that give rise to a particular constraint. I guess it depends how commonly used the optional dependency is and how tightly you are constrained/constraining. It's always a tradeoff.

The best way to ensure solve issues would be to ensure optional dependencies are as little constrained as possible.

I see your point, and I also think that this should be a tradeoff based on the popularity of the dependency. I am hesitant here, as there is nothing the end-user can do to ignore these potentially "bogus" constraints and create the environment regardless of any constraints. Feel free to open a PR for any potential constraints. I think it's much better to go through this on a case-by-case basis rather than in general.


Example gets deadlocked

While the particle simulator sounds like an interesting project, it's not best suited to getting a quick understanding of how to use nooocl.
Examples such as

adding numbers
computing averages
finding the maximum and minimum in a set of numbers
checking if all numbers are within a range

would be fast (for you) to make, and would be a good illustration of how to run OpenCL with NOOOCL.
Having at least one such complete example in the readme would be useful.
If you do one example, I could then attempt the other ones. Then you could look at them to see if there are different ways of doing the same things, using different parts of the NOOOCL / OpenCL interface.

Thanks for feedback.
I have just released 0.9.10 with an example: https://github.com/unbornchikken/NOOOCL#examples
If you have time to write some others, please PR'em into the examples directory with a small readme file. Thanks a lot!

Many thanks. That example will be a great help.

I've just run the example, and it looks like I'm getting a similar problem to what I encountered before.
I get this output:
C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>iojs vecadd.js
Running on device: Pitcairn - AMD Accelerated Parallel Processing
Building ...
(Everything after this point is asynchronous.)
"C:\Users\James\AppData\Local\Temp\OCL948T5.cl", line 1: warning: OpenCL
          extension is now part of core
  #pragma OPENCL EXTENSION cl_khr_fp64 : enable
                           ^
Build completed.
Launching the kernel.
Waiting for result.

C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>

It's not reaching the callback method where it logs the result to the console. Here it's the enqueueReadBuffer callback not being called.

I happen to be able to test it on a Pitcairn at my work. At my side it's work with a Barts an on the CPU. Till please try to delete node_modules folder, then do an npm install then retest. Anyway which version of iojs are you using? This seems more than an ffi/libuv issue than an NOOOCL one coz you got a deadlock here.
If nothing helps, please try it on the CPU by commenting out this line: https://github.com/unbornchikken/NOOOCL/blob/master/examples/vector-addition/vecAdd.js#L41

Wouldn't an npm update nooock be OK?

Nope. Try a full install plz.

I deleted the nooocl directory from node_modules and then reinstalled it. It would be inconvenient to delete the whole node_modules folder and I'll only do it if I know it's necessary.

Still the same result.

Because if you upgrade io.js regularly but forgot to reinstall all of the native modules in your applications then weird things can happen. Like this one.

I'm using iojs 1.6.2.

Ok, I'll try to reproduce it later today with Pitcairn on Windows x64 io.js 1.6.2. I hope that I'll get this too.

Till please try it with CPU fallback. If you'll still experience it, then it have to an ffi issue. I'm one of the recent ffi module contributors, so I will able to fix it if that is the case ASAP.

I need your help with this please. I was able to run the example with Pitcairn but the machine where it is available runs Linux Mint 17.1, and I'm not experiencing this issue on it. I've also tested it on Windows with an Intel chip and the example ran flawlessly. Both cases went on io.js 1.6.2.
I need you to try two things:

Run the example as is, and after completion enter echo %ERRORLEVEL% then please put the result there, it's gonna be a number.
Run the example by commenting out this line: https://github.com/unbornchikken/NOOOCL/blob/master/examples/vector-addition/vecAdd.js#L41

Thanks a lot!

C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>iojs vecAdd.js
Running on device: Pitcairn - AMD Accelerated Parallel Processing
Building ...
(Everything after this point is asynchronous.)
"C:\Users\James\AppData\Local\Temp\OCL1088T5.cl", line 1: warning: OpenCL
          extension is now part of core
  #pragma OPENCL EXTENSION cl_khr_fp64 : enable
                           ^
Build completed.
Launching the kernel.
Waiting for result.

C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>echo %ERRORLEVEL%
-1073741819

C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>

Thank you

That's an Access Violation thrown from somewhere in the ffi module. Would you try it with cpu fallback?

I just commented out that line so it tries to run on the CPU. Unfortunately it does not get as far this time:
C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>iojs vecAdd.js
No GPU devices has been found, searching for a CPU fallback.
Running on device: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz - Intel(R) OpenCL
Building ...
(Everything after this point is asynchronous.)

C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>

May I ask for what is the result of echo %ERRORLEVEL% for the second one?

After running that one:
C:\Users\James\Dropbox\metabench\metabench\jsgui\apps\ocl>echo %ERRORLEVEL%
0

Finally I'm able to reproduce this on Windows with an NVidia 630M. Calling clSetEventCallback crashes the process with an access violation on this platform. This needs a deep investigation though.

Very interesting. Thanks.

I have investigated the issue. With Node 0.10.3x, ffi 1.2.7, i get:
Running on device: Pitcairn - AMD Accelerated Parallel Processing
Building ...
(Everything after this point is asynchronous.)
"C:\Users\Gabor\AppData\Local\Temp\OCL4000T5.cl", line 1: warning: OpenCL
extension is now part of core
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
^
Build completed.
Launching the kernel.
Waiting for result.
Final result: 1
So it's an ffi module vs Windows issue definitely. It has been recently upgraded to support io.js and Node.js 0.12 but it seems that was not that success.
I'm planning to switch from ffi bindings to native https://github.com/mikeseven/node-opencl based bindings.

It will be interesting to see how this project develops.
I'm working on my own system of running OpenCL through iojs at the moment. Maybe it's worth me sharing it on Github soon.

NOOOCL is a high level, object oriented library, that way mutch simpler to use than the native C api. Currently I'm using ffi module to access the C api. Node-opencl will provide the same low level api with the same interfaces. Essentially thats only lic/cl11.js and lib/cl12.js files, NOOOCL is far more than that.

I took a look at node-opencl. Right now it have issues of its own, it's in early beta state, it doesnt even get published to npm yet. Despite in long term Im willing to switch to it, right now the only option is to stay with ffi. In the easter holyday Im trying to get some time and compile an io.js and ffi debug build for windows, and go after this issue with visual c++ debugging tools.

Good news, I have successfully identified the source of this. Actually it's not because of a bug left in the ffi module, libuv the node event loop handling library has a strange bug that caused our issue here. I managed to implement a workaround for this into the ffi package, and will propose a PR today. I'm gonna publish the fix to my ffi fork (ffi-io on the npm), until my PR gets merged, it will do for NOOOCL. I have to go now, but I'm gonna release a fix for NOOOCL later today. Thanks for patience.

I may have seemed patient, but in fact I've not been patient at all. I've been coding the OpenCL calls from a C++ addon. I tried various options to make it easier, including yours, but none of them worked for me. When I was able to run that Oak Ridge example I based my code on that.
I've made a nice and fairly simple VM that lets the user set up OpenCL kernels and buffers from JavaScript, and execute them.
I've been having more ideas about writing fast code easily, and I'm thinking that some compilation tools to compile to OpenCL would be really useful. In particular, I'm thinking that compiling a superset of TypeScript would be nice (superset that supports the variety of numeric data types).

You may be interested in the OpenCL experiments I've done, published at https://github.com/metabench/opencljs-experiments
I've not been using any other node libraries to connect with OpenCL (apart from NAN for helping with the C++ bindings).
I'm not really planning on making the whole of OpenCL available, but at this stage the goal is to provide convenient means to run code quickly on the GPU.
I noticed that with the vector addition OpenCL code, only one line was actually doing the addition. I'm thinking about how OpenCL C, or code that compiles to it could be written inline with JavaScript code.
At the moment, I'm looking into what pre-existing conventions exist, and what conventions would make it fast to port from JavaScript code to this format.
Also, some JavaScript code looks very much like C, in isolation from other code. The code that actually does a vector addition, c[id] = a[id] + b[id], could even be JavaScript.

0.9.12 has been published, that should fix this.
I think coding GPGPU will never gonna be easy. Take an obvious example: there are given 5000 numbers, try to calculate they average on the GPU fast. You are never gonna succeed because of hardware restrictions, there is no way to synchronize (efficiently) across GPU cores, so there is no way to calculate one average, you'll have groups of averages.
I get what you wanna achieve. There are some excellent solutions like this but not for JavaScript, because its dynamic nature contradicts with C/C++ syntax and schematics of kernel languages.
CUDAify https://cudafy.codeplex.com/ : there you can write GPU kernels in C# language.
C++ AMP https://msdn.microsoft.com/en-us/library/hh265136.aspx : there you can write (and profile and even debug!) GPU kernels in C++11 language.
I can see that you can handle yourself well with C++, so I think C++ AMP is that what you seek for. That's an awesome bit of technology for sure. Its only drawbacks compared to OpenCL is the reduced performance but you always pay with this for this kinda syntactic sugars.
Regarding NOOOCL. Please don't judge a module when it is in its early beta stage. All of the node native addon community suffered from the recent V8/libuv backward incompatible changes. But those issues gets addressed for sure, like this one. I've made an other example for you, that shows why I used promises instead of callbacks. With ES6 generators and promises your asynchronous code will look exactly like synchronous, and you get the same control flow constructs asynchronously (like for, if, while, etc).

Yes, averaging numbers sounds more difficult in some ways. I'm sure it's solvable, but at what complexity cost?
The way I'm think of uses a for loop within the OpenCL loop to calculate averages for subsections, then those will be averaged. Although conceptually solving this on a GPU is more complicated than sequentially, I also think that complexity can be expressed in a simpler way then it is at the moment.
C++ AMP looks nice in theory, but I don't think it's open-source and cross-platform. Maybe that could change sometime (soon). Maybe I spoke to soon - I just saw this and it looks very interesting: http://www.amd.com/en-us/press-releases/Pages/developer-language-2014aug26.aspx
Me being able to handle myself with C++ is a relatively recent phenomenon, I'm pleased it's taking place. I don't like C++ that much in terms of syntax. I think some C++ extracts or functions can be very readable, and also look similar in lots of other languages and are easy to port between languages.
I have not drawn much of a judgement of NOOOCL apart from thinking it's got lots of potential. Looking at the source code, it covers a lot of the OpenCL API, providing ways of calling it asynchronously from JavaScript. I'm very interested in setting up my functions in C++ to work asynchronously and plan on using libuv for that. I'm not sure at this stage how much would need to be done with asynchronous callbacks in particular places or how much it will help, but I'll investigate further.
Writing asynchronous ES6 code like you have described sounds very good.
The OpenCL language looks like it can support a fair few things, with simple code, except lots of the code around it looks complex. It looks like there are a fair few OO features in OpenCL, including V 2.0, but I'm not quite sure what's in what version or even how to choose which version to run.
Now I'm using some quite simple code that fits in reasonably well with JavaScript to add numbers:
var k2s = write_kernel('vecAdd', [['a', Float32Array], ['b', Float32Array]], ['res', Float32Array], `
  res[id] = a[id] + b[id];
`);

I think we should continue this otherwise interesting discussion in an other issue thread, not this one. This one is about the crash. I'm wondering about that have you get the change to try the fix that I've released before?

OK, I understand.
No, I've not tried it yet. I'll try it soon, but am busy right now with my OpenCL system and am going out fairly soon.

I verified this on every machine on that I got this crash before. It seems with the new version the crash is gone.


animated gif support

hi there,
i can't find anything related to supporting animated gifs (try this link as an example).
the first frame of the gif is handled fine, maybe that's on purpose, but i would like to resize, crop etc all the frames and get back the original gif animation. as far as i can see pillow supports animated gif handling.
is this something you would like to support in pilbox?
all feedback appreciated!
/cc @seichner

I've considered this. My main concern is that I can't imagine that this will ever be fast enough to allow "realtime" resizing. The files themselves tend to be large and would require long download times, and resizing all those frames will be time consuming itself. If it were a one-liner, I'd probably implement it and leave it to the caller to determine if it was acceptable or not, but I suspect it'd be a bit more work than that. That said, it's possible that I'm completely wrong, but I would like to see a bit of demand to determine if it's worth putting the effort in.

thanks for your feedback @agschwender
we are currently evaluating some image services at jimdo and need to match our existing feature-set. unfortunately resizing of animated gifs is one of them :smile_cat: and services like thumbor allow exactly that.
if you can give me some starting points, i would be happy to spike a solution with my unbearable python skills.

I look at thumbor as sort of a superset of everything that anyone has ever needed for image resizing. With pilbox, I've tried to take a more minimal approach which I believe lends itself to more readable code and less dependencies. So I'm happy to have a smaller feature set, that satisfies most use cases and let users which require a larger feature set use other services. That said, if there was a ton of demand for this feature among pilbox's user base or if the code/dependency changes were so minimal that it wouldn't be burdensome to add/maintain, I'd re-evaluate its inclusion.

i like your thinking. nevertheless, i'll try to polish my python coding and see if i can get a working prototype so we have something to base the burdensomeness on

Did you make any progress in this @phoet?

We discontinued this path as animated gif support in pil is quite poor. We are now using gifsicle in thumbor for this purpose. Thx for your feedback and support.


lookup service to alert users they are entering duplicates

implement (i.e. refactor existing) lookup service to alert users when they start entering data about an existing entry (see js checkRecords)

when a text field is marked as disambiguate in myform.json, this field is used in the lookup.
Now the JS can query also blazegraph in localhost (no need of a online repo) - need CORS enabled in the browser (e.g. Safari)


Basic Bookmark Support/Quick Open Enhancements

Basic bookmark support
Fixes #506
This checks if you are in the install or home directory, if so then open
bookmarks instead of searching through files which can cause freezing
of Oni.

Implement oni.bookmarks so user can set these.
Make sure we don't click on spinning icon or bookmark info message as
a file
Comment some sections of the code I have concerns about.
Add different icon type for bookmarks.
If bookmark change directory of vim to the bookmark
(which triggers DirChanged so also Oni.)
If user doesn't yet have bookmarks supplied open config through
command so that is the default open oni when one doesn't exist.

will submit gif later

Screen gif :)

This would be the syntax for the Readme.md
![basic-bookmark-support](http://i.imgur.com/O2rilC6.gifv)

Trying this out right now - thanks for the gif! 😄

Tried it out by running the packaged executable on Windows. Cool, looks like the functionality is working great! I was able to add a bookmark and open it.
A couple of suggestions / ideas:
First round experience

Can we change the text for the  no-bookmarks menu option to read "Add Bookmark" and add detail text that reads "Select this to open configuration and add a bookmark."
Could we add a menu option, in the initial case, to also "Open Folder" (to hook in the functionality")?

General
That's cool that the bookmark defaults to the 'explore' experience. I wonder if that makes sense for 'Open Folder' too, at least until Oni gets a first-class file explorer experience?
Could you please also update the README.md to highlight the functionality? It'd be great to have documentation on:

the new setting (oni.bookmarks)
the new entry point (<C-0>)

Thanks for putting this together! Look forward to having this in the next release 👍

Can we change the text for the no-bookmarks menu option to read "Add Bookmark" and add detail text that reads "Select this to open configuration and add a bookmark."

Yeah the help message string was just something random to get the point across, I was going ask for your preference. I'm thinking about how we use quickopen and about files, bookmarks, and was playing around with an idea similiar to fzf.vim where quickopen will become an interface or abstraction and we have a bookmark , file , folder,
Buffer(s) lines, etc quick open. Trying to figure out if that would be a preferred strategy also adding files as they load instead of batch loading.

Could we add a menu option, in the initial case, to also "Open Folder" (to hook in the functionality")?

Initial case? Do you mean open folder then select a folder and add that to bookmarks?
Yeah I can document it in a bit out right now.

I've only seen the gif (haven't played with it myself) so correct me if I'm wrong, but are we really only showing bookmarks when you're in your home directory?  I understand most users won't be interested in opening files in Oni's install dir but I don't think it's a safe assumption that no one will ever want to open files in their home directory.
If this is a way to mitigate the effect of scanning large directories, I'm fine with showing bookmarks first in the list and show them immediately as we fetch the directory contents asynchronously, but I don't think you should explicitly prevent getting the home directory's contents.  And again, if I'm misunderstanding something and you are still fetching the home directory's contents then you can ignore this rant. 😄

Yep, that's good feedback! Thanks @keforbes - I think it lines up with what @cyansprite mentioned in terms of next spite in the comments for #554:

I'm thinking about how we use quickopen and about files, bookmarks, and was playing around with an idea similiar to fzf.vim where quickopen will become an interface or abstraction and we have a bookmark , file , folder,
Buffer(s) lines, etc quick open. Trying to figure out if that would be a preferred strategy also adding files as they load instead of batch loading.

In other words, it sounds like we could not 'special-case' the bookmarks but show them alongside files (as well as buffers). Now that we have 'Open Folder' functionality, we could potentially only show/search files if the user has explicitly opened a folder. There's a precedence for this - as its how VSCode behaves. I think this would help the experience because you'd have to opt-in to the degenerate cases (specifically opening the Oni install directory folder, or the home folder), as opposed to just being surprised that Oni is scanning everything.

Basically yes I understand going to fix it next PR but currently this is the best I can do without breaking Oni :)

I think I agree with your open folder idea that we don't search files unless we have a folder open.
We would kill the need for a special case scenario, since the user wouldn't mean to open those folders, and in the case someone does want to search through their home directory we could have options to ignore .files/.dir and ignore binary files, and since I'm converting it to async this should be feasible.

We would kill the need for a special case scenario, since the user wouldn't mean to open those folders, and in the case someone does want to search through their home directory we could have options to ignore .files/.dir and ignore binary files, and since I'm converting it to async this should be feasible.

That sounds great! The special case scenario doesn't sit well with me, in retrospect, because there is a lot of explaining you have to do to a user to tell them how the feature works and what the expectation around it is. Being able to say "You need to Open Folder before your files show up in QuickOpen" is pretty easy to explain.
Your plan sounds great, I really like the idea of saving the folder and tracking so that it can be easy to get back to it.
In terms of the Open Bookmarks - I wonder if, to keep it simple, we could just always show the bookmarks too in QuickOpen? Otherwise, I'm okay with the default key sequence.
Thanks for following up on this, @cyansprite ! Looking forward to all the QuickOpen improvements! 👍

In terms of the Open Bookmarks - I wonder if, to keep it simple, we could just always show the bookmarks too in QuickOpen? Otherwise, I'm okay with the default key sequence.

Hmm... That sounds like a neat idea.

Haha, I love it.
@extr0py this what you have in mind :)

Wow, thanks for the gif and putting it together so quickly 😄

If you like it, I think we should just always show files regardless if the folder is opened...

I do like it, it shows the user that the 'bookmark' feature is available. The only concern I have is that, we might continue adding items here - it won't be clear to the user what things they need here. I think it also might be a bit confusing how 'Bookmark' differs from 'Open Folder'. But I'm okay trying it out and then refining it!

If you like it, I think we should just always show files regardless if the folder is opened...
Async of course, tracking the folder is kind of weird... on startup we chdir, so we would have to add
the special case for on start up, and then what if the user opens from command line? Do we respect that as a folder or not?

I'm thinking these might not need to be mutually exclusive. We could have the behavior of - if a folder is opened, show the files, otherwise, show an 'Open Folder' option. It seems like to me we'd want to handle opening from a folder in the command line the same as if they had selected 'Open Folder'.
So I think in that case we'd still need the special case of the install directory - if the working directory is the install directory, treat it like there was no 'open folder' action.
My goal is to keep things as simple as possible for the user (reduce the cognitive load of the experience).
Another thing I'm thinking about later is having a special start screen for Oni, if there is no file opened - that would show things like opening QuickOpen, adding a bookmark, maybe starting an improved vimtutor (#430), etc.

I do like it, it shows the user that the 'bookmark' feature is available. The only concern I have is that, we might continue adding items here - it won't be clear to the user what things they need here.

What other items? The intent would be show bookmarks if available or show this. I can't think of anything else to add unless we list the directories recursively ( Not files , ) so they can choose to open what they are looking for. I don't think we should add anything else to c-p. I am working on doing buffers, buffer lines and other things, but it will be a different mapping because it's a different function.

I think it also might be a bit confusing how 'Bookmark' differs from 'Open Folder'. But I'm okay trying it out and then refining it!

The only difference between the two are that opening a Bookmark would be opening a folder they saved so they can use the fuzzy finder rather than having to find the directory they want with open folder. So essentially they are the same.

So I think in that case we'd still need the special case of the install directory - if the working directory is the install directory, treat it like there was no 'open folder' action.

On Linux the install directory, or when I open it from the menu by click on the icon, it opens from the home directory, are we going to treat this as the install directory so if we are in the home folder as well?

Another thing I'm thinking about later is having a special start screen for Oni, if there is no file opened - that would show things like opening QuickOpen, adding a bookmark, maybe starting an improved vimtutor (#430), etc.

Sounds wonderful, also should be an option whether to show start/welcome screen or to open a blank file.

What other items? The intent would be show bookmarks if available or show this. I can't think of anything else to add unless we list the directories recursively ( Not files , ) so they can choose to open what they are looking for.

Oh ya, there is nothing else today - I was thinking about the future, if we decided to add more functionality, it might blur the line between what goes in QuickOpen vs the command palette. It's hypothetical now, so we don't need to do anything until it becomes an actual problem. Was just thinking out loud.

The only difference between the two are that opening a Bookmark would be opening a folder they saved so they can use the fuzzy finder rather than having to find the directory they want with open folder. So essentially they are the same.

Yep, sounds like a bookmark is really just a shortcut to open a folder. Sounds reasonable.

On Linux the install directory, or when I open it from the menu by click on the icon, it opens from the home directory, are we going to treat this as the install directory so if we are in the home folder as well?

Good point - I guess if this is the case, we really can't get out of special casing both those directories. If the user clicks "Open Folder" and picks the home directory or install directory, we should let them do that. But we shouldn't open it by default, like we would for other directories. Does that sound reasonable?

Sounds wonderful, also should be an option whether to show start/welcome screen or to open a blank file

Definitely! 😄

Oh ya, there is nothing else today - I was thinking about the future, if we decided to add more functionality, it might blur the line between what goes in QuickOpen vs the command palette. It's hypothetical now, so we don't need to do anything until it becomes an actual problem. Was just thinking out loud.

So how do you feel about loading all the folders when no folder is opened? Considering it will be async?

Good point - I guess if this is the case, we really can't get out of special casing both those directories. If the user clicks "Open Folder" and picks the home directory or install directory, we should let them do that. But we shouldn't open it by default, like we would for other directories. Does that sound reasonable?

Reasonable yes, just need to move some code around to get it to play nice :).

So how do you feel about loading all the folders when no folder is opened? Considering it will be async?

My preference would be not loading the folders. I tested the same scenario out in VSCode and Atom and they don't load the folders, either. It also is a safety net from us / the user hitting issues like #177

Reasonable yes, just need to move some code around to get it to play nice :).

Haha, sounds good

My preference would be not loading the folders. I tested the same scenario out in VSCode and Atom and they don't load the folders, either. It also is a safety net from us / the user hitting issues like #177

Then let's try to be a step above them?
I wrote a binary that lists all the dirs recursively under my home dir, ignores all dirs starting with . (hidden directories) in .8 seconds.
Would you like to try it out? (It's for linux so if you are on mac or linux you should be fine.)

Here's a example of how it would work.
This is from my home directory, async loading folders (You can't tell because it gets done so fast...)
These are binaries I'm making for files and directory loading...
I can add args so the user can pass in ignores they would like and we will have defaults so they can pick from them.

That's a nice find that you don't need two calls to git ls-files - that's great!

Open Folder support

C:/Users/brand/Desktop/oni/browser/src/Services/QuickOpen.ts[216, 1]: File should end in newline

.>
C:/Users/brand/Desktop/oni/browser/src/Services/QuickOpen.ts[218, 1]: Consecutive blank lines are forbidden
.>
File is 217 lines long, I give up on the formatting :P.

Next thing to do...
@extr0py can you test out my binary, see if it's suitable.
Add buffer lines support, I'm thinking  for like I'm doing a search, except do it with the fuzzy finder in QuickOpen, then this will jump to the line.

Buffer lines fuzzy finding, complete :)

Oh wow, the buffer search is a cool idea - neat!
I'm thinking about some other sorts of searching too (searching in files). I like Sublime / VSCode / Atom much better than the vim experience for doing things like find & replace.

Looks like one of my recent changes caused your AppVeyor build failure - I removed the 'Q' library and it looks like there is a conflict in Git.ts. So you might need to port over the changes had to convert that to use ES6 Promises instead of Q.

Oh and I'll try out the binary in a bit. I'm interested as to how it compares to something like ag or RipGrep. I've been toying with pulling ripgrep in as the default non-git search strategy for fuzzy finding.

Oh and I'll try out the binary in a bit. I'm interested as to how it compares to something like ag or RipGrep. I've been toying with pulling ripgrep in as the default non-git search strategy for fuzzy finding.

Wellll the binary I'm talking about it specifically for listing files and directories.
I don't know much about ripgrep but I didn't know ag could list files without searching through them.

Looks like one of my recent changes caused your AppVeyor build failure - I removed the 'Q' library and it looks like there is a conflict in Git.ts. So you might need to port over the changes had to convert that to use ES6 Promises instead of Q.

Okay I will merge the two.

Oh wow, the buffer search is a cool idea - neat!

Thanks I really liked the idea so I just went for it :).

I'm thinking about some other sorts of searching too (searching in files). I like Sublime / VSCode / Atom much better than the vim experience for doing things like find & replace.

Definitely. the search and replace and destroy plugin (sarada for short) is a vim remote plugin and WIP, I can make a stand alone binary that would do what we want, give me some time and I will put it together :P, the algo is sound.
With excluding files it's faster than ag in bigger directories on linux, but it's still a WIP...

Wellll the binary I'm talking about it specifically for listing files and directories.
I don't know much about ripgrep but I didn't know ag could list files without searching through them.

Ya, actually ag is recommended frequently to go with the Ctrl-P plugin - https://stackoverflow.com/questions/28260090/what-is-the-proper-vim-ag-gctrlp-user-command-value-for-windows. And I think ripgrep is even faster. There's even an NPM package with a cross-platform binary, too: https://www.npmjs.com/package/vscode-ripgrep , so it'd be straightforward to add as a dependency and package with Oni.
I tried out your binary on a VM, seems like it works well - it'd be interesting to compare the performance though to ag/ripgrep. There are some other features they have, like respecting the .gitignore functionality, search-in-files, etc.

I tried out your binary on a VM, seems like it works well - it'd be interesting to compare the performance though to ag/ripgrep. There are some other features they have, like respecting the .gitignore functionality, search-in-files, etc.

Listing files git ls-files will always be faster than rg or ag because it already has the list with .gitignore in mind.
Searching through files I think it would be easiest to just use ripgrep, it's trusted by a lot of people and I think my plugin is going in a different direction. Mine starts up with vim, when started it creates 16 p-threads, then it ignores .gitignore (i use git ls-files too :P) and then it caches those, as long as you don't change your dir it keeps them, then it pushes to the process daemon and then writes to a file and then loads it (vim doesn't have a good way to handle live streams... trying to find a work-around.)

Notice something while testing buffer lines, the text is too small >.>

This feature looks like it'll be amazing when it's all done!  Way to go!  @extr0py, are you sure you don't want to hold off on v0.2.8 until this feature is in? :laughing:

@keforbes thanks :)
do we have a show error popup?

This feature looks like it'll be amazing when it's all done! Way to go! @extr0py, are you sure you don't want to hold off on v0.2.8 until this feature is in? 😆

Definitely, it's really cool to see a new 'navigation paradigm'. I like how easy it is to open and put in a split! Nice work @cyansprite 👍
I'm planning on doing the 'final' release for 0.2.8 next weekend - I did the pre-release just so I could start testing the binaries, see if the space was resized, and make sure there isn't any regression in the functionality. So if it's in before then I'll definitely pick it up!

@extr0py do we have a show error popup?

Sort of... I kept starting one, and not needing it,  what I started is in browser\src\UI\components\Message.tsx. I was intended to be an alert message, though.
@FrigoEU also created an error log that looks like this:

Which you can get to via 'Show Logs'.
What's the scenario / case you want to show it?

And I realized I missed this earlier:

@extr0py

What's the scenario / case you want to show it?

I was thinking, when we close a tab if it's modified we don't close it this is because bw is not bw! but that's preferable in some cases because the user might not realize its modified which is hard to do but anyways... When we try to quickopen we do e!/vsp!/sp!, if it's modified and we use e, then that buffers changed will be lost, so I was thinking showing some kind of dialog saying are you sure modified blah blah.

One feature I do want - though - and this is common for pretty much all the new pieces of UI (like file explorer, git integration, find files, errors, etc) - is that I can navigate using the same paradigms and functionality I use in VIM - in other words, I should be able to use h/j/k/l and all the other tools I'm comfortable with. This is a part of the reason I wanted to build a new editor - most editors that expose extensive functionality like that, even if they have some vim bindings, don't have it set up in a holistic way.

HELL yes, reason why I quit vscode, because some places I couldn't JUST use the keyboard and I couldn't use hjkl.

I haven't 100% figured this out yet, so if you have any thoughts, that would be great! I know that I don't like the implementation in VSCode though - because when you get your search results, they are always clipped by the left pane. For my workflows, I'd prefer the flexibility to either have them on the bottom, or on the side. But not sure exactly how it should look like yet - might be worth creating an issue to start thinking about ideas!

I see the issue I will look at it there!
thanks!

Next up is quick open buffers so you can easily cycle through opened buffers with ease :).
If you think if any ideas feel free to let me know :)

Oh. Color schemes would be cool!!

I was thinking, when we close a tab if it's modified we don't close it this is because bw is not bw! but that's preferable in some cases because the user might not realize its modified which is hard to do but anyways... When we try to quickopen we do e!/vsp!/sp!, if it's modified and we use e, then that buffers changed will be lost, so I was thinking showing some kind of dialog saying are you sure modified blah blah.

This would be excellent to have! I think this will be a major pain point for users - being able to warn when we navigate away from an unsaved buffer would be very helpful. In addition, it would be nice to have this check on quitting too - it's too easy to quit Oni when you have unsaved changes. It might be worth tracking this in another issue / PR

Next up is quick open buffers so you can easily cycle through opened buffers with ease :).

Sounds awesome!

If you think if any ideas feel free to let me know :)

One thing I was thinking about, and this is something similiar to VSCode and other editors, is having symbol prefixes mean special things in QuickOpen. For example, if you type the following prefixes:

: - vim command mode for current window
/ - buffer search (integrate with the buffer search you added)
! - oni command mode (same commands shown in Ctrl+Shift+P)
'`' - show available vim marks
& - show available buffers

I think Nuclide also had some cool ideas with their enhanced quick open experience. They basically showed a few tabs with these sorts of pivots, underneath the text - that might be a good way to enhance discoverability and let users know the sort of things they can do with QuickOpen.
Might make sense again to have this a a separate issue / PR - I don't want you to feel like you have to save the world with this PR! Let me know when you're ready to merge it and I'll test it out.

Oh, and regarding colorschemes, a good starting point might be to use state.backgroundColor and state.foregroundColor (and darken the background a bit). I tried it on onedark and vim8solarized_light and it looked pretty good... much improved from what we had before. On top of that, we could have customized colors like oni.colors.menu.foreground/background/accent, or something.

This would be excellent to have! I think this will be a major pain point for users - being able to warn when we navigate away from an unsaved buffer would be very helpful. In addition, it would be nice to have this check on quitting too - it's too easy to quit Oni when you have unsaved changes. It might be worth tracking this in another issue / PR

I agree, and I don't know if it's still an issue but whenever I would switch a buffer it would wipe by undo history. I will check again when I get time.

'`' - show available vim marks

I've never used this are marks useful?

: - vim command mode for current window
/ - buffer search (integrate with the buffer search you added)
! - oni command mode (same commands shown in Ctrl+Shift+P)
& - show available buffers

I haven't looked how are are matching typing yet but I can imagine it shouldn't be too hard.

I think Nuclide also had some cool ideas with their enhanced quick open experience. They basically showed a few tabs with these sorts of pivots, underneath the text - that might be a good way to enhance discoverability and let users know the sort of things they can do with QuickOpen.

You will have to explain a bit I'm slightly confused :P.

Might make sense again to have this a a separate issue / PR - I don't want you to feel like you have to save the world with this PR! Let me know when you're ready to merge it and I'll test it out.

I think it would be beneficial for you and me both to go ahead and merge this for testing and merge conflicts in the future. The only reason I would hold of is for the listing of files NOT in a git repo but...
A PR can fix that later :P.

Oh, and regarding colorschemes, a good starting point might be to use state.backgroundColor and state.foregroundColor (and darken the background a bit). I tried it on onedark and vim8solarized_light and it looked pretty good... much improved from what we had before. On top of that, we could have customized colors like oni.colors.menu.foreground/background/accent, or something.

Going to start with vim colorschemes and buffers, then add in the oni colors, since vim colorschemes will be done just by modifying QuickOpen.

Last gif showing what was accomplished.
You can tell I don't use my mouse much when it comes time to open a folder lol...

@cyansprite - nice! I like the icons you added for the bookmarks & open folder 👍

Lol am I doing too much?

Haha, no way, I just want to make sure we can get pieces of this in the 0.2.8 release (if you want!).

I think it would be beneficial for you and me both to go ahead and merge this for testing and merge conflicts in the future. The only reason I would hold of is for the listing of files NOT in a git repo but...
A PR can fix that later :P.

Cool, I just took a pass over it. The buffer find is really cool!
There are only two issues I see:

The finding for non-git folders seems to have regressed. On master, if I use QuickOpen on a folder that has a bunch of stuff (like 'Documents' or 'Downloads'), I immediately see a loading spinner:

But with these changes, I don't see anything. I don't think we need to implement the full-external-binary solution, but we shouldn't introduce a regression for this experience (in other words, it should at least behave the same as it did before).
Reading the whole set of lines the way we're doing right now is expensive - there's actually already a BufferUpdates object that keeps track of changes, and caches the last set of buffer lines. We should just use that object, instead of querying Neovim for the current buffer. For large files, this will be slow / expensive, especially if we're doing it every time we leave insert mode.

Once those issues are addressed, I'll bring it in!

The finding for non-git folders seems to have regressed. On master, if I use QuickOpen on a folder that has a bunch of stuff (like 'Documents' or 'Downloads'), I immediately see a loading spinner:

Right I will add that back in, we didn't finish on figuring out if we were using ripgrep so I was waiting until then but for now I will go ahead and add it back in.

Reading the whole set of lines the way we're doing right now is expensive - there's actually already a BufferUpdates object that keeps track of changes, and caches the last set of buffer lines. We should just use that object, instead of querying Neovim for the current buffer. For large files, this will be slow / expensive, especially if we're doing it every time we leave insert mode.

will do, I need a better overview of the code -.-, or at least a way to ask, is this implemented yet?

I decided to leave blank lines in buffer search for quickopen, I think it works better because sometimes i think it's odd if some numbers are missing :P.
Anyways, almost done :)

I think the next PR to do with QuickOpen will be colors, buffers, and caching each until an autocmd happens...
So if

dirchanged recache loaded files
Sourced file recache colors
Buffers are monitored already just need a way to pull them into quickinfo, suggestion easiest way to do this? I can figure it out but it you have a suggestion to make my life easier that'd be great so I don't reinvent the wheel like with buffer lines :P.

My concern with loaded files is that what happens if a person makes a new file but doesn't change directories outside of vim?
We could use fs to watch them but that might be computation intensive... I've haven't looked much into it honestly.
And then the next will do with the
One thing I was thinking about, and this is something similiar to VSCode and other editors, is having symbol prefixes mean special things in QuickOpen. For example, if you type the following prefixes:
: - vim command mode for current window
/ - buffer search (integrate with the buffer search you added)
! - oni command mode (same commands shown in Ctrl+Shift+P)
'`' - show available vim marks
& - show available buffers
You mentioned stories in keybindings, do you have a program you use to track it? because this be wonderful to have a layout of tasks, I mean I know what needs to be done... but getting confirmation from you and others would be nice as well as making sure I implement it correctly with functionality already existing.

issue with the bufferupdates, it doesn't load on bufenter, it loads on buffer-update, or am I doing something wrong?
also I noticed
            const lastLine = args.line
            if (this._canSendIncrementalUpdates && lastLine === args.line) {

won't lastLine === args.line always be true?

I think it's only when you are on the same line... sof it the lastline === args.line && buffernum? I'll try it out.

So i think adding checking for buf num as well as line and send the event onbufenter might be an easy fix.

So i think adding checking for buf num as well as line and send the event onbufenter might be an easy fix.
I will test it when I get time.

Thanks for catching that issue with BufEnter. Looks great :) This might explain why, in some cases, the language services wouldn't load until the cursor moved... nice. Sorry I wasn't able to give more help, was stuck at work - but looks like you were able to solve it without me anyway. Seems like you have the whole flow down between Neovim <-> Oni, that's great!

You mentioned stories in keybindings, do you have a program you use to track it? because this be wonderful to have a layout of tasks, I mean I know what needs to be done... but getting confirmation from you and others would be nice as well as making sure I implement it correctly with functionality already existing.

 I've heard good things about 'org-mode' for Emacs, so I'd like to learn more about that, and see if any of the concepts make sense in Oni to bring over. But ya it'd be nice to have something more granular than github issues. I've tried waffle.io for a small project - do you have any suggestions?

I think the next PR to do with QuickOpen will be colors, buffers, and caching each until an autocmd happens...

Excellent, sounds like a lot to look forward to! I like where you're going with colorschemes, and the live preview is a really neat idea.
Just tried out the PR and it's working great. The regression is fixed in non-git directories, and the buffer behavior is working well. I'm ready to bring it in! 👍 👍
I'll plan on merging it tomorrow morning, unless I hear otherwise 😄

:) I try.
No reason from me to hold off. Fire at wil:).
Will try to get some more enhancements done today working on a yankring plugin right now as well because I think vim needs a better tracking system clipboard history and I don't like other plugins

Excellent! I just merged it in. Congrats @cyansprite on getting your first PR in - great work and thank you for the contribution!

Will try to get some more enhancements done today working on a yankring plugin right now as well because I think vim needs a better tracking system clipboard history and I don't like other plugins

Sounds cool, look forward to it. I was experimenting with some clipboard integration work (because #434 is the main reason I switch out of Oni to other editors, I realized...) - that's in #620 . Might give you some ideas into how we could build a better system on top of the clipboard primitives electron provides.

Excellent! I just merged it in. Congrats @cyansprite on getting your first PR in - great work and thank you for the contribution!

Thanks.


PhpFileProvider isn't loading files

Code:
use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\PhpFileProvider;

$aggregator = new ConfigAggregator([
    new PhpFileProvider('{,*.}.global.php'),
]);

var_dump($aggregator->getMergedConfig());

I have a file in the same folder:
test.global.php
return [
    'wtf' =>'boy'
];

Output:

/var/www/app.dev/tmi/config/config.php:11:
array (size=0)
empty

What exactly am I doing wrong here?
I'm running a vagrant box with ubuntu (trusty64), php 7.1 (recent version).

Do you have development mode disabled by any chance?
On May 23, 2017 5:53 PM, "Lamonte"<EMAIL_ADDRESS>wrote:

Code:
use Zend\ConfigAggregator\ConfigAggregator;use Zend\ConfigAggregator\PhpFileProvider;$aggregator = new ConfigAggregator([    new PhpFileProvider('{,*.}.global.php'),]);var_dump($aggregator->getMergedConfig());
I have a file in the same folder:
test.global.php
return [    'wtf' =>'boy'];
Output:
/var/www/app.dev/tmi/config/config.php:11:
array (size=0)
empty
What exactly am I doing wrong here?
I'm running a vagrant box with ubuntu (trusty64), php 7.1 (recent version).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/zendframework/zend-config-aggregator/issues/8, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AABlV31tyAvKVEiShMKytWilTr4Gg1mRks5r82NlgaJpZM4NkZFQ
.

@weierophinney development mode? I'm using ZCA standalone, unless there's some configuration I'm missing?

Ah weird, glob() works based on the file you're loading it from apparently? So for instance:

/bootstrap.php <- includes config file which loads the aggregator class
/config/config.php <- where code is stored
/public/index.php <- includes bootstrap.php

I had to wrap the config code into a function eg.:
/config/config.php
use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\PhpFileProvider;

return (function() {
    chdir(root('config'));

    $aggregator = new ConfigAggregator([
        new PhpFileProvider('autoload/{,*.}global.php'),
    ]);

//    var_dump($aggregator->getMergedConfig());

    return $aggregator->getMergedConfig();
})();

Which changes the path from the public folder back to the /config folder. Interesting.


fuzz: do not use default features when building the SVSM

Do not use the default features when building the SVSM for fuzzing, as linking libmstpm breaks the fuzzers.

Without this PR fuzzing harnesses do not work, as they either hang or crash when starting up.


add functionality for adding lower admin boundary data to clusters

Not sure what this is anymore, but we didn't end up needing this. If ever, we already have a card to track possible GeoWrangler Integration for admin boundaries #88


if inside case

What the rule should do:
Infer the value from a simple case statement to use it to simplify if expressions
What problems does it solve:
It helps during refactorings, especially when switching from if to case, and copying the old content inside branches
Example of things the rule would report:
case category of
    "Rock" ->
        if category == "Rock" then a else b
-->
case category of
    "Rock" ->
        a

Should this be part of the Simplify rule or should it be a new rule?
Part of simplify. It ties into the inference code.
I am looking for:

Feedback
Someone to implement it with/for me

We should also handle the opposite, when the case expression is inside the if:
if category == "Rock" then
  case category of
    "Rock" ->
		1
    _ ->
        2
else
   3
-->
if category == "Rock" then
  1
else
  3


Add generate client command

Feature Request
It would be convenient to provide a generate client/clientset command to generate a versioned clientset.

@robinbraemer Thanks for opening the issue. Although this is probably a duplicate of #1646 so I'm going to close this and we can follow up over there.
In particular though I'd like to know the use case for using a generated clientset as opposed to the existing dynamic client.


Download links for other book formats

Thanks for all the work you have put into this!  It looks great!
Is offering download links to other book formats within the scope of this project?  It wouldn't need to support reading them in the web browser, but it would be nice if it offered them as a download.  IE: mobi or pdf formats.

Thanks! Adding additional formats is within the scope of the project. The main issue is that I need to write a custom reader for each format, as you can see in the formats folder of the code. I am actually planning on mobi support next.


Browserify upgrade so that this package works on node v0.12+

Sweet!
Let us know when NPM is updated.

Should be updated
On April 21, 2015 7:48:07 AM EDT, Evan Tahler<EMAIL_ADDRESS>wrote:

Sweet!
Let us know when NPM is updated.

Reply to this email directly or view it on GitHub:
https://github.com/joeferner/redis-commander/pull/151#issuecomment-94758649

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.


Update README with info about client configuration.

Now README file contains only the info about server configuration process and doesn't describe what how responsibilities divided between client and server.

added a section named: "Automerver client / server notations explained." if any more info is required i'll be happy to elaborate more.

@palyuga  is it working out for you?

@tomer-ben-david yeah, sounds pretty informative. will try on Monday and let you know!

closed due to no interaction lately.