text:
WebSocket disconnect from Slack after ~1m

I am trying to interface with slack using Vibe.d.
I am successfully connecting, sending messages and receiving them.
However after less than a minute (Usually from 26 to 50s), I get disconnected.
[...] Connection accepted
[...] Nothing happen (or something happen, doesn't matter).

[8B4F3F15:00000000 trc] socket 9 read event!
[8B4F3F15:8B545D15 dbg] Read frame: ping true
[8B4F3F15:8B545D15 trc] evbuffer_add (fd 9): 85 B
[8B4F3F15:8B545D15 trc] bufferevent_flush
[8B4F3F15:00000000 trc] socket 9 write event (false)!
[8B4F3F15:00000000 trc] socket 9 read event!
[8B4F3F15:8B545D15 dbg] Read frame: text true
Received: {"type":"reconnect_url","url":"wss://mpmulti-a1ni.slack-msgs.com/websocket/XXXXX"}
[8B4F3F15:00000000 trc] socket 9 read event!
[8B4F3F15:8B545D15 dia] Error while reading websocket message: Reading from TLS stream was unsuccessful with ret 0
[8B4F3F15:8B545D15 dia] Closing connection.
[8B4F3F15:8B545D15 trc] OpenSSLStream finalize
[8B4F3F15:8B545D15 trc] evbuffer_add (fd 9): 85 B
[8B4F3F15:8B545D15 dbg] TCP close request true open
[8B4F3F15:8B545D15 dia] Actively closing TCP connection
[8B4F3F15:8B545D15 trc] Closing socket 9...
[8B4F3F15:00000000 dbg] Socket event on fd 9: 17 (1E78298 vs 1E78298)
[8B4F3F15:00000000 dbg] Connection was closed by remote peer (fd 9).
[8B4F3F15:00000000 trc] resuming corresponding task...
[8B4F3F15:8B545D15 trc] ...socket 9 closed.
[8B4F3F15:8B4FE715 CRITICAL] Task terminated with uncaught exception: Connection closed while reading message.
[8B4F3F15:8B4FE715 dbg] Full error: vibe.http.websockets.WebSocketException@../../.dub/packages/vibe-d-0.7.28/source/vibe/http/websockets.d(462): Connection closed while reading message.
[8B4F3F15:8B4FE715 dbg] ----------------
/usr/include/dmd/phobos/std/exception.d:617 bool std.exception.enforceEx!(vibe.http.websockets.WebSocketException).enforceEx!(bool).enforceEx(bool, lazy immutable(char)[], immutable(char)[], ulong) [0x80080e]
../../.dub/packages/vibe-d-0.7.28/source/vibe/http/websockets.d:462 _D4vibe4http10websockets9WebSocket7receiveMFMDFMC4vibe4http10websockets24IncomingWebSocketMessageZvZ9__lambda2MFZv [0x7ea567]
../../.dub/packages/vibe-d-0.7.28/source/vibe/core/sync.d:101 void vibe.core.sync.performLocked!(_D4vibe4http10websockets9WebSocket7receiveMFMDFMC4vibe4http10websockets24IncomingWebSocketMessageZvZ9__lambda2MFZv, vibe.core.sync.InterruptibleTaskMutex).performLocked(vibe.core.sync.InterruptibleTaskMutex) [0x7ea4dd]
../../.dub/packages/vibe-d-0.7.28/source/vibe/http/websockets.d:460 void vibe.http.websockets.WebSocket.receive(scope void delegate(scope vibe.http.websockets.IncomingWebSocketMessage)) [0x7e892e]
../../.dub/packages/vibe-d-0.7.28/source/vibe/http/websockets.d:446 immutable(char)[] vibe.http.websockets.WebSocket.receiveText(bool) [0x7e87f2]
source/slackdot/app.d:57 void app.connectToSlack() [0x72d486]
source/slackdot/app.d:25 void app._sharedStaticCtor2().__lambda1() [0x72d2b8]
../../.dub/packages/vibe-d-0.7.28/source/vibe/core/core.d:486 void vibe.core.core.makeTaskFuncInfo!(void delegate()).makeTaskFuncInfo(ref void delegate()).callDelegate(vibe.core.core.TaskFuncInfo*) [0x72b679]
../../.dub/packages/vibe-d-0.7.28/source/vibe/core/core.d:1084 void vibe.core.core.CoreTask.run() [0x8122a9]
??:? void core.thread.Fiber.run() [0x90b8c9]
??:? fiber_entryPoint [0x90b64b]
??:? [0xffffffff]

Slack very rarely closes WebSocket connection so I am assuming it is something on Vibe.d side.
The code is however very simple ATM:
shared static this ()
{
    runTask(() => connectToSlack());
}

void connectToSlack ()
{
    Json infos;
    requestHTTP("https://slack.com/api/rtm.start?token=" ~ auth_token,
                (scope HTTPClientRequest req) {},
                (scope HTTPClientResponse res)
                {
                    infos = res.readJson;
                });
    if (!infos["ok"].get!bool)
    {
        logInfo("Error while connecting to Slack!");
        assert(0);
    }
    auto url = infos["url"].get!istring;
    logInfo("Successfully connected to slack, provided URL: %s", url);
    auto ws_url = URL(url);
    auto ws = connectWebSocket(ws_url);
    assert(ws.receiveText() == `{"type":"hello"}`);
    logInfo("WebSocket connected");

    while (ws.connected())
    {
        auto txt = ws.receiveText;
        logInfo("Received: %s", txt);
    }
    logFatal("Connection to Slack lost!");
}

Any suggestion on how to debug this ?

Could it be that it expects keep-alive messages? Since nothing is sent, I don't know either how to debug this apart from trying to send something. But you should use waitForData() instead of connected to check for read-readyness, otherwise it will be most likely be stuck in receiveText when the connection is closed rather than gracefully leaving the loop.

The log I posted doesn't include message to make it more readable.
However, I tried to make slack send data way more often (every 3 to 5 seconds), and it didn't have any visible effect, that is I got disconnected in less than a minute.
It could somehow be related to the ping functionality, as most of the time the close happen in the vicinity of this even, though not all the time.

But you should use waitForData() instead of connected to check for read-readyness, otherwise it will be most likely be stuck in receiveText when the connection is closed rather than gracefully leaving the loop.

That was my initial though, however its not what the example shows.

After one of my colleague rolled out his own slack bot, it comes down to the fact that Slack believe the client hung up and closes the connection.
Slack support WebSocket ping, but know that some browser might not, so they have a fallback "ping" packet, which I sent every 5 seconds in order to keep the connection kickin'.
However, the Slack documentation doesn't mention ping as a requirement, but as a recommendation (for UX).
Trying to leave a bot open did however uncover another issue. I came back to my bot after a couple of hour, and had the following output:
Received: {"type":"pong","reply_to":1012}
Received: {"type":"pong","reply_to":1013}
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Task terminated with uncaught exception: Cannot init SystemRNG: Error id is 24, Error message is: "Cannot open file `/dev/urandom' in mode `rb' (Too many open files)"
Connection to Slack lost!
Program exited with code -11
dub --compiler=gdc  12,38s user 0,87s system 0% cpu 1:26:04,40 total

Looking at the WebSocket code quickly, the only place SystemRNG is instantiated from is here. This is only called from (writeFrame)[https://github.com/rejectedsoftware/vibe.d/blob/85178cfd3f1d8299c6e73956ef9eb4a31225b488/source/vibe/http/websockets.d#L716], which in turn is called from close, and... sendPing.
So currently the WebSocket implementation open a new FD every [ping interval].

With the SystemRNG allocation issue being fixed and the pings in place, did the original issue still occur?

Last time I tried, it still did, but I didn't spend time investigating. I'll try to run the test code again soon :tm:

Looks like everything is working correctly, thanks again !

authors: mathias-lang-sociomantic s-ludwig

license: mit


text:
fix error background_locator:compileDebugKotlin

i has having problems with this error, the changes that i did helped me. If it work on other projects i will be happy to help

@caiobraga @abedputra when are you going to merge this?

It come to my atention that there is an error in my code, aparently it does not work in production

F

source: gharchive/pull-request

authors: NazarenoCavazzon caiobraga

license: MIT

license_type: permissive

license_source: github-api


text:
Not formatting HTML files

prettier-now suddenly stop formatting HTML files and also formatOnSave is not working too.

@kohli6010 try to enable formatOnSave in your IDE's settings - that fixed it for me on VS Code. HTML isn't formatted anymore though. It'd be great to get this feature back.

Thanks for that
On Thu 21 Nov, 2019, 5:53 PM Joel BEAUDON, notifications@github.com wrote:

@kohli6010 https://github.com/kohli6010 try to enable formatOnSave in
your IDE's settings - that fixed it for me on VS Code. HTML isn't formatted
anymore though. It'd be great to get this feature back.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/remimarsal/prettier-now-vscode/issues/44?email_source=notifications&email_token=AKHZTT6S3O2O25WR2SGF7BDQUZ4THA5CNFSM4IWY2LQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE2BK5I#issuecomment-557061493,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKHZTT5Y3WVRS77PXTYCYZLQUZ4THANCNFSM4IWY2LQA
.

source: gharchive/issue

repo: remimarsal/prettier-now-vscode

license_source: bigquery


text:
No way to handle 404s?

Is there a way to handle 404 status codes when an object was not found on the other side?
Say that we have a model Post and we have set things up so that we can call Post.find(1) and there is not Post object with id=1 on the other side. Let's say the other API returns nil and status code 404. Her doesn't seem to consider the status code and rather complains with an error about the nil. What is the right way to handle such situations?

Never mind, figured this one out.

Reopening this as custom paths don't seem to handle 404s well after all. Even when 404 is returned Her prepares a model object but it has not attributes. I would expect it to return nil.

I notice the same thing, I would expect that Her returns nil in case of 40X HTTP codes returns.

i agree that returning nil makes more sense than an object with no attributes.
the place this would be handled is in the Her::Middleware layer. when parsing the object, it's not accounting for 4xx codes as you noticed, and should.
i'm doing some work at this level right now to handle json api compliant apis, so can take a look at this as well, or if you want to take a crack at PRing this yourself, that would be much appreciated.
thanks for the report.

the problem with returning nil is you have nothing to work with in the event of an error -
if this is limited to 404's return nil, that might work
but sometimes it's useful to see what was returned, the http status code
ideally, all Her objects would have some simple way to see the http details
like maybe a #_status that gives the code for the call, or maybe even a hash of relevant details
{http_status_code: '404', http_method: 'GET'}
one of the biggest knocks I hear against Her is the lack of transparency when something goes wrong

I agree with ak47, sometimes you want to make decisions based on the status code. Like a 401 vs 422 vs 204.
I am working on something right now where on a DELETE of a resource I get a 204 for a successful delete and a 422 for a unsuccessful delete. Now, I have no way of knowing whether or not the call was successful or not on the client side.
Like ak47 said just having a hash of the details would relieve a lot of troubles I have with her.

i agree there needs to be a way to distinguish between things working or not. however, i don't agree that http status codes are the way to do that.
the her middleware layer is there to provide the adapter layer between the http details on the active model object that is returned.
for a 404 specifically, nil is the most obvious, but the tradeoff would be that we wouldn't be able to include any additional info the server provides. the other possibilities would be a "NullModel" of some sort or making find raise an exception akin to how ActiveRecord does it.
for a 422 or other 4xx responses, the way to determine whether or not the delete was success would be to query the errors object attached to the model. Her should probably add a generic error for 4xx cases and then add errors included by the server.

ppra.response_errors => [{:id=>"bb78d697-7b3b-4780-8b45-3c0eadaabf95",
:status=>404,
:title=>"Not found",
:detail=>
"thing not found by key=10a228f9-4dff-4f7d-8aba-1c88fd9a29d8",
:at=>"2015-06-09T22:54:25.943Z"}]

I think @hubert is right here. System failure (including 401, 403, 404 and 5xx) should raise an exception. In those cases we can't rely on the API response to be sane. Content failure (e.g. 422 because invalid) should change model properties by passing through API responses.
I would suggest a small family of exceptions that follow the usual status code names (Her::NotFound, Her::Unauthorized, Her::ServerError) and all inherit from Her::Error.
Associates would sometimes need rescuing from fetch errors. Perhaps that should be configurable:
      belongs_to :country, foreign_key: :country_code, on_error: :raise

For the model errors could I also suggest that we adopt ActiveModel::Errors to try and marshal the received errors hash or array into a standard format? As usual people would need a custom parser if their error format is weird, but the error-processing could be exposed as a separate method.

Custom exceptions are good but theye're not for everyone.
Maybe store object.response_status at least?

@marshall-lee that would make sense for a processing error. The exceptions are meant for complete failures where we may not even have an object to store errors in. As @antonrd originally pointed out, creating a model object because there is no model object is too confusing.

I think the value of a missing object should be nil

You mean missing association objects? If yes I think the same.

and the action of fetching a missing object should raise an exception

As ActiveRecord throws ActiveRecord::RecordNotFound one would assume a similar behavior for Her. I definitely want this feature but I want it as optional for now. It shouldn't break existing code. For example in our project we handle errors (and not found errors too) by looking into response_errors. We don't like it but it's already implemented and it works, and we don't want our code be broken after upgrading to new version of Her. There should be a graceful upgrade path for existing users.

Agreed that behaving like ActiveRecord is always going to be comforting. In Her it's easy to configure response error behaviour while setting up an api because in the end all requests are made by Her::API#request. Nice work by Rémi there.
The maintainer would have to decide about default behaviour after an upgrade but rails gives us a good example: warn and deprecate one version ahead, then change the default behaviour in a way that is easy to undo.

The maintainer would have to decide about default behaviour after an upgrade but rails gives us a good example: warn and deprecate one version ahead, then change the default behaviour in a way that is easy to undo.

Yeah, I agree.

@wil-r, @hubert I am interested in Her raising an error for unauthorized errors.  Or somehow make that case visible.
Is anyone working on related behaviour?
If not I could help out with some guidance.

@alvinschur Here's my solution.
1 Create faraday middleware to parse JSON data
module ApiResponseHandler
  class UnauthorizedError < StandardError; end

  class CustomerParser < ::Faraday::Response::Middleware
    def call(request_env)
      @app.call(request_env).on_complete do |response_env|
        json = MultiJson.load(response_env[:body], symbolize_keys: true)

        case response_env[:status]
        when 200
          response_env[:body] = {
            data: json,
            errors: [],
            metadata: {}
          }
        when 401
          raise ApiResponseHandler::UnauthorizedError
        end
      end
    end
  end
end

2 Load custom parser instead of default one
# config/initializers/her.rb
Her::API.setup url: "https://api.example.com" do |c|
  c.use ApiResponseHandler::CustomParser
end

3 When REST api returns 401 as http status, it raises ApiResponseHandler::UnauthorizedError
[1] pry(main)> User.find(1)
# raise FaradayApiResponseParser::UnauthorizedError

I hope this helps you.

Thank you for the detailed answer and example.
I am writing several libraries to access internal microservices.
I see a few options for including the error handling code

duplicate the error handling code in each library created to access a microservice
fork her and write the error handling code once
contribute to her so others can benefit from the error handling code

Is it ok to include a middleware as described to handle the unauthorized error in her?
This error handling sounds quite similar to handling 404 and other errors.
Is it feasible to have one middleware handle a list of errors?
Or do people prefer separate middleware, one per error: unauthorized, not found, server error, etc?

a separate project similar to Faraday middleware for the extra middlewares we use

I don't know best practice how about her's error handling but I'm handling 40x and 50x errors in one middleware(extract gem) like above example code.
If you have serval client application to use same REST API, I think your 4) solution is better.

Did this conversation go any further? Found myself bumping up against it today, expecting find(unknown id) to Raise an exception but it swallows it.

I am adding my solution here.
Our models do not include Her::Model directly but they all inherit from an ApplicationModel that includes Her::Model.
This gives us the possibility to override methods for all our models.
We did it for different things and one of these was to handle 404.
What we did is as simple as:
class ApplicationModel
  include Her::Model

  def self.find(params)
    result = super
    raise ActiveRecord::RecordNotFound unless result
    result
  end

  # other stuff overrridden
end

I hope this helps somebody else

authors: SirRawlins ak47 alvinschur antonrd coorasse dasmoose hmatsuda hubert jonathanpa marshall-lee will-r

repo: remiprev/her


text:
Add setup.py

The setup.py is useful to integrate the repository as sub module or dependency in other repository. As I wanted to use the project I created a setup.py and hope you are interested in it.
I open to discuss the matter or make changes if necessary.

Isn't Python Poetry the more modern way to go?

authors: Segelzwerg martin-ueding

repo: remisalmon/Strava-local-heatmap


text:
remix-pwa build process not exiting

I just noticed remix-pwa build no longer exits after completing the build. Tested on both macOS and Windows. @remix-pwa/dev@2.0.28 works as expected, so seems to be something in @remix-pwa/dev@2.0.29. Let me know if there's any other relevant information I can provide.
@remix-pwa/cache@2.0.11
@remix-pwa/strategy@2.1.8
@remix-pwa/sw@2.1.10
@remix-pwa/dev@2.0.29
@remix-pwa/worker-runtime@2.0.6
remix-pwa@3.0.17

Thanks.
P.S. Do you prefer issues logged here or on the monorepo?

P.S. Do you prefer issues logged here or on the monorepo?

Any.

I just noticed remix-pwa build no longer exits after completing the build. Tested on both macOS and Windows. @remix-pwa/dev@2.0.28 works as expected, so seems to be something in @remix-pwa/dev@2.0.29. Let me know if there's any other relevant information I can provide.

Interesting. Currently ill rn so can't debug before next week. But would look at it ASAP.

Interesting. Currently ill rn so can't debug before next week. But would look at it ASAP.

No worries. Feel better soon!

Thanks. Was able to look at it and as I guessed, wasn't a huge issue. I forgot to dispose the context after building (somehow, the tests passed that). Would be out soon enough

Is it fixed now?

Is it fixed now?

Doesn't seem to be, at least on Windows with @remix-pwa/dev@2.0.29-dev.2 and @remix-pwa/worker-runtime@2.0.7-dev.1. Tried to update the other packages too, but it looks like @remix-pwa/sw@2.1.10-dev.2 has a peer dependency of @remix-pwa/cache@^2.0.11-dev.3 which isn't published, so I couldn't try that combination.

Is it fixed now?

Doesn't seem to be, at least on Windows with @remix-pwa/dev@2.0.29-dev.2 and @remix-pwa/worker-runtime@2.0.7-dev.1. Tried to update the other packages too, but it looks like @remix-pwa/sw@2.1.10-dev.2 has a peer dependency of @remix-pwa/cache@^2.0.11-dev.3 which isn't published, so I couldn't try that combination.

remix-pwa@3.0.18 fixes this issue. Sorry for the inconvenience

remix-pwa@3.0.18 fixes this issue. Sorry for the inconvenience

Confirmed. Thanks!

repo: remix-pwa/remix-pwa


text:
cannot use new Response() on client

Reproduction
using latest remix + vite 5.2 using new Response() causes
x Build failed in 1.78s
[commonjs--resolver] Server-only module referenced by client

    './entry.server.js' imported by 'node_modules/.pnpm/@vercel+remix@2.15.0_@remix-run+dev@2.15.0_@remix-run+react@2.15.0_react-dom@18.3.1_react@18._qsr4k2ekl5hqgeex62a7kcs2b4/node_modules/@vercel/remix/dist/edge/index.js'

  See https://remix.run/docs/en/main/guides/vite#splitting-up-client-and-server-code

during build, this might be specific to @vercel/remix though
System Info
System:
    OS: macOS 15.1.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 10.06 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.17.0 - /opt/homebrew/opt/node@20/bin/node
    npm: 10.8.2 - /opt/homebrew/opt/node@20/bin/npm
    pnpm: 9.11.0 - /opt/homebrew/opt/node@20/bin/pnpm
  Browsers:
    Chrome: 131.0.6778.86
    Safari: 18.1.1
  npmPackages:
    @remix-run/dev: 2.15.0 => 2.15.0
    @remix-run/node: 2.15.0 => 2.15.0
    @remix-run/react: 2.15.0 => 2.15.0
    @remix-run/serve: 2.15.0 => 2.15.0
    @remix-run/testing: 2.15.0 => 2.15.0
    vite: 5.4.11 => 5.4.11

Used Package Manager
pnpm
Expected Behavior
I'd expect to be able to use new Response() anywhere
Actual Behavior
can only use new Response() on the server.

Seeems related to @vercel/remix only

Are you using Response globally? Or importing it?

authors: lifeiscontent remorses sergiodxa

repo: remix-run/remix


text:
docs: import from @remix-run/node instead of remix

Got a createCookie() is not a function today after upgrading my app to 1.3.3
According to https://github.com/remix-run/remix/issues/2503#issuecomment-1079963155, we should not import from remix or @remix-run/server-runtime anymore.

This should still be possible if you're not using PNPM/Yarn P'n'P, since the only recommended import has always been from the remix package with the magicExports.
For people using PNPM/Yarn P'n'P, it was indeed said to use @remix-run/server-runtime as an escape hatch.
However, that package (along with all other packages) was never meant to be a public (non-breaking) API.
This has changed since #2359 was released, but  the remix package is still backwards compatible.
Once @pcattori & I are finished with #2430, we'll also run the codemod on our examples & have a script ready to run the codemod on our docs too.
I think it's best to back off this PR for now, so we keep our docs consistent.

Ok.....

authors: MichaelDeBoey machour


text:
fix(dev): fix MDX types when using pnpm

Fixes #7448
This issue doesn't surface when @types/mdx is hoisted to the top-level in node_modules, which is the behaviour of the official npm client, but pnpm is stricter about transitive dependencies and ensures that packages aren't hoisted to the top-level by default. This means that Remix consumers don't automatically get the global *.md/*.mdx types from @types/mdx in their app code and only see our augmented attributes and filename exports. To fix this, we now explicitly import the global types as part of the augmentation.
I've tested this change against a real app running both npm and pnpm to ensure this works across both, and I've confirmed that this change fixed the repro shared in the linked issue.

I'm seeing the same issue with RemixBrowser and Outlet and probably others. Tried to switch from installing node_modules with pnpm to installing them with bun and out of a sudden, the issue is gone. Would be great if it could be package manager agnostic.

authors: bastiankistner markdalgleish


text:
Cannot "type" symbols from Palm Pre SYM menu

The only way to use {} is from the SYM menu. Selecting any symbols from the menu does nothing.

Sorry Rick, I'm going to close this. I realise you've been waiting for my response over the last seven years, and in fact whole human beings have been born across the globe since this rather unimpressive responsive. Even Palm Pre don't exist…went the way of the dinos…maybe. Anyway, love to you and your family ❤

authors: remy rwaldron

repo: remy/jsconsole


text:
pywinusb vs pyusb

I'm curious what are the differences between them? Thanks.

pywinusb: Windows only, with Windows HID backend
pyusb: cross platform, on top of libusb, not suitable for HID device.
cython-hidapi: cross platform python wrapper for HID device.

@mcuee Thanks!

authors: jxltom mcuee

repo: rene-aguirre/pywinusb


text:
New API for Livebox Pro 4?

Looks like the new LB Pro has a new API.
Login is done with:
HTML Form URL Encoded: application/x-www-form-urlencoded
Form item: "req" = "{"request":{"id":1,"session-id":23,"priority":false,"actions":[{"id":0,"method":"getValue","xpath":"Device/UserAccounts/ManagedUsers/ManagedUser[Login='admin']/SecretQuery"}],"cnonce":1606464506,"auth-key":"540b758bed93
I can attach full capture if needed.

Hello fozog,
This script is not intended for the Livebox Pro, neither the new nor the old ones. I would be surprised if they use the same kind of management API.
You are welcome if you want to write something around the LB Pro ;-)

I have the same issue with a livebox pro 4.
a solution to have ADSL stats with a script ?
thanks.

sysbus.py est incompatible avec les Livebox Pro.
A ma connaissance, leur logiciel n'utilise pas ce système.

authors: cyayon fozog rene-d

repo: rene-d/sysbus


text:
🛑 Renegis is down

In 8a2b849, Renegis (https://www.renegis.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Renegis is back up in 44c2955.

repo: renegis/upptime


text:
关于 暂停的问题

当前采用的是 ZFAVPlayerManager
在我  调用self.player.assetURL = URL, 准备开始播放后, 直播流 m3u8 正在缓冲中. 网络不是很稳定.缓冲时间稍长.
在这个过程中, 我调用了  [self.player.currentPlayerManager pause] .
此时,当直播流 缓冲结束或者说是加载完毕后, 会正常播放..
为什么会出现这种情况? 如何处理比较合适

还有一个额外的问题:

当 设置了 shouldAutoPlay = NO && assetURL = URL 的时候,不自动播放的情况下. 会开始缓冲 视频内容吗 ?

解决了吗

解决了吗

也不能说是解决了吧.. 只是换了种实现,算是跳过了这个问题

也不能说是解决了吧.. 只是换了种实现,算是跳过了这个问题

authors: damu-mu shabake

repo: renzifeng/ZFPlayer


text:
Challenge Four, asking for wrong coordinate

The challenge source code is checking for coordinate: 45.xxx,-93.xxx,
but the coordinate in the description ask for: 44.xxx,-93.xxx
Source file to fix: ChallengeFourFragment.java line 79
or: res/values/string.xml line 10

No problem bro :)
I only regret there weren't more challenge :)
They were great!
Thanks to you!
Le 18/01/2018 02:15, Lucas a écrit :

Thanks, and good notice.
--
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub [1], or mute the
thread [2].

Links:
[1]
https://github.com/reoky/android-crackme-challenge/issues/8#issuecomment-358504961
[2]
https://github.com/notifications/unsubscribe-auth/AHC7sXbif05_8lCKHvV-WqJe77esZcXvks5tLptNgaJpZM4RhovL

Please update the download links as well or at least temporarily remove the link. I searched way too long, since it's now corrected in code... ;)

repo: reoky/android-crackme-challenge


text:
IMagicService is already registered

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Type IMagicService is already registered inside GetIt.
E/flutter ( 5090): #0      throwIfNot (package:get_it/get_it_impl.dart:14:19)
E/flutter ( 5090): #1      _GetItImplementation._register (package:get_it/get_it_impl.dart:1571:11)
E/flutter ( 5090): #2      _GetItImplementation.registerSingleton (package:get_it/get_it_impl.dart:930:5)
E/flutter ( 5090): #3      new ReownAppKitModal (package:reown_appkit/modal/appkit_modal_impl.dart:197:13)
E/flutter ( 5090): #4      _MyHomePageState._initializeAppKitModal (package:trybe/home/homepage.dart:30:20)
E/flutter ( 5090): #5      _MyHomePageState.build. (package:trybe/home/homepage.dart:96:25)
E/flutter ( 5090): #6      _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1183:21)
E/flutter ( 5090): #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:315:24)
E/flutte\

Can you share your new code?

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:reown_appkit/reown_appkit.dart';
import 'package:trybe/album/albumpage.dart';
import 'package:trybe/models/imagemodel.dart';
import 'package:trybe/showImage/view.dart';
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key,});
@override
State createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
late ReownAppKitModal _appKitModal;
bool _isAppKitModalInitialized = false;
@override
void initState() {
super.initState();
_initializeAppKitModal();

}
Future _initializeAppKitModal() async {
_appKitModal = ReownAppKitModal(
context: context,
projectId: '632b21c33e29272fac6f8b94eca76878',
metadata: const PairingMetadata(
name: 'Example App',
description: 'Example app description',
url: 'https://reown.com/',
icons: ['https://reown.com/logo.png'],
redirect: Redirect(
native: 'com.example.trybe',
universal: 'https://reown.com/exampleapp',
),
),
);
// Initialize the modal and set state when done
await _appKitModal.init();
setState(() {
  _isAppKitModalInitialized = true;
});

}
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Scaffold(
backgroundColor:  Colors.white,
appBar: PreferredSize(
preferredSize: const Size.fromHeight(50),
child: AppBar(
surfaceTintColor: Colors.white,
      leading: Padding(
        padding: const EdgeInsets.only(left: 10),
        child: Image.asset('assets/png/pfp.png'),
      ),
      actions: [
        GestureDetector(
          onTap: (){

          },
          child: Padding(
            padding: const EdgeInsets.only(right:kIsWeb ? 30 : 20),
            child: GestureDetector(
              onTap:()async{
           await _appKitModal.init();
              },
              child: Container(
                height: size.height/18,
                width: kIsWeb ? size.width/8 : size.width/3.5,
                decoration: const BoxDecoration(
                  color: kIsWeb ? Colors.green : Colors.transparent,
                borderRadius: BorderRadius.all(Radius.circular(8))
                ),
                child:  Row(
                  // mainAxisAlignment: MainAxisAlignment.center,
                  children: [

     AppKitModalConnectButton(
      appKit:_appKitModal,
     custom: InkWell(
             onTap: ()async{
            if (_appKitModal.status.isInitialized & _isAppKitModalInitialized) {
              debugPrint('connected');
         _appKitModal.openModalView();
            } else {
              await _initializeAppKitModal(); // Fallback: initialize if not done yet
            }

},
child: const Text(
'Connect Wallet',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.black,
fontSize: 15,
fontWeight: FontWeight.w700,
),
),
),
      ),

        Visibility(
          visible: _appKitModal.isConnected,
          child: AppKitModalAccountButton(
            appKit: _appKitModal,
            context: context,
          ),
        ),
                  ],
                ),
              ),
            ),
          ),
        )
      ],
      flexibleSpace: const  Row(
        children: [
          Padding(
            padding: EdgeInsets.only(left: 50,right: 8,top: kIsWeb ? 8 : 64,bottom:8),
            child: Text(
              kIsWeb ?'Trybe': '',
              textAlign: TextAlign.start,
              style: TextStyle(
                color: Colors.black,
                fontWeight: FontWeight.w600,
                fontSize: 26,
              ),
            ),
          ),
        ],
      ),

      foregroundColor: const Color.fromARGB(255, 255, 251, 251),
      backgroundColor: const Color.fromARGB(255, 255, 255, 251),
      shadowColor: const Color.fromARGB(255, 255, 255, 255),
    ),
  ),
  body: Column(
    children: [

      // _buildAlbumDescription(context),
      Expanded(
        child: MasonryGridView.builder(
          itemCount: images.length,
          padding: const EdgeInsets.only(top: 20),
           gridDelegate: const  SliverSimpleGridDelegateWithFixedCrossAxisCount(
            crossAxisCount:kIsWeb ? 4 : 1),
          itemBuilder: (context, index){
           return Padding(
              padding: const EdgeInsets.all(8.0),
              child: GestureDetector(
                onTap: (){
                  Get.dialog(
                    ShowImage(index)
                  );

                },
                child: Padding(
                  padding: const EdgeInsets.only(bottom: 20,left: 15,right: 15),
                  child: Container(
                    decoration: const  BoxDecoration(
                      borderRadius: BorderRadius.all(Radius.circular(8)),
                      boxShadow: [
                        BoxShadow(color: Color.fromRGBO(0, 0, 0, 0.08),
                        blurRadius: 15.5,
                        spreadRadius: 4
                        )
                      ]
                    ),
                    child: Column(
                      children: [
                      Container(
                        height: 50,
                        decoration: const BoxDecoration(
                          color: Color.fromRGBO(243, 242, 242, 1),
                          borderRadius: BorderRadius.only(topLeft: Radius.circular(20),topRight: Radius.circular(20))
                        ),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            SizedBox(
                              child: Padding(
                                padding: const EdgeInsets.only(left: 24),
                                child: Row(
                                                 children: [
                                   const CircleAvatar(),
                                   const SizedBox(width: 10,),
                                          Text(
                                          'Oxsangz.eth',
                                        style: GoogleFonts.montserratAlternates(
                                        textStyle:const TextStyle(
                                fontSize: 15,
                                fontWeight: FontWeight.w500,
                                color: Color.fromRGBO(0, 0, 0, 1)
                                                              )
                                                            ),
                                                            )
                                                               ],
                                ),
                              ),
                            ),
                            Padding(
                              padding: const EdgeInsets.only(right: 24),
                              child: SizedBox(
                                child: SvgPicture.asset('assets/svg/globeicon.svg'),
                              ),
                            )

                        ],),
                      ),
                         Image.asset(images[index].image,fit: BoxFit.cover,),
                         Container(
                          height: 230,
                          decoration: const  BoxDecoration(
                            color: Color.fromRGBO(255, 255, 255, 1),
                            borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20),bottomRight: Radius.circular(20))
                          ),
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.spaceAround,
                            children: [
                              SvgPicture.asset('assets/svg/indicator.svg'),
                              Padding(
                                padding: const EdgeInsets.only(left: 18,right:18),
                                child: Text('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisi',
                                style: GoogleFonts.montserratAlternates(
                                  textStyle:const TextStyle(
                                    fontSize: 12.25,
                                    fontWeight: FontWeight.w500,
                                    color: Color.fromRGBO(0, 0, 0, 1)
                                  )
                                ),
                                ),
                              ),
                              Row(
                                children: [
                                  Padding(
                                    padding: const EdgeInsets.only(left: 18,),
                                    child: Text('1hr ago',
                                    style: GoogleFonts.montserratAlternates(
                                      textStyle: const TextStyle(
                                        fontWeight: FontWeight.w500,
                                        fontSize: 11.25,
                                        color: Color.fromRGBO(0, 0, 0, 1)
                                      )
                                    ),),
                                  ),
                                ],
                              ),

                              Padding(
                                padding: const EdgeInsets.only(bottom: 20),
                                child: Row(
                                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                                  children: [
                                    Padding(
                                      padding: const EdgeInsets.only(left: 24),
                                      child: SizedBox(
                                        child: Row(

                                          children: [
                                            SvgPicture.asset('assets/svg/likeicon.svg'),
                                            Padding(
                                              padding: const EdgeInsets.only(left: 8,right: 8),
                                              child: SvgPicture.asset('assets/svg/loveicon.svg'),
                                            ),
                                            SvgPicture.asset('assets/svg/bookmakicon.svg'),

                                          ],
                                        ),
                                      ),
                                    ),
                                    Padding(
                                      padding: const EdgeInsets.only(right: 24),
                                      child: SizedBox(
                                        child: Row(
                                          children: [
                                            SizedBox(
                                                 child: Column(
                                                     children: [
                                                      Row(
                                                        children: [
                                                          Text('0.002',
                                                          style:GoogleFonts.montserratAlternates(
                                                            textStyle:const TextStyle(
                                                              fontWeight: FontWeight.w500,
                                                              fontSize: 12,
                                                              color:  Color.fromRGBO(0, 0, 0, 1)
                                                            )
                                                          ) ,),
                                                          Text('ETH',
                                                          style: GoogleFonts.montserrat(
                                                            textStyle:const TextStyle(
                                                              fontWeight: FontWeight.w700,
                                                              fontSize: 12,
                                                              color: Color.fromRGBO(0, 0, 0, 1)
                                                            )
                                                          ),
                                                          )
                                                        ],
                                                      ),
                                Padding(
                                  padding: const EdgeInsets.only(left: 30),
                                  child: Text("~\$30",
                                   style: GoogleFonts.montserratAlternates(
                                           textStyle:const TextStyle(
                                          fontWeight: FontWeight.w500,
                                              fontSize: 9,
                                               color: Color.fromRGBO(0, 0, 0, 1)
                                                              )
                                                            ),
                                  ),
                                )
                                                     ],
                                                 ),
                                            ),
                                             SvgPicture.asset('assets/svg/mint.svg',height: 40,),
                                          ],
                                        ),
                                      ),
                                    )
                                  ],
                                ),
                              )
                            ],
                          ),
                         )
                      ],
                    )
                   ),
                ),
              ),
            );
          }),
      ),
    ],
  ),
bottomNavigationBar: BottomNavigationBar(
  items: [
  BottomNavigationBarItem(icon: _naviIcon('assets/svg/homeicon.svg', 'Home',(){
    Navigator.of(context).push(MaterialPageRoute(builder: ((context) => const MyHomePage())));
  }),label:'',),
  BottomNavigationBarItem(icon:  _naviIcon('assets/svg/albumicon.svg', 'Album',(){
            Navigator.of(context).push(MaterialPageRoute(builder: ((context) => const AlbumPage())));
  }),label: ''),
  BottomNavigationBarItem(icon: _naviIcon('assets/svg/minticon.svg', 'Mint',(){}),label: '',),
  BottomNavigationBarItem(icon: _naviIcon('assets/svg/walleticon.svg', 'Wallet',(){}),label:'')
]),

    );

}
}
Widget _naviIcon(String icon, String name,Function() onTap){
return GestureDetector(
onTap:onTap,
child: SizedBox(
child: Column(children: [
SvgPicture.asset(icon),
const SizedBox(height: 4,),
Text(name,
style: GoogleFonts.montserratAlternates(
textStyle: const TextStyle(
fontSize: 8.9,
fontWeight: FontWeight.w500,
color: Color.fromRGBO(0, 0, 0, 1)
      )
    ),
    )
  ],)
),

);
}

Well, you are initializing twice, the second time => await _initializeAppKitModal(); // Fallback: initialize if not done yet shouldn't be needed. Please take a look at the example app inside modal/ folder

That being said, I'll change to registerSingletonIfAbsent inside the SDK but again, your second initialization shouldn't be needed.

I am still getting the same issue and when I navigate out of the page and back, I get this error Field '_appKitModal@44472063' has not been initialized.
E/flutter ( 5090): [ERROR: flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Type IMagicService is already registered inside GetIt.

authors: ChekoutMkt quetool


text:
EOF occured in violation of protocol -- From EC2 AWS

I got this error message executing the code in Ec2 AWS Linux Ubuntu 22.04.2 (not locally): [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)
Replicate v. 0.23.1
Error log:
Traceback (most recent call last):
  File "/home/ubuntu/News/LLM_confronto.py", line 42, in generate_summary
    for event in replicate.stream(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/replicate/stream.py", line 200, in stream
    with client._client.stream("GET", url, headers=headers) as response:
  File "/usr/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_client.py", line 871, in stream
    response = self.send(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_client.py", line 915, in send
    response = self._send_handling_auth(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_client.py", line 943, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_client.py", line 980, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_client.py", line 1016, in _send_single_request
    response = transport.handle_request(request)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/replicate/client.py", line 258, in handle_request
    response = self._wrapped_transport.handle_request(request)  # type: ignore
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 230, in handle_request
    with map_httpcore_exceptions():
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)

Hi, @bertello72. Is this happening every time? Intermittently? Just a one-off?

It varies a lot.
First attempt: ~600 words in the prompt, ~400 words in output, and then
crashed
Second attempt: ~600 words in the prompt, and then crashed (no output)
Third attempt: three consecutive prompts with ok outputs, and then crashed
Il giorno mar 30 gen 2024 alle ore 17:59 Mattt @.***>
ha scritto:

Hi, @bertello72 https://github.com/bertello72. Is this happening every
time? Intermittently? Just a one-off?
—
Reply to this email directly, view it on GitHub
https://github.com/replicate/replicate-python/issues/237#issuecomment-1917489391,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFTUJONAJJCIL77YQHABP5DYRERGPAVCNFSM6AAAAABCRKTIVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJXGQ4DSMZZGE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@bertello72 Thanks for clarifying. Searching around for that error message, it sounds like the problem can be resolved by upgrading your installation of OpenSSL or nginx (if you're using that). See this SO thread.

i haven't used nginx and I've checked OpenSSL; it's the latest available in AWS EC2 Amazon Linux.
AWS Service Support gave me this advice:
<<I did researched about the error "[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)" and found that it might be related to SSL/TLS mismtach between server and hosts. I have got information from below external source:
https://community.cisco.com/t5/radkit-discussions/getting-conda-error-encountered-an-ssl-error-most-likely-a/td-p/4873809>>
Does it rise in your mind some insights on how to fix the problem?

@bertello72 According to https://github.com/python/cpython/issues/110467, this appears to be a problem with Python 3.10. I'd recommend upgrading to a newer version of Python.
Since this doesn't appear to be a problem with the Replicate client library itself, I'll go ahead and close this issue for now.

repo: replicate/replicate-python


text:
k0s 1.28.9+k0s.0

To make a new release from this branch, first run:
git checkout main && git pull && git checkout k0s-1-28-9 && git pull to ensure state is current
Then, merge main into this branch (there should not be any conflicts) and push with:
git merge origin/main && git push
Run make go.mod to ensure that dependencies match the Makefile.
This will trigger CI to run on the new merge commit. If it passes, tag and release with:
git tag -m "v1.28.9+ec.X" v1.28.9+ec.X && git push -u origin v1.28.9+ec.X
(Please do not actually release .X, change that to the correct version)

TestOldVersionUpgrade is failing because all old versions depend on the non-archive openebs URL, which old versions obviously use

closed in favor of https://github.com/replicatedhq/embedded-cluster/pull/706

repo: replicatedhq/embedded-cluster


text:
chore(dev): uploading uncompressed ec release

uploads the uncompressed binary to the bucket, we are looking to evaluate if there is a performance gain in comparison.
this is temporary and should not be merged.

Tests indicate that using the uncompressed binary when serving embedded clusters did not bring performance gains. This isn't necessary anymore, closing.


text:
Remove lint and vet from kurl_util

What this PR does / why we need it:
We run lint and vet in the root Makefile. No need to duplicate here.
https://github.com/replicatedhq/kURL/blob/b7405229745676f5f924ed0c775bb6fba15671f0/Makefile#L633

Need to update: https://github.com/replicatedhq/kURL/blob/main/.github/workflows/build-test.yaml#L39

authors: emosbaugh rrpolanco

repo: replicatedhq/kURL


text:
Timeout for request through https-proxy

I'm trying make request through proxy. It's my code.
var proxyList = [
   'http://username:pass@hostname:65233',
   'https://username:pass@hostname:65233'
];

var ADDRESS = 'https://google.com';
var TIMEOUT = 5*1000;

var rp = require('request-promise');
var url = require('url');

function check(proxyUrl){
   rp({
      method: 'GET',
      uri: ADDRESS,
      proxy: proxyUrl,
      timeout: TIMEOUT,
      tunnel: true
   })
      .then(function(){
         console.log('good - ' + proxyUrl);
      })
      .catch(function(e){
         console.error(e);
      });
}

proxyList.forEach(function(proxyData){
   check(proxyData)
});

http proxy works well, but on https i receive timeout
curl commands works well on http and https
curl --proxy http://username:pass@hostname:65233 https://google.com
curl --proxy https://username:pass@hostname:65233 https://google.com

How i can make request through https proxy?

How make request through https proxy?

@ershov-konst

authors: ershov-konst primewang

repo: request/request


text:
Can't install on OSX

Any ideas how to resolve this error?
Installing globally without sudo fails as well.
➜  sms git:(inline-style-fix) sudo npm install -g requiresafe

> git-validate@2.1.0 install /usr/local/lib/node_modules/requiresafe/node_modules/git-validate
> node bin/install

fs.js:500
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
Error: EACCES, permission denied '/usr/local/.git/hooks/pre-commit'
    at Error (native)
    at Object.fs.openSync (fs.js:500:18)
    at Object.fs.writeFileSync (fs.js:1099:15)
    at Object.exports.installHooks (/usr/local/lib/node_modules/requiresafe/node_modules/git-validate/lib/utils.js:248:12)
    at Object.<anonymous> (/usr/local/lib/node_modules/requiresafe/node_modules/git-validate/bin/install.js:3:7)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
npm ERR! Darwin 14.5.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "requiresafe"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! code ELIFECYCLE

npm ERR! git-validate@2.1.0 install: `node bin/install`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the git-validate@2.1.0 install script 'node bin/install'.
npm ERR! This is most likely a problem with the git-validate package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node bin/install
npm ERR! You can get their info via:
npm ERR!     npm owner ls git-validate
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/chrisfosterelli/workspace/memoryleaf/sms/npm-debug.log
➜  sms git:(inline-style-fix)

What version of OS X is this?

@bear 10.10.5

thanks, we are looking into this

@chrisfosterelli if you try and npm i requiresafe -g outside of a directory with a .git in it does it work?

@evilpacket Nope, has the same behaviour

@chrisfosterelli Thanks. We'll track down the issue. We have a bit of an idea.

Not sure if this is relevant, but it appears to be trying to write to /usr/local/.git/pre-commit but /usr/local/.git is not root-writable so that might explain the permission issue.
➜  workspace  ls -al /usr/local/
total 96
drwxrwxr-x  23 root             admin    782 21 Jul 10:24 .
drwxr-xr-x@ 12 root             wheel    408  6 May 22:19 ..
drwxr-xr-x  14 chrisfosterelli  admin    476  6 May 22:19 .git
-rw-r--r--   1 chrisfosterelli  admin    301  6 May 22:19 .gitignore
-rw-r--r--   1 chrisfosterelli  admin    261  6 May 22:19 .yardopts
-rw-r--r--   1 chrisfosterelli  admin   3160  6 May 22:19 CODEOFCONDUCT.md
-rw-r--r--   1 chrisfosterelli  admin   1103  6 May 22:19 CONTRIBUTING.md
drwxr-xr-x  23 chrisfosterelli  admin    782 26 Sep 12:52 Cellar
-rw-r--r--   1 chrisfosterelli  admin   1241  6 May 22:19 LICENSE.txt
drwxr-xr-x  11 chrisfosterelli  admin    374 14 Aug 10:55 Library
-rw-r--r--   1 chrisfosterelli  admin   2064  6 May 22:19 README.md
-rw-r--r--   1 chrisfosterelli  admin  23781  6 May 22:19 SUPPORTERS.md
drwxr-xr-x  89 chrisfosterelli  admin   3026 26 Sep 12:52 bin
drwxr-xr-x   5 chrisfosterelli  admin    170 24 Jun 14:36 etc
drwxr-xr-x   6 chrisfosterelli  admin    204 22 Jun 10:39 foreman
drwxr-xr-x  22 root             wheel    748 17 Feb  2015 go
drwxr-xr-x   7 65535            65535    238 22 Jun 10:39 heroku
drwxr-xr-x  27 chrisfosterelli  admin    918 24 Jun 14:36 include
drwxr-xr-x  53 chrisfosterelli  admin   1802 24 Jun 14:36 lib
drwxr-xr-x  23 chrisfosterelli  admin    782 26 Sep 12:52 opt
drwxr-xr-x  10 chrisfosterelli  admin    340 21 Jul 10:24 sbin
drwxr-xr-x  14 chrisfosterelli  admin    476 26 Aug 15:34 share
drwxr-xr-x   3 chrisfosterelli  admin    102 24 Jun 14:36 var
➜  workspace

If I go into that directory and run git remote -v it looks like the .git directory is being initialized and setup by homebrew.

@chrisfosterelli just published 2.0.3 which I think will resolve the issue

@evilpacket Works great now! Thanks guys!

authors: bear chrisfosterelli evilpacket

repo: requiresafe/cli


text:
Opening link on webviewer opens in the same tab

pretty annoying to have the webapp be gone just because I clicked a documentation link with left mouse button instead of middle

I assume you suggest all links should always open in a new tab?

I figure that's what past-me meant, yep

authors: Wumpf emilk

repo: rerun-io/rerun


text:
Dataframe view: deduplicate row with identical value

The dataframe view has a lot of duplicated content, especially in time range mode (same entity for many timestamps, etc.).

deduplicate content of the time and/or entity path columns (ie. write the content only once
add stroke lines to make cell "merged" state more explicit
"stick" the cell value to the top of the table when scrolling

if we start with an entity on top -> most likely this behavior will not happen as often (only if smth was logged at the same time tick multiple times, which is not a majority of cases). Because normally there will be 1 row per a time tick. Hence this will be useful after enabling changing 'Entity as a row' VS 'Entity as a column'?
https://github.com/user-attachments/assets/c58b36a0-4729-4479-bb48-090d85e3993a

Probably only useful with:

https://github.com/rerun-io/rerun/issues/7379


text:
Selecting a video takes up the memory of that video again

Easy to see with very large videos:

Once a video is selected, our memory usage goes up by another sizeof video blob. Are we creating a new re_video because some cache key doesn't match up?
Also there's something weird going on with how memory in the store is reported. But that's another issue. TODO: insert issue number

counted also doesn't go down when closing all views as I would have expected: video cache should evict all re_mp4/re_video objects and thus use less memory


text:
Drop support for pre-16.3 React versions

To improve the way we handle ref assignment and updates to observer targets, we need to use a more efficient way. This is possible with the lifecycle methods update introduced in React 16.3. The plan is to stop supporting previous versions to that and perhaps bump this change as v1.0.0.
More details in this previous thread:
https://github.com/researchgate/react-intersection-observer/issues/38#issuecomment-393888660

see #52


text:
fix(components): Add exports for Native ESM support

This adds exports config to the package.json so Node in Native ESM mode can resolve imports to the right files.
Closes #513

This will be enough for me since I just install this package, but for folks wanting to use native ESM for the other packages they'll need this config added to all the others as well. But again, this unblocks me.

Thanks @kentcdodds, I'll add to the other components.

Thank you!

authors: bukinoshita kentcdodds

repo: resendlabs/react-email


text:
Improve radio initialisation

Change-type: patch
Signed-off-by: Joseph Roberts joe@resin.io
Connects with #151

LGTM. Clean and quite informative PR for the hotspot creation with NM.

authors: josephroberts majorz

repo: resin-io/edge-node-manager


text:
Choosing target UI isn't fail-safe enough

Etcher version: 1.4.4
Operating system and architecture: Mac, 64bit, HighSierra, latest patches applied.
Image flashed: Raspbian from April.
Do you see any meaningful error information in the DevTools? n/a

Software would be even better if:
I had a sparse bundle already open when I opened Etcher. My intention was to blast Raspbian to a large SD card. The sparse bundle is pre-selected - eww!  Even when I open that mini-dialog and select the SD card, the sparse budndle by default is not de-selected.  Wow. UI affordances like this should be single select (with no default when there's a choice of two). Multiple selection should not be the default functionality of such a control. Sure, run with the green checkbox (rather than shift-select for multiple), but single select with no pre-choice if two is correct.

Sounds like selecting a "sparse bundle" may be a bug in drivelist ?
Did you insert the SD card before or after starting Etcher? If you inserted the SD card after starting Etcher, then Etcher probably only detected one available "writable drive" when it started up, and so auto-selected that single drive by default.
@jhermsmeier A thought that's just occurred to me - for advanced users, might it be worth adding a noAutoSelection to the settings? (which would obviously be false by default / if not set)

Autoselection is only half of my observation. The other half is that it should (by default) be a single selection list box. Selecting B unselects A, Selecting A after that, unselects B.

@lurch yeah, we'll be exposing most settings in the UI soon-ish

@paul-hammant I agree, the current behavior isn't ideal – iirc we even had multi-selection with Shift only at one point, but it might not have been obvious enough that it'd work from the UI at this time, and also would fail on touch screens.
@konmouz what do you think about reverting to having to hold Shift for multi-select to work, and displaying a little help message in the device selection saying something like "Use Shift to select multiple targets"? Of course we'd have to turn that off for touch screens...

Just to be pedantic, if you wanted to mimic the behaviour of e.g. Windows Explorer, would it be better to use Ctrl for multi-selection? (as Shift is normally used for range-selection) :man_shrugging:

to use Ctrl for multi-selection? (as Shift is normally used for range-selection)

Ah yes, Ctrl it is, but I guess also having Shift for range selection wouldn't hurt in situations where you'd want to select a large number of devices

I was wondering if it'd be worth adding a noAutoSelection setting so that users could totally disable auto-selection if they wanted to

Yeah, I got that – it'll end up in the swamp of settings we'll be exposing (as the opposite of that exists already)

@jhermsmeier, this won't be clear for the user. The issue here is that we shouldn't autoselect a drive when more than one options are available. If only one drive is detected and therefore autoselected, and then afterwards a second drive is available, we can deselect the already autoselected drive. In addition, the CTA indicates the amount of selected drives to inform the user about the total number of drives that are going to be flashed.

If only one drive is detected and therefore autoselected, and then afterwards a second drive is available, we can deselect the already autoselected drive.

That might be tricky, since AFAIK Etcher doesn't keep track of whether a drive was auto-selected or manually selected. If a user manually selects a drive, and then inserts another drive, they might not expect the first drive to be automatically unselected? (IYSWIM)

I would.

Improved on v2 design

authors: JeremyBoden jhermsmeier jviotti konmouz lurch paul-hammant

repo: resin-io/etcher


text:
resin sync/ssh improvements

New features

Parse .gitignore for file inclusions/exclusions from resin sync by default (don't parse with --skip-gitignore)
Automatically save options to ${source}/.resin-sync.yml after every run
Support user-specified destination directories with --destination/-d option
Interactive dialog for destination directory, with /usr/src/app being the default choice

Changes

resin sync --source/-s option is mandatory if a .resin-sync.yml file is not found in the current directory
resin sync/ssh now only accept uuid as a destination (appName has been deprecated)

Fixes

Disable ControlMaster ssh option (as reported in support)

I didn't check in detail, but I believe some of your changes are missing the JS counter-part, but ignore me if I'm wrong. Also, you can run npm run doc to auto generate the documentation at doc/cli.markdown; otherwise it'll keep referring to the old command helps.

Also added docs (thanks for reminding me, maybe we can add this in the gulp build process) and regenerated JS files. I've added the latter in a separate commit at the end, because having them along with the 'legit' coffeescript changes is makes life harder when reviewing the diffs.

@jviotti I forgot an important detail - please do not merge/publish this until we have the respective backend changes on production - I will ping you when it's up!

Yeah, transpiling is a PITA, I'd love to move away from CoffeeScript. Sure, let me know when everything is ready!

Thank you!
Tbh I like the syntactic sugar of CoffeeScript , but I agree that leaving it is probably the most sensible choice for the long term!

We might move from CS to TS -- so nobody gets what they want :P
--
Alexandros Marinos
Founder & CEO, Resin.io
+1 206-637-5498
@alexandrosm
On Thu, Jul 21, 2016 at 11:15 AM, Kostas Lekkas notifications@github.com
wrote:

Thank you!
Tbh I like the syntactic sugar of CoffeeScript , but I agree that leaving
it is probably the most sensible choice for the long term!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/resin-cli/pull/367#issuecomment-234337864,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLUCKIUFIDOOw-sZ81vbAZNtp3QKoPLks5qX7c2gaJpZM4JRuAQ
.

@alexandrosm In any case, should we discuss a way to deal with transpilation in a way that doesn't annoy developers nor users? The current situation is awful. Executing CS or TS directly is an option for internal code, but not for open-source packages we publish to NPM. Adding a pre-publish hook to compile stuff led me to some issues in the past which made me chose to compile and commit the JS myself.

Just a comment: I'd love to make sure we get decent linting tools for whatever language we chose. ESLint for JS is magnitudes of times better than things like CoffeeLint. It makes a HUGE difference for me in other projects.

How does TSLint look on that spectrum?
https://palantir.github.io/tslint/
btw, I love their "develop" link. hint hint for Etcher :)
--
Alexandros Marinos
Founder & CEO, Resin.io
+1 206-637-5498
@alexandrosm
On Thu, Jul 21, 2016 at 1:58 PM, Juan Cruz Viotti notifications@github.com
wrote:

Just a comment: I'd love to make sure we get decent linting tools for
whatever language we chose. ESLint for JS is magnitudes of times better
than things like CoffeeLint. It makes a HUGE difference for me in other
projects.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/resin-cli/pull/367#issuecomment-234381954,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLUCLF2oVd_KS_QrWqIFKcTVcfEkWJiks5qX91fgaJpZM4JRuAQ
.

@alexandrosm +1 for TS! 😆
@jviotti What were the issues with adding pre-publishing hooks?
I agree it'd be better to have transpilation automated. The current situation is a nuisance for the PR submitter and also doubles the review workload for the maintainer - because PR'ed transpiled code must be reviewed (or at least verified) as well

@lekkas Some I remember from the top of my head:

I encountered some situations where the CoffeeScript would not compile correctly. The code would compile, but the intention was lost given some edge cases and weird CS usage, and I only noticed after publishing the module. I do a quick sanity review on the compiled JS since then.

A combination of .gitignore and .npmignore subtle issues caused the CS to be compiled in the pre-publish hook, but not be included in the final package. It was hard to diagnose what was going on afterwards.

I believe there were other issues/annoyances, but I can't remember anymore.

I see, I'm thinking of adding a prepublish hook in resin sync, so I'll take note of these issues, thanks!

@jviotti this is ready for merging 👍

authors: alexandrosm jviotti lekkas

repo: resin-io/resin-cli


text:
Icon Request: [blood oxygen]

Working with remote patient monitoring, patients can measure their blood oxygen level. It would be really nice to have a more blood oxygen icon. Something like this:
device specific:

or more generic:

Sorry for the long delay. We'll work on this!

We just added a Pulse Oximeter icon. Thanks for your patience.

authors: dburka lisemari-dignio

repo: resolvetosavelives/healthicons


text:
Can not do GET request for the link which has redirect link with symbols

I'm doing get request to the link which is doing a lot of redirects. And basically I need them all and I can't add the next line: .redirects().follow(false)
So, I'm raising the issue, could someone fix situation when there is some symbols in redirect urls. Please view the stack trace below or let me now if you need anything else.
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:839)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.http.client.HttpClient$execute$0.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl$RestAssuredHttpBuilder.doRequest(RequestSpecificationImpl.groovy:2128)
at io.restassured.internal.http.HTTPBuilder.doRequest(HTTPBuilder.java:494)
at io.restassured.internal.http.HTTPBuilder.request(HTTPBuilder.java:451)
at io.restassured.internal.http.HTTPBuilder$request$2.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl.sendHttpRequest(RequestSpecificationImpl.groovy:1531)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at io.restassured.internal.RequestSpecificationImpl.sendRequest(RequestSpecificationImpl.groovy:1290)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)
at io.restassured.internal.filter.SendRequestFilter.filter(SendRequestFilter.groovy:30)
at io.restassured.filter.Filter$filter$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.time.TimingFilter.filter(TimingFilter.java:56)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.log.RequestLoggingFilter.filter(RequestLoggingFilter.java:124)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at io.restassured.filter.Filter$filter$0.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.FilterContext$next.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1731)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1737)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy:170)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy)
at api.bulkapiv2.JsonBulkApiV2ClickTests.lambda$null$1(JsonBulkApiV2ClickTests.java:118)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at api.bulkapiv2.JsonBulkApiV2ClickTests.lambda$getOfferWithCorrectUrl$2(JsonBulkApiV2ClickTests.java:111)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
at java.util.LinkedList$LLSpliterator.tryAdvance(LinkedList.java:1249)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at api.bulkapiv2.JsonBulkApiV2ClickTests.getOfferWithCorrectUrl(JsonBulkApiV2ClickTests.java:122)
at api.bulkapiv2.JsonBulkApiV2ClickTests.affSubParametersAndCountryTest(JsonBulkApiV2ClickTests.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:744)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
at org.testng.TestNG.runSuites(TestNG.java:1144)
at org.testng.TestNG.run(TestNG.java:1115)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: org.apache.http.ProtocolException: Invalid redirect URI: https://app.adjust.com/n93roy?campaign=CB__^COJ^xdm531^^^&adgroup=25810&gps_adid=&creative=&install_callback=http%3A%2F%2Ftracking.applift.com%2Faff_lsr%3Ftransaction_id%3D102d8983274396d22debf17fc13d3f%26adv_sub2%3D{installed_at}%26adv_sub3%3D{language}%26adv_sub%3D{gps_adid}&event_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3D{event}%26event_name%3D{event_name}%26event_value%3D{revenue_usd}&session_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3Dsession&rejected_install_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D{transaction_id}%26custom10%3Drejected_{rejection_reason}%26custom9%3D25810%26custom8%3D46088%26post%3D1
at org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:200)
at org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:148)
at org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:221)
at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1083)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:514)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
... 126 more
Caused by: java.net.URISyntaxException: Illegal character in query at index 43: https://app.adjust.com/n93roy?campaign=CB__^COJ^xdm531^^^&adgroup=25810&gps_adid=&creative=&install_callback=http%3A%2F%2Ftracking.applift.com%2Faff_lsr%3Ftransaction_id%3D102d8983274396d22debf17fc13d3f%26adv_sub2%3D{installed_at}%26adv_sub3%3D{language}%26adv_sub%3D{gps_adid}&event_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3D{event}%26event_name%3D{event_name}%26event_value%3D{revenue_usd}&session_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3Dsession&rejected_install_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D{transaction_id}%26custom10%3Drejected_{rejection_reason}%26custom9%3D25810%26custom8%3D46088%26post%3D1
at java.net.URI$Parser.fail(URI.java:2848)
at java.net.URI$Parser.checkChars(URI.java:3021)
at java.net.URI$Parser.parseHierarchical(URI.java:3111)
at java.net.URI$Parser.parse(URI.java:3053)
at java.net.URI.(URI.java:588)
at org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:189)
... 131 more

Hmm which symbol is it complaining about?

@johanhaleby
Basically I found two links:

Complaining {deviceInfo}

Caused by: org.apache.http.ProtocolException: Invalid redirect URI: https://atracking-auto.appflood.com/transaction/post_click?offer_id=24898774&aff_id=10729&aff_sub=201710192144432608733&aff_sub3={deviceInfo}&aff_sub6=10065
2. Complaining due to ^ symbol
Caused by: java.net.URISyntaxException: Illegal character in query at index 43: https://app.adjust.com/n93roy?campaign=CB__^COJ^xdm531^^^&adgroup=25810&gps_adid=&creative=&install_callback=http%3A%2F%2Ftracking.applift.com%2Faff_lsr%3Ftransaction_id%3D102d8983274396d22debf17fc13d3f%26adv_sub2%3D{installed_at}%26adv_sub3%3D{language}%26adv_sub%3D{gps_adid}&event_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3D{event}%26event_name%3D{event_name}%26event_value%3D{revenue_usd}&session_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D102d8983274396d22debf17fc13d3f%26event_ref_id%3Dsession&rejected_install_callback=http%3A%2F%2Fevents.applift.com%2Fv1%2Fevents%3Fsource%3Dadeven%26pub_reference_id%3D{transaction_id}%26custom10%3Drejected_{rejection_reason}%26custom9%3D25810%26custom8%3D46088%26post%3D1

Maybe you need to URL Encode it? This looks like something that is thrown by Apache HTTP Client and thus I assume that it's correct. Maybe you could search for issues or ask questions in the Apache HTTP Client mailing list (or stackoverflow or something). If there's anything that can be done about it maybe we can sort something out on the RA side.

@johanhaleby Thank you, I will look on this deeply and report to responsible side.

authors: KseniaBudlianska johanhaleby

repo: rest-assured/rest-assured


text:
"Include" switch for rewrite command

Output of restic version
restic 0.15.1 compiled with go1.19.5 on darwin/amd64

What should restic do differently? Which functionality do you think we should add?
As with the "restore" command, it would be nice if "rewrite" also had an "include" switch so that you could include only one pattern while excluding the rest.

What are you trying to do? What problem would this solve?
I'd like to "forget" a snapshot, but keep the *.ost and *.pst files just in case.  As it stands, I only see two ways of doing this.  (A) Restore the snapshot, including only *.ost and *.pst, then create a new snapshot by backing up that folder, or (B) Create a directory listing of everything on the snapshot, remove all the *.ost and *.pst files, create an exclude file from that, then rewrite the snapshot using the exclude file.
Which, of course, would likely work...  but an "--include" switch would be way easier :)

Did restic help you today? Did it make you happy in any way?
Hands down the best open source backup project out there 🙌

I have written a very rough modification to cmd_rewrite.go, which allows exclusively either inclusion or exclusion of file patterns. It has the disadvantage that currently all the directory information of the existing backup has to be included in the rewritten snapshot, so that the included files can be found in the tree. As a result there will possibly be a lot of empty directories; however these blobs do not not take up so much space. I have no idea as yet how to solve the dilemma of empty subdirectories.

I have solved the issue of empty subdirectories by doing a walker.Walk on the snapshot first, if a new flag "exclude-empty" is given. This allows for filtering out directories which are needed for included files / directories, so the rest of the directory structure does not need to be included. Will issue PR soon.

I have solved the issue of empty subdirectories: I do a pass of walker.Walk() to register the subdirectories which are needed for the inclusion pattern. By finding all the parents of the directories, the those directories can be identified and then be used in the actual rewrite process.
Will deliver PR soon.

I have messed up my fork on github, so i closed and reopened the pull request. I will wait for the review of https://github.com/restic/restic/pull/5185 to be finished, so I can integrate the work from #5185.

authors: akrabu wplapper

repo: restic/restic


text:
High CPU usage when idle

I am experiencing a high CPU usage (around 50%) on my Mac 10.14.6 and the latest version of Zotero 5.0.80. This is due to Better-BibTeX because the issue goes away if I disable the addon.

Debug report: 37GR72TS-euc

Duplicate of #1352 - I'd appreciate it if you could test whether the proposed solution works for you too.

Sorry for duplicate. Yes, the solution solved my problem.

Cool, and no worries. A release build is running which will drop in 30 minutes or so (the full test suite takes a while)

authors: doncip retorquere

repo: retorquere/zotero-better-bibtex


text:
Scan AUX into zotero imports nothing with the Biber / BibLaTeX project

Debug log ID
ZE5774QW-euc/6.7.164-6
What happened?
I'm trying to tag all missing references in a tex project with biblatex. I'm using latest zotero (6.0.35) and a newly install zotero-better-bibtex. I followed instruction and try to pull missing references from aux file. It seems BBT extracts nothing from aux file. Are we supporting biber / biblatex now or planning supporting it in future?

I'm trying to tag all missing references in a tex project with biblatex. I'm using latest zotero (6.0.35) and a newly install zotero-better-bibtex. I followed instruction and try to pull missing references from aux file. It seems BBT extracts nothing from aux file.

I can't say what might be going wrong without the actual aux and bib file.

Are we supporting biber / biblatex now or planning supporting it in future?

I don't understand what you are asking here.

If I don't get further feedback I'm going to have to close the issue.

Oops I just see the comment. When using biblatex package, it uses biber as the default which depends on the a different command to collect all citations. In this case, the aux file contains \abx@aux@cite{0}{CITE-KEY} command instead of \citation{CITE-KEY}.
The work around should be simple by adding an additional pattern for those citation keys.
For detail, please refer to https://mirror.math.princeton.edu/pub/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf documentation, section 3.16 page 158.

I don't see anything about the \abx@aux@cite{0}{CITE-KEY} format there though. Is the {n} prefix always there?

It doesn't seem to be -- the aux scanner already looks for \\abx@aux@cite{citekey}. Please attach a sample .aux file with the format you found.

Can you test build 5966?

closing for inactivity

authors: hukaidong retorquere


text:
Exporting more fields using BibTeX and renaming them

Hi,
BetterBibTeX authorizes us to omit some fields from export, but could it be possible to include some more in those BibTeX exports ? For example, "conference name", "callNumber" or "archive" ?
And if possible, where in any JS file (or directly in BBT) could I rename those fields ?
My point is, I would like to use some "rare" Zotero fields to export some special BibTeX information that can't be written in any existing Zotero field, such as an internal identifying number for authors from our institution.
So I would like to be able to write this id in the "callNumber", export this callNumber with BBT and rename its label "x-onbehalfof" instead of callNumber...
Thank you very much !!

You can add them in a postscript using something like
if (Translator.BetterBibTeX) {
  this.add({ name: 'callNumber', value: item.callNumber });
}

Thank you very much for your answer !
Shall I just paste that in my postscript ? Nothing is happening...

If nothing is happening, that would indicate either you have no callnumbers or you're not using BetterBibTeX. If you want it to work for both BetterBibTeX and BetterBibLaTeX, you can change it to
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ name: 'callNumber', value: item.callNumber });
}

Hum... Sorry, it seems that my example with callNumber was not a good one since the field is in fact already imported by "classic" BetterBibTeX, but its BibTeX name is "lccn" and not callNumber. My bad.
So I tried
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ name: 'Archive', value: item.Archive });
}

but it doesn't work either, even if I do really have a Archive field in my Zotero reference...

It may not be named exactly that. If you export a reference with "BetterBibTeX JSON" you get the exact field names to use.

I'm afraid BetterBibTeX JSON tells me to use "archive"... Sorry :-s

So that seems OK then. Fields are case-sensitive, so
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ name: 'Archive', value: item.archive });
}

ought to work. Since you're not using any other configuration for the field, you could shorten it to
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ Archive: item.archive });
}

I hate to say this but it still doesn't work... I must be doing something wrong but I cannot see what.
I have this journal article reference which includes some text in fields like Archive (JSON tells its name is archive), Loc. In Archive (archiveLocation), Library Catalog (libraryCatalog), Call Number (JSON tells its name is callNumber but BetterBibTeX exports it as "lccn") etc.
I cleared all the code I already had in my postscript and pasted the one you wrote.
Then I exported my reference using BetterBibTeX.
But those fields still don't appear in my .bib file...

Sorry, that should have been
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ Archive: this.item.archive });
}

Still nothing... sorry...

Can you enable extended debugging in BBTs advanced prefs, trye the export again, and then submit a BBT error report?

Done ! The ID is T22BVBJF.
Thank you very much !!

No errors in that log. Can you right-click the reference which you're trying to export and send another debug report from that menu?

Report ID: TGSM3VUP

And here's what I get in my .bib file:
@article{dupont_titre_2016-28,   series = {Collection},   title = {Titre de l'article de revue},   volume = {50},   copyright = {Autorisations de l'article de revue},   issn = {ISSN},   lccn = {Cote},   shorttitle = {Titre abr{\'e}g{\'e}},   doi = {10.1340/309registries},   language = {FR},   timestamp = {2016-11-22T10:11:58Z},   number = {20},   urldate = {2016-01-01},   journal = {Titre de la revue},   author = {Dupont, Jean},   editor = {Bernard, Marie},   translator = {{de Rotterdam}, Erasme},   collaborator = {Durand, Pierre and Martin, Anne},   month = mar,   year = {2016},   keywords = {Mot-clé 1,Mot-clé 2,Mot-clé 3},   pages = {123 et suiv.} }

If I export that I get the Archive added as expected. Could you try clearing your cache in the BBT advanced prefs?

I tried with another computer and it still doesn't work... I am very puzzled.

Can you change the postscript to what's below, make sure extended debugging is on, export again, and then submit an error report?
Zotero.debug("running postscript for " + JSON.stringify(Translator.header, null, 2));
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ Archive: this.item.archive });
}

Done ! Report ID: 2KXTVICD

OK, so the postscript is running. Change it to this and submit a new log, we'll get to the bottom of this.
Zotero.debug("running postscript: " + JSON.stringify({
  BetterBibTeX: Translator.BetterBibTeX,
  BetterBibLaTeX: Translator.BetterBibLaTeX,
  active: Translator.BetterBibTeX || Translator.BetterBibLaTeX,
  item: this.item,
  archive: this.item.archive
}, null, 2));
if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
  this.add({ Archive: this.item.archive });
}

Yes, the postscript is running perfectly well when I add some other code like this.add etc...
Anyway, here is the Report ID: X9FJVUUM

I've just now noticed that you're on an older debug version -- could you install 1.6.93 first to see if that changes things? Don't know why you weren't upgraded automatically.

IT WORKS !!!!! \o/
Hell, all that fuss only because of my older version... I feel deeply sorry that I wasted your time like this.
Anyway, it totally works. I can add all the fields I want, and rename them.
THANK YOU SO MUCH for your help and your patience !!

Always a pleasure. You couldn't know the update mechanism had failed. You can of course remove the call to Zotero.debug now.

(smacks forehead -- and now I know why you saw no output -- the shortcut <field>: <value> as an alias for name: <field>, value: <value> was added after the version you had, and BBT was thinking "you aren't giving me a value so I don't need to do anything")

Thank you again for your help. I got another question, dealing with the same kind of problem: I am using some Zotero types that are unknown to BibTeX. E.g., when I have an "itemType" : "presentation" (according to BibTeX Json), my BibTeX export gives me a @misc reference.
Is there any way I could tell BBT to export my Zotero presentation as a @poster ?
Thank you very much !

Sure, you can use something like
if (Translator.BetterBibTeX && this.item.itemType == 'presentation') {
  this.referencetype = 'poster';
}

authors: ajustine retorquere


text:
Firefox Datepicker Bug

In FireFox the datepicker shows both the FireFox native datepicker calendar and our calendar. Possibly related to #138, it causes our Datepicker calendar to studder as it expands.
We need to remove the FF native datepicker for non-device screens only.
Originally I was going to do this with CSS but I think it would be smarter to use JS since we want the native datepicker to show based on the user agent rather than the screen size.
screenshot from latest FF:

@CheetoMao There isn't a pseudoclass in firefox for hiding that dialog, is there?

I don't think there is. I can search around a little more, but so far I haven't seen a -moz-datepicker-appearance that I could turn off

@CheetoMao and @prehnRA I don't see any functionality that would require input[type="date"] you could just switch to input[type="text"]. Problem solved?

@prehnRA correct me if I'm wrong, but I think the input[type="date"] is required b/c we are using the default native datepicker on devices. We definitely want to keep the functionality of letting devices use their own native solution for dates and times, but for desktop users we want to give them the datepicker component we created.

Yep. We use both in different situations.
On mobile, we use input[type="date"] and no custom things because iOS and Android have good, mobile friendly date pickers already.
On Chrome on desktop, we use input[type="date"] but hide the built in calendar and use a custom one with more functionality instead.
On Safari and some IEs on desktop, we use input[type="text"] and custom calendar because there's no actual support for datepickers on those.
Firefox could be treated like we treat Safari & IE if there's no way to turn off the built in calendar & we want to have consistent styles like we do on all the other desktop platforms.

@prehnRA does this PR fix the Firefox issue with the datepicker?
https://github.com/revelrylabs/possum/pull/167
Asking because Pairr is using the datepicker and seeing the same FF issue, if it's just a matter of them updating to the latest version I'd like to tell them that :)

it looks like it does. just double checking

Moving this to QA since I think this issue has been fixed, but I'd like to double check

This appears to be fixed. Closing

repo: revelrylabs/possum


text:
Please release a new version to pypi

I made some changes which have been merged but they aren't in the pypi release yet.
Could you release a new version to pypi ?

1.3.1 deployed with your latest pr added.

authors: crevetor rewardone

repo: rewardone/ayla-iot-unofficial


text:
Mac版求支持

如题，可以帮忙提供测试
另外。据说版权信息被提醒了，很有可能listen1也要成为过去式了

你好 我目前只有 Windows 电脑，这个对我来说调试会很麻烦。如果别人做了可以放这个 issue 下。

authors: cshanbo reycn