.verifyAssertion doesn't work

Hi, so I am trying to auth a use with steam with this endpoint
  const callback = req.query.callback;
  if (!callback) res.status(400).send("Callback is missing try to relogin.");
  const relyingParty = new openid.RelyingParty(
    `${req.protocol}://${req.get(
      "host"
    )}/api/auth/return/?callback=${callback}`,
    `${req.protocol}://${req.get("host")}`,
    true,
    true
  );
  const returnto = req.query["openid.return_to"];
  console.log(returnto);
  console.log(url.parse(returnto, true));
  console.log(`${req.protocol}://${req.get("host")}${req.url}}`);
  relyingParty.verifyAssertion(req.url, function (err, result) {
    if (err) {
      console.error(err);
      return res.status(500).send(err.message);
    }

    if (!result || !result.authenticated)
      return res.status(500).send("Failed to authenticate user.");
    if (
      !/^https?:\/\/steamcommunity\.com\/openid\/id\/\d+$/.test(
        result.claimedIdentifier
      )
    )
      return res.status(500).send("Claimed identity is not valid.");
    fetchIdentifier(result.claimedIdentifier)
      .then(function (user) {
        return res.status(200).json(user);
      })
      .catch(function (err) {
        next(err);
      });
  });
});

but I keep getting invalid url for context here is what it prints
Url {
  protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'localhost:6969',
  port: '6969',
  hostname: 'localhost',
  hash: null,
  search: '?callback=http://localhost:6969/inventory',
  query: [Object: null prototype] {
    callback: 'http://localhost:6969/inventory'
  },
  pathname: '/api/auth/return',
  path: '/api/auth/return?callback=http://localhost:6969/inventory',
  href: 'http://localhost:6969/api/auth/return?callback=http://localhost:6969/inventory'
}
http://localhost:6969/api/auth/return?callback=http://localhost:6969/inventory&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fsteamcommunity.com%2Fopenid%2Flogin&openid.claimed_id=https%3A%2F%2Fsteamcommunity.com%2Fopenid%2Fid%2F76561198864826098&openid.identity=https%3A%2F%2Fsteamcommunity.com%2Fopenid%2Fid%2F76561198864826098&openid.return_to=http%3A%2F%2Flocalhost%3A6969%2Fapi%2Fauth%2Freturn%3Fcallback%3Dhttp%3A%2F%2Flocalhost%3A6969%2Finventory&openid.response_nonce=2023-04-03T05%3A09%3A57Zo%2FvfhTT9EuE0TSbYtvY5GywmG00%3D&openid.assoc_handle=1234567890&openid.signed=signed%2Cop_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle&openid.sig=FIT%2F9WJ9V37HS2a2oyjm8fyyEHE%3D}
{ message: 'Invalid return URL' }

I went through the source code a little and I ma guessing that it's a problem with the query parameters checking

Sorry for the very late response here. New standards have replaced the OpenID 2.0 specification, which should now be considered obsolete. You should take a look at OpenID Connect, and maybe https://openid.net/specs/openid-connect-migration-1_0.html.
To answer your question: If they are different, they are different. The original return_to URL and the return_to URL in the assertion must match (scheme/host/path), and the assertion and the return_to URL must have the same parameters present with the same values.

Closing this as not a bug.

Closing this as not a bug.


Global pipelines filters

Closes: #1057
Description

Implemented the global Pipeline filter control. Slightly differs from UX due to the features of PF.
Screenshots

How Has This Been Tested?

Global Pipelines -- upload until you have enough for pagination. Filter away.
Test Impact

No tests at this time.
Request review criteria:

[x] The commits have meaningful messages (squashes happen on merge by the bot).
[x] Included any necessary screenshots or gifs if it was a UI change.
[x] Included tags to the UX team if it was a UI/UX change.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

/cc @kywalker-rh @vconzola @Gkrumbach07 @alexcreasy

Need to rename my branch -- seems GitHub is tied to it with a bunch of broken metadata.


Training, Prediction Service, Recommendation Service, Store UI and more

Feel free to make comments.
The documentation will be updated in the next few days.
Please take look at commits names - if they are not ok please let us know what's the naming convention :)

Merged with one minor comment to fix absolute path variable in the customer data generator.


Android Backdrop Dismiss Issue

When touch backdrop on android, bottom sheet not closed. Please fix this

@wafda I am too much busy with other projects. Just needs a PR :)

@wafda fixed in 0.0.35

@wafda fixed in 0.0.35

still not working on 0.2.0


Accessing the bucket

I can't access the bucket when trying to download the model from AWS.
This is the error message when i simply paste in the command from the instructions.
aws s3 cp --request-payer requester s3://pv4ger/NRW_models/inceptionv3_weights.tar models/classification/
fatal error: An error occurred (400) when calling the HeadObject operation: Bad Request
Did something change in the syntax for AWS or is the bucket not available anymore?
i got my Access tokens correct and the region set as eu-central-1.
Greetings,
Simon

Hi Simon,
The bucket is still available and I am able to execute the above mentioned command without an error on my local machine, i.e., I can download the model checkpoint. Maybe your aws cli is not set up correctly?
Best,
Kevin


add debug output to start_docker failure

Add output to debug start_docker failure.
Signed-off-by: Dong Chen<EMAIL_ADDRESS>

We can get failure reason from this PR.
# WARN[0000] [!]

# INFO[0000] libcontainerd: new containerd process, pid: 19

# INFO[0002] Graph migration to content-addressability took 0.00 seconds

# WARN[0002] Your kernel does not support swap memory limit

# WARN[0002] Your kernel does not support cgroup rt period

# WARN[0002] Your kernel does not support cgroup rt runtime

# WARN[0002] mountpoint for pids not found

# INFO[0002] Loading containers: start.

# WARN[0002] Running modprobe bridge br_netfilter failed with message: modprobe: can't change directory to '/lib/modules': No such file or directory

# , error: exit status 1

# WARN[0002] Running modprobe nf_nat failed with message: `modprobe: can't change directory to '/lib/modules': No such file or directory`, error: exit status 1

# WARN[0002] Running modprobe xt_conntrack failed with message: `modprobe: can't change directory to '/lib/modules': No such file or directory`, error: exit status 1

# INFO[0002] Default bridge (docker0) is assigned with an IP address <IP_ADDRESS>/16. Daemon option --bip can be used to set a preferred IP address

# Error starting daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: Failed to inject docker in OUTPUT chain: iptables failed: iptables --wait -t nat -A OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst <IP_ADDRESS>/8: iptables: Resource temporarily unavailable.

#  (exit status 4)

We may consider retrying start_docker to mitigate test failure.
ping @docker/core-swarm-maintainers. I think this PR is useful to collect start_docker failures. Let's add it to tests.


Enable trackclick events in igv-jupyter

When a feature is clicked, this event would report the start and end position of the feature.

Closing as this is stale.  Good idea but there are so many good ideas, and so little time.


Generate SQL not available without specifying schema, even though default schema already defined in driver

Using DBeaver 5.3.1 against Microsoft SQL Server 2017 using the latest Microsoft SQL Server JDBC Driver.
When you specify a default schema here:

You can see "dbo" specified as default schema.
This is great. You can run SQL statement such as this:
select * from specialties and it will run successfully.
However, when right clicking a row and hitting "Generate SQL" you get the following:

It seems it can't resolve table, even though the "Select * from specialties" sql is successful in retrieving data.
In order for the Generate SQL menu to properly appear you have to type:
"select * from dbo.specialities".
However, you should not have to do that, because "dbo" schema set in driver defaults.
It seems the fix is easy for this. If Schema defined in driver, then use that instead of forcing user to type in "dbo.specialities" for generate SQL to function properly.

In fact you can't change default schema on SQL Server (at least easily). It is always dbo.
Setting "Default  schema" in connection properties changes default database actually.
Anyhow, there is a bug in SQL Server extension (it doesn't use schema dbo as a default schema). Thanks for noticing.


github.com/golang/protobuf deprecated

https://github.com/golang/protobuf/pull/1306 deprecates github.com/golang/protobuf in favor of google.golang.org/protobuf. Any plans to remove the deprecated dependency?

https://github.com/kubernetes/kubernetes/issues/96564 tracks all the issues around removing this deprecated dependency. It is very involved, unfortunately, and not at the top of the priority list.


Add some render box updates

Description
Some improvements on our render object widget.

Made game loop call dispose on the ticker on detach.
Made the render object a repaint boundary, avoid an entire screen that contains a GameWidget to repaint every frame.
Made the render object itself as expanded enabling the removal of that RenderConstrainedBox

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors and are passing (See Contributor Guide).
[x] My PR does not decrease the code coverage, or I have a very special case and explained on the PR description why this PR decreases the coverage.
[x] I updated/added relevant documentation (doc comments with ///) and updated/added examples in doc/examples.
[x] I have formatted my code with ./scripts/format.sh and the Flame analyzer (./scripts/analyze.sh) does not report any problems.
[x] I read and followed the Flame Style Guide.
[x] I have added a description of the change under [next] in CHANGELOG.md.
[x] I removed the Draft status, by clicking on the Ready for review button in this PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flame users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md).
[x] No, this is not a breaking change.

Related Issues

@renancaraujo does this fixes #834 ?

@renancaraujo does this fixes #834 ?

No


Compatibility note for tracelogging provider

I just lost a week of time trying to get tracelogging to work on downlevel Win7.  After trying many things, it turned out that this compatibility notice is in TraceLoggingProvider.h and that you can set a simple directive to change the compilation behavior to target arbitrary Windows SDKs.  A note in the docs would have saved me some time, so I'm leaving it for the next dev.

@zachChilders : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Karl-Bridge-Microsoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Karl-Bridge-Microsoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

#sign-off


Add android support for the package

Minimal setup:
SizedBox(
               width: 150,
               height: 34,
               child: AdaptiveDatePicker(
                 type: AdaptiveDatePickerType.cupertino,
                 initialDate: selectedDate,
                 firstDate: DateTime.now(),
                 lastDate: DateTime.now().add(const Duration(days: 10)),
                 onChanged: (date) {
                   setState(() => selectedDate = date);
                 },
               ))

Hi @arshkinana, this plugin exposes the existing native UI pickers in flutter. That's why it isn't possible to show Cupertino picker on Android.


Team Services Accounts tags

Can tags be applied to Team Services Accounts from the Azure portal?

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

ID: 52303279-70fd-a0f6-cc6f-96bf73ed8c32
Version Independent ID: cb30fbe3-b069-2665-d8da-9f714a23290a
Content: VSTS billing FAQ
Content Source: docs/billing/vsts-billing-faq.md
Service: unspecified
GitHub Login: @chcomley
Microsoft Alias: chcomley

@aaronboock  Thanks for sending your question - I've updated the Billing FAQ for others' reference and it should be live sometime this afternoon. To answer your question, no, tags cannot be applied to Ream Services Accounts from the Azure portal. However this feature is on our backlog to add in the future. If you wouldn't mind sharing, what are you using tags for and how would it be valuable to tag the VSTS account in the Azure portal? Thanks!

@aaronboock I’d love to get a better picture of what you need to do and see how we might be able to enable this in the future. Can you contact me (james.rice<EMAIL_ADDRESS>and we can get together for a discussion over Skype?
From: chcomley<EMAIL_ADDRESS>Sent: Thursday, April 19, 2018 10:58 AM
To: MicrosoftDocs/vsts-docs<EMAIL_ADDRESS>Cc: James Rice<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/vsts-docs] Team Services Accounts tags (#585)
@aaronboockhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faaronboock&data=02|01|James.Rice%40microsoft.com|036b5dcd2c1d44e07cc508d5a61f20ef|72f988bf86f141af91ab2d7cd011db47|1|0|636597574980593644&sdata=gNQpbeTEyTRIst%2BuEiNjyzETLMo%2BxXMAguWK9ilnABg%3D&reserved=0 Thanks for sending us your question - I've updated the Billing FAQ for others' reference and it should be live sometime this afternoon. To answer your question, no, tags cannot be applied to Team Services Accounts from the Azure portal. However, this feature is on our backlog to add in the future. We'd love to know more about your specific needs - adding @JuniorIcehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJuniorIce&data=02|01|James.Rice%40microsoft.com|036b5dcd2c1d44e07cc508d5a61f20ef|72f988bf86f141af91ab2d7cd011db47|1|0|636597574980593644&sdata=xsGltHSJUpGNUW5B%2Fas0BhZfeuLKqjNijf8gHl6sEFg%3D&reserved=0.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fvsts-docs%2Fissues%2F585%23issuecomment-382816629&data=02|01|James.Rice%40microsoft.com|036b5dcd2c1d44e07cc508d5a61f20ef|72f988bf86f141af91ab2d7cd011db47|1|0|636597574980603649&sdata=CFVU5%2Fb3ybSVZ67sVlZzLVi5k5aYMOpNvlHjeuxya8k%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAWKwy4cUfkIjNdaV3tkpo9yf96m03Qxsks5tqNA3gaJpZM4Tb6aO&data=02|01|James.Rice%40microsoft.com|036b5dcd2c1d44e07cc508d5a61f20ef|72f988bf86f141af91ab2d7cd011db47|1|0|636597574980603649&sdata=LxhZDb6d5EPU90%2FuO8eFSVnyUte9AXfY4pMYy%2BTznno%3D&reserved=0.

@JuniorIce, checking to see whether you have seen Aaron's response? Aaron, please contact James at<EMAIL_ADDRESS>Thank you.

Aaron, would love to chat with you in more detail about your needs if you’re available—can you provide your email address?
From: chcomley<EMAIL_ADDRESS>Sent: Thursday, May 3, 2018 8:41 AM
To: MicrosoftDocs/vsts-docs<EMAIL_ADDRESS>Cc: James Rice<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/vsts-docs] Team Services Accounts tags (#585)
@JuniorIcehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJuniorIce&data=02|01|James.Rice%40microsoft.com|2de1a7b67d8b4f4f3ded08d5b10c3a75|72f988bf86f141af91ab2d7cd011db47|1|0|636609588434445539&sdata=wOz56jWKjAtyoXckeUI0Yv33OT4zuq%2Bx7c0FxfIEmVo%3D&reserved=0, checking to see whether you have seen Aaron's response? Aaron, please contact James at james.rice<EMAIL_ADDRESS>Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fvsts-docs%2Fissues%2F585%23issuecomment-386339646&data=02|01|James.Rice%40microsoft.com|2de1a7b67d8b4f4f3ded08d5b10c3a75|72f988bf86f141af91ab2d7cd011db47|1|0|636609588434455543&sdata=aaW2DZbCSjriblo3P4Dvd8viBp9D8RGNfyY2NIIEBNk%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAWKwy5cRcWfSV7-lQC31UfuZzqmstW31ks5tuyT5gaJpZM4Tb6aO&data=02|01|James.Rice%40microsoft.com|2de1a7b67d8b4f4f3ded08d5b10c3a75|72f988bf86f141af91ab2d7cd011db47|1|0|636609588434455543&sdata=nAVSgiqR87wG9HolY4RSUWEgxyXqm%2FOyMpD5%2FykWgrI%3D&reserved=0.

Regards,
Aaron Boock
Hennepin County - IT Systems Engineer
300 South 6th Street
Minneapolis, MN 55487-0005
612.596.0205 | Office
612.290.2089 | Mobile
aaron.boock<EMAIL_ADDRESS>Disclaimer: If you are not the intended recipient of this message, please immediately notify the sender of the transmission error and then promptly delete this message from your computer system.


Should ap be parallel?

Strictly speaking this would violate Fantasy Land and Static Land requirements.
Here is an explanation I wrote in Fantasy Land gitter room recently:

So the spec require:

If a data type provides a method which could be derived, its behaviour must be equivalent to that of the derivation (or derivations).

Also spec says that ap can be derived as function(m) { return this.chain(f => m.map(f)); }. In case of tasks the derived ap will execute tasks in sequence. So basically if provided ap is parallel then it's not equivalent to derived ap. Of course we could choose to consider sequential/parallel execution as an optimization unrelated to equivalence, since we basically can define equivalence as we like. But I think that would be wrong, sequential/parallel execution is related to equivalence.

But I can't think of actual practical consequence of this violation. And on the other hand it would be nice if traverse of types other than array would execute tasks in parallel (we have built-in kinda traverse for arrays — Task.parallel()).
Also other libraries like Fluture or data.task have parallel ap and seem to not have any trouble with it. @Avaq @robotlolita Maybe you can share some thoughts?

Oh boy, created the issue in a wrong repo. Here is correct one https://github.com/rpominov/fun-task/issues/28


Handle Subscription Complete

What kind of change does this PR introduce?
Handle subscription complete properly.
What is the current behavior?
Errors out when a complete message is sent.
What is the new behavior?
Return from function so subscribe complete and websocket is cleaned up.
Does this PR introduce a breaking change?
no
Other information

@pizzapanther thanks for the contribution to the project, could you please add a unit tests for the proposed changes?


square root question using binary search . answer is in java

it is very conceptual question helpful for students .

Is this ok or not


Update to a Java 9+ Gradle wrapper

World has moved away from Java 8 now, and Gradle 3.3 is also relatively old, version 6.0 has been around for a year !

The JDK 8 from Oracle site is missing lib/tools.jar. The JDK8 from Red Hat on the other hand was complete. https://developers.redhat.com/products/openjdk/

Another workaround:
run as admin - npm install --global windows-build-tools
=================================
And now it wants to find a Visual Studio C++ version ???
You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows

After the "gyp" fix I managed to compile, but there's something left out of the instructions.
It failed on src-gen directory whihc is missing.
Cannot find module 'C:\eclipse\git\theia-xtext\app\src-gen\backend\main.js'


MMapDataAccess should synchronize on its ByteBuffers by itself

MMapDataAccess now synchronizes on its ByteBuffers by itself, and is now as thread-safe as the other implementations. (That is, mostly, except for create/close/ensureCapacity and such.)
Remove the dimension of "synched" or "not synched" from DataAccess.
Remove tests which tested this dimension.
Remove some unused code.

Benefits:

One whole concept less.
Clarifies that we do read/write locking externally, i.e. on the layer of GraphHopper, not on the layer of DataAccess.
Cannot accidentally be made incorrect by using more than one (reading) thread without using "_SYNC".

Drawbacks:

Possibility of being slower when running single-threaded because of the overhead of synchronized{} blocks as such, without thread contention. No idea how likely that is.

Counter-argument against drawback:

That is not as bad as being generally thread-safe except with certain parameters.

How can I test Android performance?

Thanks, this looks better.

How can I test Android performance?

That is tough. I have not done this properly/scientific. Also there are so many devices where we could test. So I would just route from two identical places a few times and repeat the same for the change or write a bit code to do this in the demo (e.g. when click&pressing some device button). And then @devemux86 could repeat. Or we could see if there are CI's that run Android somehow deterministically where we could include this in the build process.

BTW: For the JVM I would exclude any problems due to synchronized. It is VERY fast even with synch. But for dalvik I have no idea. (What a mess Google&Oracle introduced with this ...)

This improves the situation for situations on the server side with only a few memory. So although I didn't test concurrent scenario (should be much better) but single threaded is nearly unchanged. So I'll merge and we later see & test different Android devices.

method
RAM_STORE
old MMAP
old MMAP_SYNC
new MMAP

routing
211
254
274
277

routingCH
1.9
2.0
2.8
2.9

routingLM8
15
18
32.5
33

routingLM4
16
17.3
29
27.6

I read this table as "has approximately the same performance as MMAP_SYNC". Right?

Nice results!

We should also do an experiment with ThreadLocal, where each thread takes its own mappedByteBuffer.slice(). I'm pretty sure that doesn't use more resources at all and should be closer to "old MMAP" than to "new MMAP".

One more thing: When testing this myself, I noted that MMap needs a while to "warm up" (understandable, since the OS only pages in the segments it needs).
Did you discard the first couple of requests? I think that would be fair to MMap.

I read this table as "new MMAP has approximately the same performance as old MMAP_SYNC". Right?

Yes, but _SYNC should be worse than new mmap for multiple threads. How much I have not tested though

I'm pretty sure that doesn't use more resources at all

It will need a new Buffer list for every thread, so 0 new resources is not 100% correct ;)

ThreadLocals are a bit scary, but I think if one googles thoroughly, one can avoid the one or two pitfalls

Currently I do not see a major pain and so I would keep using in-memory stuff as ThreadLocal can be indeed tricky and memory mapped stuff is also a bit ugly at times and you cannot disable swapping :)
And there is only one drawback with in-memory: the GC has a bit problems with huge static memory. But G1 is not that bad and maybe the Shenandoah GC will be better :)

Did you discard the first couple of requests? I think that would be fair to MMap.

If you use the Measurement class this is already done and should be done for in-memory too as the JVM needs a warmup. But you have to change "forDesktop" to change to MMAP DAType.
Also there is also QueryTorture.java with which you can real queries with many threads.
BTW: I would do perf measurements from scratch these days with jmh


How do you @deprecate without a library element?

For example, assume package:foo/bar.dart:
@deprecated
library foo.bar;

What is the ... equivalent, without a library declaration?

There is no way to annotate the library without having a declaration for it.
That's slightly annoying, but it happens so rarely that it's not really an issue.
I know the DartDoc tool assumes that a doc-comment preceeding the first import is a library comment if there is no library declartion. I don't know if anyone does the same with annotations. It's not strictly correct, but it might be useful.

Given that users rarely want to document directives, always associating the first doc comment with the library seemed like a reasonable choice. But it isn't clear that users don't and won't want to have annotations on directives. We could potentially special case @deprecated, but I'd prefer not to (unless we do something like add a @Target('library') annotation for annotations :-).

@bwilkerson I think it's easier to just add a library declaration instead.
Or do you plan to get rid of library entirely?

There are no current plans to remove the library declaration at the current time.
Having a place to put documentation and annotations is one reason for keeping it.

What if we were allowed to omit library name?
@deprecated
library;

I have no personal problem with that, bit it's a very low-priority change since you can just write @deprecated library deprecated_library_foo;.

@matanlurey Has your question been answered? (Should we close this issue?)

I don't like the answer, but yes. It feels like we made a change to the specification without thinking about how it would impact tooling. I like @a14n's suggestion as a way to somewhat recover, though.


Platformio version has dependency for "arduino" which is spurious

When adding this library with Platformio, it tries to load a dependency for arduino, and gives a warning.
Library Manager: Installing braydenanderson2014/Hashtable
Unpacking  [####################################]  100%
Library Manager<EMAIL_ADDRESS>has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing Arduino @ *
Library Manager: Warning! More than one package has been found by Arduino @ * requirements:
Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager: Please specify detailed REQUIREMENTS using package owner and version (shown above) to avoid name conflicts

It will always throw a warning unless you specify an Arduino library because all the code depends on Arduino.h. The warning can usually be ignored as the compiler usually selects one anyway and it hasn't had any problems. I've never specified an Arduino.h library and have been fine.

This does not seem to be what "other libraries do" when they require Arduino.
On my pretty-vanilla installation, this chases down anything called "arduino" and finds six unrelated candidates:
Library Manager: Installing Arduino @ *
Library Manager: Warning! More than one package has been found by Arduino @ * requirements:
Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager:  -<EMAIL_ADDRESS>Library Manager: Please specify detailed REQUIREMENTS using package owner and version (shown above) to avoid name conflicts
Unpacking  [####################################]  100%
Library Manager<EMAIL_ADDRESS>has been installed!

Which seems to install: https://registry.platformio.org/libraries/mbed-aluqard/arduino It ends up working because the spurious library is silently ignored, but it is always downloaded as if it was a dependency.
I also know that other platformio libraries do not need to specify "arduino".

Most other libraries probably specified an exact arduino library to use. The reason why I didn’t is I’ve never used any of them and since it was not required I chose to not force a version. But the warning is to be expected and can safely be ignored. The code will work regardless. But if you care enough all you have to do to fix it is go into the library.json file for the library and put the author of one of those arduino libraries name in front of the Hashtable.
Example:
mbed-aluqard/arduino@ *
Or
mbed-eduardog26/Arduino@ 0.0.0
The compiler will no longer throw a fit unless you download any other libraries with the same issue. Which all my libraries do. But as I stated, it will work perfectly fine without specifying an exact arduino library. You’ll just have that warning pop up every time.
You can also specify a version within your platformio.ini

Ok, maybe I can be clearer. This isn't about ambiguity of dependencies, that dependency is just not needed and actually ends up doing something unwanted and potentially bad.
If you load: https://registry.platformio.org/libraries/braydenanderson2014/Hashtable it lists "arduino" as one dependency, SimpleVector as the other. You won't see "arduino" in any other platformio library dependencies, including ones that require Arduino.
Since that isn't really a platformio library, the only matches it finds are pretty obscure. And worse, all six matches for that dependency (see above) are for the (defunct) mbed architecture, regardless of the architecture the user is compiling for. At best that's harmless, at worse it might break if it gets compiled in.
So when building HashTable, Platformio picks one of those six mbed-arduino libraries semi-randomly, but none of them are correct. There are no library dependencies on platformio that match "arduino" that should be pulled in to compile HashTable.
As for the requirement for the Arduino.h file, in Platformio, setting framework to "Arduino" installs the correct Arduino.h for the user's platform, in my current case, esp32, so you get the file installed by the framework chosen, in my current case:
`/home/user/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h'
The contents are very architecture specific so having an mbed one called into my esp32 project is... undesirable.
As for "going into the library.json file", yes, but that is transient. We would have to stop using platformio for your library and include a local copy, frozen at this version, that we also have to distribute to compile properly elsewhere. If I just send my code normally to somebody else, they will get the same result as above when their Platformio loads your library.


Data integration plots do not match config message

Background
Link to issue
https://biomage.atlassian.net/browse/BIOMAGE-544
Link to staging deployment URL
Coming soon
Links to any Pull Requests related to this
N.A
Anything else the reviewers should know about the changes here
All changes are still local state, not pushed to redux yet.
Changes
Code changes
Definition of DONE
Your changes will be ready for merging after each of the steps below have been completed:
Testing

[X] Unit tests written
[X] Tested locally with Inframock
[X] Deployed to staging

To set up easy local testing with inframock, follow the instructions here: https://github.com/biomage-ltd/inframock
To deploy to the staging environment, follow the instructions here: https://github.com/biomage-ltd/biomage-utils
Documentation updates
Is all relevant documentation updated to reflect the proposed changes in this PR?

[ ] Relevant Github READMEs updated
[ ] Relevant wiki pages created/updated

Approvers

[ ] Approved by a member of the core engineering team
[ ] (UX changes) Approved by vickymorrison (this is her username, tag her if you need approval)

Just before merging:

[ ] After the PR is approved, the unstage script in here: https://github.com/biomage-ltd/biomage-utils is executed. This script cleans up your deployment to staging

Optional

[ ] Photo of a cute animal attached to this PR

Could you add the staging environment?


[HW]

Name:
Email<EMAIL_ADDRESS>Linkedin Profile: <https://www.linkedin.com/in/mukesh-ranjan-a4a9aa15/
Cassendra_workshop_Homework_12_May_2021.docx

I am attaching my Homework here.
Attach the homework screenshots below for both step II and step III:

Hi there Mukesh. Thank you for submitting homework. Please include a screenshot of the last and completed step from the CRUD exercise in the repo as well. :)

Closing due to inactivity.


Use first nonempty buffer in vectored I/O

Previous implementation would use the first buffer even when it was
empty and other nonempty buffers are provided. This could result in
Ok(0) return value which has otherwise a special meaning. The new
implementation uses the first nonempty buffer instead to avoid the
issue.
Previous implementation would return early if no buffers are provided.
The new implementation delegates operation using an empty buffer. This
gives an implementation an ability to decide how an empty read / write
operation should behave.
This change aligns the implementation with synchronous version of those
traits.

Thanks!


[GHSA-h63v-hw6g-x8hp] An issue in the index.js decryptCookie function of cookie...

Updates

Affected products
CVSS v3
Severity
Source code location
Summary

Comments
Adding Title, CVSS score, product, source code URL

Hi there @mathysEthical. Thanks for the PR, but can you help walk me through the attack here? Looking at your gist (which is secret?)
https://gist.github.com/mathysEthical/f45f1503f87381090e38a33c50eec971
also shared as an issue
https://github.com/ebourmalo/cookie-encrypter/issues/9
The source reads as
const express = require('express');
const cookieParser = require('cookie-parser');
const cookieEncrypter = require('cookie-encrypter');
const app = express();

app.use(cookieParser("NicePasswordHereItIsAGoodSecret!"));
app.use(cookieEncrypter("NicePasswordHereItIsAGoodSecret!"));

app.get('/login', function(req, res) {
    res.cookie("role","guest")
    res.send("logged in as guest")
})

app.get("/admin",(req,res)=>{
    console.log(req.cookies)
    if(req.cookies.role=="admin"){
        res.send("Access granted.")
    }else{
        res.send("Access denied.")
    }
})

app.listen(80)

There's a claim that loading /login gives the user a cookie with the value
e:87c3aa62cf38214f7c25d66eacb4c95a:9df91af30fafe915f3ef71069653d4c1

and that 87c3aa62cf38214f7c25d66eacb4c95a is an IV
The write up then says We xor it by guest and by admin to change do the bit flip attack. I'm not sure I follow on what that means. The link provided introduces two new numbers as hex values and the origin of those numbers is also unclear to me. Can you help clarify?

Hello @darakian, sorry for the typos I just fixed them:
We XOR it by "guest" and by "admin" to do the bit flipping attack, here is a link to help
The two new HEX strings are the HEX representations of "guest" and "admin" followed by null bytes to prevent the XOR operation repeating.
Here is a link to get them
The gist was set to private to report the vulnerability, now that it has been published I just made it public 😄
If you have any other questions, feel free to ask 😄

The two new HEX strings are the HEX representations of "guest" and "admin" followed by null bytes to prevent the XOR operation repeating.

Oh I see. Literally the strings guest and admin as hex. Gotcha. Ok, so the attack is roughly

Get a cookie from the system which embeds the guest string in the cookie itself.
Grab the IV 87c3aa62cf38214f7c25d66eacb4c95a which is presented as is in the cookie
XOR 87c3aa62cf38214f7c25d66eacb4c95a with the hex of guest to remove it and admin to add it
Use new cookie which now has the admin string/role stored in it
That certainly reads like a cryptographic failure to me if so.

Tested it locally as well and it worked. My local IV was 2bfb2d5833430308496df6b0f05d72a5 and looking at the source it does look like they're using a randomized IV.
https://github.com/ebourmalo/cookie-encrypter/blob/master/index.js#L36
I think this advisory could do with an expanded description though. Maybe the title could be something like Bit flip attack in cookie-encrypter or similar and the description could add something to the effect of due to a weakness in the encryption method used in cookie-encrypter an attack can use the world visible IV to edit encrypted cookies without decrypting the cookie itself.. I'm sure there's a name for this sort of attack as well which would be good to include (along with a reference maybe).
What do you think?

Yeah I like your suggestions, feel free to add them 😄
The attack is called AES CBC bit flipping and I think the CWE is CWE-325: https://cwe.mitre.org/data/definitions/325.html

Right on. I've made a few edits to the merge on our end. Let me know if you're good with them 👍

Right on. I've made a few edits to the merge on our end. Let me know if you're good with them 👍

That's perfect ! Thanks @darakian


feat: move LocalParametricStudy from parametric to PyFluent

closes https://github.com/ansys/pyfluent/issues/3051, https://github.com/ansys/pyfluent/issues/3063

LocalParametrictStudy has run_in_fluent method which calls  _run_local_study_in_fluent  therefore we need to copy all other dependent code of ParametricStudy*.
We can change name and location of parametric.py if required.
Add tests.
Moved search.py under core.
Resolved Run API codegen failure by installing reader package.

I don't think we shall include DesignPoint/ParametricStudy/ParametricProject classes, those can be replaced by settings API.

https://github.com/ansys/pyfluent/pull/3070


FloatingAction button shows the highlighted color for the normal state

The highlighted state remain when you touch the FloatingAction button and without releasing it you swipe and another view appears.
Then the button keeps that color similar to the highlighted state

Thanks yeradis, it is a bug, we will fix it soon

We don't see it on the latest version of this library. @yeradis Please check and let me know if you still having this issue.


Update dependency jest-watch-typeahead to v0.6.5

This PR contains the following updates:

Package
Type
Update
Change

jest-watch-typeahead
devDependencies
patch
0.6.4 -> 0.6.5

Release Notes

jest-community/jest-watch-typeahead
v0.6.5
Compare Source
Bug Fixes

remove test files from published module (db522ac)

Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (0.6.5). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Feature renderer mgmt

If it's approved, I'll discard the conflicting cloth example scene and redo it from a new branch off the merged develop.


Cannot play video from Raw asset folder

The video player does not seem to be playing video from raw asset folder.
I'm using the following code to set up the playing of the video:
        int resID = context.getResources().getIdentifier(fileName , "raw", context.getPackageName());

        filePath = base + resID;
        videoView.setUp(filePath, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL, name);

This resolves and plays the video fine using Androids native VideoView.setVideoURI(), however, I can't get JC to play any video from raw?
Thanks

jcvd.setUp(URI , ...);//set up with uri
I will do it as soon as possible.

Thanks a lot! 👍

@lipangit  can you tell me how to rewrite setUp method to support URI ？

no way in this Architecture，
You  can download source code and change it.
next version will fix the problem, next version you can custom mediaplayer. see media_interface branch

@lipangit  thanks,another question is can this player play the avi format video? my recent project needs put the avi format video in the asserts or raw folder and play it.

no, support fomate is all here

@lipangit  any update related to this?

no update.  It just put the url to the MediaPlayer


fheroes2: 1.0.0 -> 1.0.1

Changes: https://github.com/ihhub/fheroes2/releases/tag/1.0.1
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 215649 run on x86_64-linux 1

1 package built:

fheroes2


Support unix sockets for faster internal connections

We plan to have one machine with luigid running, with the web-gui protected by Nginx auth.
It would be great if we could use a unix socket for improved internal networking performance both for the nginx proxy and the luigi workers.

Good idea – feel free to put together a pull request!

@graingert Did you have a benchmark that show that the tcp connection is a bottleneck in your case? I have the impression it won't make that much a difference. Maybe for the worker using a connection pool (are we doing it at the moment?), would be easier the implement and would have benefice for more use cases.

we also don't need to make a firewall rule

Hi @graingert , can you give an example about how to write a unix-socket for luigid?

@tashrifbillah sorry, I don't use this library anymore

For future Googlers, here is my show and tell on this topic:
https://groups.google.com/g/luigi-user/c/PTLkefG8oNI


Suite name needs to match file name in CCPP SDFs

The current CAMDEN infrastructure requires that an SDF file name matches the style of suite_<name>.xml, where <name> is the name of the physics suite as listed in the name attribute in the SDF file itself.
However, for both suite_kessler.xml and suite_held_suarez_1994.xml the file name and suite name are mismatched, which will cause CAMDEN to fail.  Thus the suite name should be updated in those two files to match the file names.
Along with that change, this SDF naming rule should be added to this repo's wiki so that future developers know of this requirement ahead of time.

This is no longer required due to changes in the CAMDEN infrastructure, so am closing this issue for now (although it would be good to generally get agreement between the file name and suite name just to maximize consistency).


fix: move constant valuse inside class

this commit fixes below issue on latest php versions
Use of undefined constant BCCOMP_LARGER - assumed 'BCCOMP_LARGER' (this will throw an Error in a future version of PHP)

have you tested what you have changed in this commit? it works properly?

please test your changes and tell me if it works correctly.

hi,
yes I've tested my change and it works correctly.

thanks for your contribution.


[Bug] [Relax] Segfault error when parse the Relax IR

Actual behavior
[16:49:04] /software/tvm-lunder/src/runtime/logging.cc:390: TVM_LOG_DEBUG enables VLOG statements in 'ir/transform.cc' up to level 1
[16:49:04] /software/tvm-lunder/src/runtime/logging.cc:390: TVM_LOG_DEBUG enables VLOG statements in 'relay/ir/transform.cc' up to level 1
Segmentation fault (core dumped)

Steps to reproduce
from tvm.script import ir as I
from tvm.script import tir as T
from tvm.script import relax as R

@I.ir_module
class Module:
    @T.prim_func(private=True)
    def multiply_by_two(A: T.Buffer((16,), "float32")):
        for i in range(16):
            A[i] = A[i] * T.float32(2)

    @R.function
    def main(A: R.Tensor((16,), dtype="float32")) -> R.Tensor((16,), dtype="float32"):
        cls = Module
        args: R.Tuple(R.Tensor((16,), dtype="float32")) = (A,)
        gv1: R.Tensor((16,), dtype="float32") = R.call_tir_inplace(cls.multiply_by_two, args, out_sinfo=R.Tensor((16,), dtype="float32"), inplace_indices=[0])
        return gv1
m = Module

cc @Lunderberg @junrushao

I've submitted separate PR https://github.com/apache/tvm/pull/17242 which should provide a better error message (instead of a segfault) when this occurs.
For (2), we may be able to improve it by checking isinstance(args.struct_info, TupleStructInfo) rather than isinstance(args. relax.Tuple).  This way, a tuple that was defined earlier in the function wouldn't be modified, and would produce an error message at an earlier point.  The normalization (which would produce the required in-line Tuple) is suppressed during TVMScript parsing, since TVMScript is frequently used for writing test cases that violate Relax assumptions.  Maybe we should tie the normalization to the existing check_well_formed flag, so those tests usually disable the well-formed checks as well.

And #17243 should address (2) by improving the error message.

@Lunderberg Thanks for your fixing. Segfault is a dangerous behavior, fixing it with an error message is a good strategy. Also thanks for your efforts in improving the well-formed checking for relay IR which is also very meaningful.


Exception while running continuous ingest

Encountered this error/exception while running continuous ingest. It looks like it could be a normal/expected behavior.  If so, the exception should stop being thrown and a debug message should be printed instead.
2018-07-17 02:52:03,429 [util.NamingThreadFactory] ERROR: Thread "tablet assignment 2" died Active assignment already exists for 2;49999;48ccf
java.lang.IllegalStateException: Active assignment already exists for 2;49999;48ccf
        at org.apache.accumulo.tserver.ActiveAssignmentRunnable.run(ActiveAssignmentRunnable.java:54)
        at org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
        at java.lang.Thread.run(Thread.java:748)

This is a duplicate of #547


chore: remove Page.Header console component

Part 1 of https://github.com/TBD54566975/ftl/issues/2490
Deletes the Page.Header component, which is an artifact of a bygone era.
Since the timeline page also had a time range filter embedded in the header, I moved that over to the left-hand-side filter panel. It just need a tiny bit of resizing to fit.

Legend! Thanks for cleaning this up!
I'm guessing we should nuke Page at some point too maybe? Or at least make sure it's what we actually want.

Yeah I was looking around at the usage and one of the main ones was the deployment page, which I'm about to rewrite anyway, so I'm going to just nuke Page after that to avoid churning CSS fixes.


Adding HtmlHeadElement to web-sys features results in missing callable

I'm getting the following error (Chrome):
LinkError: WebAssembly.instantiate(): Import #11 "wbg" "__wbg_insertAdjacentHTML_8d62cc5711ec5764": function import requires a callable
My project works fine if a do not add "HtmlHeadElement" to the web-sys feature list (i'm calling insert_adgencent_html without problems).
Is there another feature I have to add together with "HtmlHeadElement"? I tried looking online for a solution to this problem but could not find one.

I was unable to reproduce this. A minimal example would be appreciated.

I was unable to reproduce this. A minimal example would be appreciated.

I just figured it out, and I felt really bad. I was just forgetting to move the generated .js file along with the .wasm file. I'm really sorry for causing you trouble.


cacheable

Is there a reason this loader does not opt in to being cacheable?

Nope. You're right. We should add a cachable flag @flootr

The cacheable flag tells webpack that the loader has not side-effects. When the input hasn't changed, the previous output can be reused.

What side-effects could it have?

From a technical point of view, calling cacheable() itself is a side-effect

The cacheable flag tells webpack that the loader has no side-effects.

Actually the webpack docs just states it must be deterministic:

A cacheable loader must have a deterministic result, when inputs and dependencies haven’t changed.

So my question should have rather been: is there anything that doesn't make it deterministic?

Yes, deterministic is the correct word (in contrast to "without side-effect").

is there anything that doesn't make it deterministic?

Nope

Since this is assigned to @flootr i guess you guys don't need a PR for it?

Since this is assigned to @flootr i guess you guys don't need a PR for it?

If you want to, go for it! 👍  Would really appreciate it.


Reduce bundle size?

Not sure how practical this is given the dependencies but...
<EMAIL_ADDRESS>

Hi @dandv, I can look into reducing this in 1.0.6 sometime this week, while polishing up some of the Typescript errors. react-wordcloud uses d3 very lightly, so it's possible to drop that dependency entirely.

Hi @dandv, I broke out the d3 dependencies in v1.0.6, and the package size is roughly halved.  Thanks for raising this up! When v1.0.6 is captured in bundlephobia later, you can check again.  Closing the issue!


Bump appVersion

Trigger a rebuild with the latest version of dependencies

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Variable.local_gradients indented behavior is unclarified

class Variable:
    "To be used in calculations to be differentiated."

    def __init__(self, array, local_gradients=[]):
        self.array = array
        self.local_gradients = local_gradients

this snippet would lead to:
>>> var1 = Variable()
>>> var1.local_gradients.append(1)
>>> var2 = Variable()
>>> print(var2.local_gradients)
'[1]'

This generally could lead to hard-to-track bugs, unless one really is in need of this behavior, it would be advisable to change it or else at least clarify it in the code comments or docs that Variable has a class variable that is shared between instances.

Thank you, good point.
I see two options for the fix:
a)
def __init__(self, array, local_gradients=None):
    self.array = array
    self.local_gradients = local_gradients if local_gradients else []

b)
def __init__(self, array, local_gradients=()):
    self.array = array
    self.local_gradients = local_gradients

a) is consistent with local_gradients being a list when defined in SmallPebble operations.
b) is shorter and more readible.
Neither provide enough information to know what local_gradients should contain.
I'm going with b), for readability, and because I don't think the inconsistency is too bad. I.e. local_gradients can be a list or a tuple.
I did originally use tuple for local_gradients, but switched to list for readability, e.g. [(a, b)] vs ((a, b),).


Add ownerreference for the new created BuildRun

Right now, we have to create a Build CR and a BuildRun CR to trigger the real build process.
But in the logic, there is no place or controller to set the OwnerReference for BuildRun.
It means, when the Build is deleted, the related BuildRun won't be deleted.
We need to use the Admission Controllers from BuildRun Controller to set the OwnerReference when the end-user create the RuildRun CR manually.
Pls refer:
https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/

Hi @sbose78 ,
I did some investigation today. I think there are two ways to add the ownerreference for the new created buildRun.

Use mutating admission webhook.
But I think, we just need to add ownerreference for buildRun, add a new wekhook deployment and build process just for this ONE ownerreference requirement is too HEAVY now

2, Set the ownerreference in buildRun controller first.
When a new buildRun is created, buildRun controller notice that and add the ownerreference at the beginning of controller reconcile logic.
Such as add:
  ownerReferences:
  - apiVersion: build.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Build
    name: buildpack-nodejs-build
    uid: 9b197859-7bdf-4d58-ac47-f7aea2564bbd
  resourceVersion: "6456381"

to this buildRun. And I have checked, the generation won't be increased if I add this ownerreference. So we can add it safely.
I prefer to use the second way because it is easy.
But I don't know what we plan to implement in the issue Validate the Build on creation (https://github.com/redhat-developer/build/issues/83)
Will we introduce the validating webhook to do that? (Also FYI @qu1queee )
If yes, we can also introduce the mutating webhook for the ownerreference together.
If we don't plan to use webhook for validation too. I think we can use option 2.
Any idea, all?
Thanks!

Stay away from webhooks as much as possible ;)
So, yes, the second one is better.

Agree. Let me try the second way first. :)

I have a design question though. If I delete the build configuration and all buildruns also get removed, would that lead to loss of trace-ability of complete|successful|failed builds ?

How do you do in the build v1?
If the end-user deletes the BuildConfig, will you also delete the related Builds in build v1 now?
Will those buildRuns to be the orphan resources if we don't delete them togehter?

Yes, in Build v1, they were ownerRef'd. Yeah, they will be orphan resources for sure - but I'm wondering if there's a good reason for having them stick around 🤔.
( you can go ahead with the changes - I was thinking out aloud..)

em..... I just had a try on OpenShift v4.x.
There is a dialog when you want to delete a BuildConfig:
Delete Build Config
Delete dotnet?

Are you sure you want to delete dotnet in namespace default?
Delete dependent objects of this resource

If you choose Delete dependent objects of this resource, the Builds will be deleted together.
If you don't choose Delete dependent objects of this resource, the Builds will be kept

So..... should we add the logic in Build controller?
If there is any parameter (like a new annotation) from UX to delete dependencies, then query all related resources and delete?

Yeah, the annotation path looks good. Maybe we label the buildRuns in a way that they are easy to look up?

Add annotation path and delete logic in Build controller
Add label for buildRuns in buildRun controller reconcile at the beginning if it doesn't exist

How about this way? :)

Add annotation path and delete logic in Build controller
While handling deletion, check if there's an annotation that says "don't delete BuildRuns. If present, then skip deletion of BuildRuns.

Add label for buildRuns in buildRun controller reconcile at the beginning if it doesn't exist
Helps us query, yes.

Is that what you had in mind?

yes, that is my point.

Sounds good, Jordan!

I will work on this feature now.

this is done , closing


staging 0.20 readme

Getting 0.20 staged

@niels9001 think i handled your request changes.
thanks @htcfreek also for catching a giant oops on my part

nit: Requirements is just bold instead of being a ### as the other sub-paragraphs

@enricogior did the tweak


[FLINK-28151]Allow to cancel the Operation for the HiveServer2 Endpoint.

What is the purpose of the change
(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
Please make sure both new and modified tests in this PR follows the conventions defined in our code quality guide: https://flink.apache.org/contributing/code-style-and-quality-common.html#testing
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluster with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

I add a commit to fix the mentioned problem. Could you take a look when CI test passes, @chaozwn ?

I add a commit to fix the mentioned problem. Could you take a look when CI test passes, @chaozwn ?

@fsk119 yes,i do.

I add a commit to fix the mentioned problem. Could you take a look when CI test passes, @chaozwn ?

LGTM


Reset arduino

Is there any way to reset arduino using this lib?
I've tried setting DTR low, waiting 22ms and then setting it high again, but it didn't work.
Is there anything i'm missing?

Did you tie DTR to the Arduino reset pin?
On Mon, Sep 5, 2016 at 3:27 PM, Pedragon<EMAIL_ADDRESS>wrote:

Is there any way to reset arduino using this lib?
I've tried setting DTR low, waiting 22ms and then setting it high again,
but it didn't work.
Is there anything i'm missing?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/felHR85/UsbSerial/issues/72, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAow4T2guey4lv1Am466vC5XpPm-zuHUks5qnHtAgaJpZM4J1TcU
.

Hi @Pedragon
First do what @slomobile told you before.
If it is still happening...What usb to serial chipset is your arduino using? CDC, FTDI...


Default values for optional fields

Hi,
Do you have any plans to implement default values for optional fields?
Thanks,
Jose

I wasn't really planning to do it myself but it should be easy to add (at least for message decoding), and would certainly increase compatibility with existing descriptors.
If you'd like to take a stab at it, I'd start by adding a function similar to decodeMessage that also takes a default message argument... and use that instead of HashMap.empty here: https://github.com/alphaHeavy/protobuf/blob/master/src/Data/ProtocolBuffers/Decode.hs#L40


font size doesn't work on android

HomeLabel.Text = "Hello world!";
It works on iOS but it doesn't work on android

I use "pt" instead of "px" and it works on Android

Hi, it's an Android limitation. Also, you can try to use the  tag.


Add k8s-node-remote playbook

This is to add roles for installing etcd and bridge cni on a node.
Will be used for setting up CI job that runs e2e_node tests of k8s repository.
https://prow.ppc64le-cloud.cis.ibm.net/view/gs/ppc64le-kubernetes/logs/test-periodic-kubernetes-containerd-e2e-node-tests-ppc64le/1717518352693334016
though above job has failed at the stage of using tester, it has successfully passed the phase of using these roles to setup etcd, bridge cni and containerd.
References: https://github.com/etcd-io/etcd/releases
https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh#L1168-L1234

@mkumatag /@kishen-v  Can you please take a look at this PR when you have some time?
https://prow.ppc64le-cloud.cis.ibm.net/view/gs/ppc64le-kubernetes/logs/test-periodic-kubernetes-containerd-e2e-node-tests-ppc64le/1724390065947283456 is a job run using these changes via test-pj and kubetest2-tf having these changes in the submodule.

@mkumatag /@kishen-v Can you please take a look at this PR when you have some time?
https://prow.ppc64le-cloud.cis.ibm.net/view/gs/ppc64le-kubernetes/logs/test-periodic-kubernetes-containerd-e2e-node-tests-ppc64le/1724390065947283456 is a job run using these changes via test-pj and kubetest2-tf having these changes in the submodule.

overall looks okay, how do you fetch those logs from that remote machine and pushing into the GCS?

GCS
By copying _artifacts folder generated on remote node to the ARTIFACTS folder in test-pod.The files in ARTIFACTS folder are usually uploaded to GCS storage by default on job completion.

Below are the kubetest2 commands for bringing up the node and running tests:
kubetest2 tf --powervs-dns k8s-tests \
                --powervs-image-name centos-stream-8 \
                --powervs-region syd --powervs-zone syd04 \
                --powervs-service-id f8640447-b356-47be-b87f-f36b72491390 \
                --powervs-ssh-key powercloud-bot-key \
                --ssh-private-key /etc/secret-volume/ssh-privatekey \
                --cluster-name config3-$TIMESTAMP \
                --up --set-kubeconfig=false --auto-approve \
                --build-version $K8S_BUILD_VERSION --retry-on-tf-failure 3 \
                --break-kubetest-on-upfail true --powervs-memory 32 \
                --playbook k8s-node-remote.yml
              EXTERNAL_IP=`grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' $(pwd)/config3-$TIMESTAMP/hosts`
              set +o errexit
              kubetest2 tf --test=exec -- ssh -i /etc/secret-volume/ssh-privatekey root@$EXTERNAL_IP /make-test-e2e-node.sh; \
                rc=$?; scp -r -i /etc/secret-volume/ssh-privatekey root@$EXTERNAL_IP:/tmp/_artifacts $ARTIFACTS; \
                [ $rc != 0 ] && echo "ERROR: E2ENode Test suite exited with code:$rc"; exit $rc

I ran a test job using this change.
Able to build and test the k8s binaries of version defined here after the new task of capturing commit with regex.
[root@config3-1701239620-master kubernetes]# pwd
/kubernetes
[root@config3-1701239620-master kubernetes]# kubelet --version
Kubernetes v1.30.0-alpha.0.10+a8f6ea24209b33
[root@config3-1701239620-master kubernetes]# git branch
* (HEAD detached at a8f6ea24209)
  master
[root@config3-1701239620-master kubernetes]#

@mkumatag Can you please take a look at this PR now.


Treats rb+ as read-only mode rather than update

Ran into this issue trying to get the library to write data to a tempfile.NamedTemporaryFile. For some reason the mode of that file descriptor always gets reported as rb+ even when you request wb+.
However, the + there is key and indicates that this represents an "update" rather than a "read-only" mode. However this line causes the Chunks to switch into read mode rather than write:
https://github.com/chummersone/pywavfile/blob/0dc13e5532f116ebd5621e69912f308b5a3cbdad/src/wavfile/chunk.py#L94
Fairly easy fix by just changing the line to:
        if 'r' in self.fp.mode and '+' not in self.fp.mode:

Happy to submit a patch if there's interest.

Thanks! Hopefully fixed in PR #32.


Garry's mime types are fucked.

This can cause problems.

Partial cause of #28

Maybe they aren't always fucked?


Fix code scanning alert - Consider possible security implications associated with subprocess module.

Tracking issue for:

[x] https://github.com/YourLabXYZ/PIP-Installer/security/code-scanning/1

With the release of committee 917435b the problem should be resolved, we are waiting for the release of the branch release/v1.0.1 to be able to close the issue.


Python Wrapper: Rename default client

Closes #6998
Change Description
Rename default client to adhere to PEP8 conventions

@arielshaqed Option2, PTAL

@arielshaqed Option2, PTAL

NM - these changes just cause a vicious cycle where we keep getting an exception when trying to get default client


Code generation technique

The modern approaches that can be used for dynamic code generation include:

IL generation, for example:

Sigil
.NET IL Generator
Fody

Source Generators (see: page)

A design decision is required to select one to use in the project

Make it pluggable and later benchmark!

ig IL emitter would be more useful in this case, because source generators will require the presence of most needed data (smart contract code in this case at compile time), so imo what we need is a framework that can emil IL on the fly.

If we make it JIT, I'd say going with the first is the way to go. If we do a prebuild, I'd say the latter. Also, nothing prohibits us from using Sigil or similar to build. It'd make it easier to manage and less error prone. There are some great examples out there https://github.com/protobuf-net/protobuf-net/blob/fba0624ffeafb14b6ef7a713b950f62fd74c34e1/src/protobuf-net/Compiler/CompilerContext.cs . If this is it, I'd say let's go with IL + helper methods whenever possible.


Add the ability to configure WaveDumper to ignore internal signals

Motivation
The presence of internal signals in the WaveDumper output can interfere with black box debugging (when only input/output ports is evaluated).
Desired solution
Add the ability to configure WaveDumper to ignore internal signals.
Alternatives considered
No response
Additional details
No response

This is a great suggestion, thanks!  It could really save a lot of performance on wave dumping, as well.


Nadekobot disconnect and reconect

l
Buffering successfull
Prebuffering successfully completed in 00:00:02.1872195
Buffering done.
Severity: ErrorExceptionMessage: Connection lostMessage: Disconnected
l
Severity: WarningExceptionMessage: -Message: Unknown Opcode: 8
Severity: ErrorExceptionMessage: Connection lostMessage: Disconnected
Severity: ErrorExceptionMessage: Connection lostMessage: Disconnected
Severity: WarningExceptionMessage: -Message: Unknown Opcode: 9
Severity: ErrorExceptionMessage: Connection lostMessage: Disconnected

please update to 1.0
http://nadekobot.readthedocs.io/en/latest/
There is upgrading guide on the left. 0.9 is no longer supported
Sorry for the inconvenience


Improve contributors' experience with more documentation.

Issue and Steps to Reproduce
Documentation needed for a better help to constributors.
Versions
1.3.21
Expected

List of supported browsers, for contributor to test with them
More details about scripts and what they do
Some How-Tos (like: how to make your CSS changes available in the storybook)
Some Guidelines (test guidelines: "what to test and how", a detail of the architecture of a component)
Some useful tools (like

Actual
Contributor have to dig into the code, to understand more how things work.

CONTRIBUTING.md file seems to explain some of script do. Not enough ? How do more ?
Design system, have guidelines.
Tools like ... ?

If it's OK for you, you can assign this issue to me and I can submit a first version that we can all improve during the PR.


Glommio based IO version for Parquet

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
I want to read parquet files with less latency/better throughput. Glommio is a thread per core library that utilizes io_uring and direct_io. Direct IO is particularly nice for my case and I image for many other parquet use cases, because my usecase doesn't benefit at all from caching the parquet files in Linux PageCache, it even suffers from it. Also I use fast nvme disks to store the parquet files so direct_io/io_uring can give a big performance boost.
https://itnext.io/modern-storage-is-plenty-fast-it-is-the-apis-that-are-bad-6a68319fbc1a
https://www.phoronix.com/news/OpenZFS-DirectIO-Performance
Describe the solution you'd like
Have a alternative io implementation for parquet similar to the async feature (it uses tokio).
It will implement glommio_reader, glommio_writer etc. similar to async_reader, async_writer etc.
Describe alternatives you've considered
Can open the file with O_DIRECT flag and just read with current async impl or sync impl but then it will crash because of unaligned buffers etc.
Just using glommio should be better since don't need to implement alignment of buffers etc. Also glommio already has io_uring thread per core architecture etc. which is very nice for building database like systems.

The async reader and writer are designed to not be tightly coupled to tokio, can they be used for this?

The async reader and writer are designed to not be tightly coupled to tokio, can they be used for this?

So can just add a glommio feature to object_store crate and add a struct that implements ObjectStore trait and use it with the async_reader?

I think ObjectStore would run into issues with send bounds, I was thinking you could implement AsyncFileReader in your application using glommio. We may need to tweak the trait to make the futures associated types, so they can use LocalBoxFuture in this case, but I think it should be tractable

FWIW I would be interested in any benchmarks of this, typically on modern hardware parquet decoding ends up CPU bound not IO bound when reading from local disk.

FWIW I would be interested in any benchmarks of this, typically on modern hardware parquet decoding ends up CPU bound not IO bound when reading from local disk.

I want to disable compression and use RLE/Dictionary encoding for many columns we have, and only have lz4 for some columns. Theoretically it should be able to decode faster than disk read, even on a NVMe. Even if can't decode so much, this will be a big latency improvement since it is not always possible to perfectly pipeline reading from disk and decoding.
Also this will remove the massive memory trashing we have with page cache, we have terabytes of data and since we use buffered io, linux caches 80-100GB of parquet data in ram constantly without any need for it. This is especially annoying in kubernetes where it thinks this is actual memory usage of the program.

Theoretically it should be able to decode faster than disk read

Certainly decoding plain encoded primitives can approach the memory bandwidth of the machine. However, the same is not typically true of BYTE_ARRAY, where the data dependency introduced by the lengths, among other overheads, tends to get in the way.
I'll be very interested to see any results you can share, NVMe opens a lot of cool possibilities 👍

@tustvold so far I got initial version of this to work. The IO itself is 2x-3x as fast as tokio/stdlib io but the decoding is the main bottleneck like you said. I suspect I can tune decoding speed a lot, we currently plain encode columns with many many repetitions and then lz4 compress them so this is not very ideal I am guessing.

I'm going to close this as a duplicate of #4631


Idea: IPFS Community Events

Goal of logging all the events that happened or that are scheduled by the IPFS community, so that people can have track of where to find more about IPFS in person.
The list is not complete yet, please add all that you come to your head
We can also grab this list and feed it to the website to show what are the next events, similar to what Nodeschool does

We also did a meetup at c-base/berlin on august 27 -- do battlemesh and camp count? They weren't "scheduled by the IPFS community" (container.camp and dtn neither), but certainly events to advertise on the website in the future.

@lgierth my rule of thumb would be "where the community can find people talking about IPFS" :)

my rule of thumb would be "where the community can find people talking about IPFS" :)

SGTM :+1:

This lgtm! We should also add these to the Calendar.

Also, advertising events on meeting specific sites, such as meetup.com could be useful to see RSVP lists & attendance counts.

@lgierth Want to add those events?
@diasdavid should we add arcticjs?

@RichardLitt yeah let's merge and go from there. I'll add c-base/battlemesh/camp/32c3.
Definitely add arcticjs haha :)

@lgierth Ok, add away!

done \o/


Change primary keys from int to bigint

To avoid future problems it have been decided on developer meeting that all primary keys will be bigint

@Mech0z is this issue still relevant?


abnormal mitophagy

Please add:
abnormal mitophagy as a child of "abnormal autophagy [MP:0008260]" and "abnormal mitochondrial physiology [MP:0006036]"
DEF: any anomaly in the autophagic process in which mitochondria are delivered to the vacuole and degraded in response to changing cellular conditions
SYN: abnormal mitochondrial autophagy
SYN: abnormal mitochondrion autophagy
J:214528
Note: The definition above is based on GO:0000422
See below for additional information.
"Selective autophagy of mitochondria, known as mitophagy, is an important mitochondrial quality control mechanism that eliminates damaged mitochondria. Mitophagy also mediates removal of mitochondria from developing erythrocytes, and contributes to maternal inheritance of mitochondrial DNA through the elimination of sperm-derived mitochondria".
SOURCE: Cell Death Differ. 2013 Jan; 20(1): 31–42. (http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3524633/)
Thanks
Anna

New term added:
abnormal mitophagy MP:0014046


Fix up routing checkpoint code

Couple things off from the first checkpoint. Merge this and pull it down on your VM.

Are these updates from bloc or did I mess something up lol so merge to my cloud 9?

On Mar 8, 2017, at 11:14 AM, Ben Neely<EMAIL_ADDRESS>wrote:
Couple things off from the first checkpoint. Merge this and pull it down on your VM.
You can view, comment on, or merge this pull request online at:
https://github.com/RSantiago1186/Bloc-jams-angular/pull/1
Commit Summary
Fix up routing checkpoint code
File Changes
M app/pages/index.html (18)
M app/scripts/app.js (34)
M app/templates/collection.html (4)
M app/templates/landing.html (38)
M dist/index.html (18)
M dist/scripts/app.js (28)
A dist/templates/album.html (19)
A dist/templates/collection.html (15)
D dist/templates/home.html (1)
A dist/templates/landing.html (21)
Patch Links:
https://github.com/RSantiago1186/Bloc-jams-angular/pull/1.patch
https://github.com/RSantiago1186/Bloc-jams-angular/pull/1.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Just some small things missing from the checkpoint. It diff'd all the dist files and did some indentation changes, so it looks like more changes than it really is. Look for the bolder green highlights.


Two minor improvements for org-mode

The first improvement is plain and simple: with a prefix arg org-journal-new-entry opens a current entry. If there's no entry - it opens an empty file, which is clearly wrong. The first commit fixes the problem by making the function throw an error in the situation.

The second improvement is a bit controversial.

A have my journal files stored in a Dropbox directory (~/Dropbox/Documents/journal), which allows for sharing between my home and office machines. My ~/Documents directory is just a symlink to ~/Dropbox/Documents (on both office Windows and home Linux machines).
Now, if I set org-journal-dir to ~/Dropbox/Documents/journal, then (buffer-file-name) in any of the journal entry files does not match the auto-mode-alist regex (filename = "~/Documents/journal/...", regex = "~/Dropbox/Documents/.....").
If I set org-journal-dir to to ~/Documents/journal then org-journal-update-auto-mode-alist expands it to ~/Dropbox/Documents/journal anyway, because it uses file-truename, which expands the all the symlinks. So, I changed file-truename for expand-file-name, which works like charm.
And I could not come up with a situation where the change would hurt.

Thank you for this!
Could you give me an example where the first change improves one of your workflows? When is opening an empty file the wrong answer? Personally, I never run into this--I usually use org-journal-new-file with prefix as a "View today's entry".
Your second change is very cool! I don't use a custom org-journal-dir, so I don't have this problem, but expand-file-name is clearly the correct choice.

Well... I does not improve on anything workflow-related, just makes sure the entry is there. Every now and then I do C-u C-c C-j just to see an empty non-existant file.
Don't know. Maybe it's more reasonable to ask the user if org-journal should create a new entry in this case?  Instead of throwing an error?

Wanted to comment first paragraph. I think that C-c C-j creating new file is really right way to do, because it stands for 'create new entry'. And it should just create new file when it doesn't exist.
On other hand, I agree that if user just wants to visit journal file - it should not create it.
While I was doing some updates to org-journal I asked myself why 'visit todays journal file' and 'create new entry' are actually handled by the same function. And I actually asked myself, why is it creating new file when prefix is passed.
I think that right way for that is creating two separate functions. One for creating new entry that will create new entry no matter what (and currently it does it perfectly). Another one for visiting files (in read-only mode?).
How about that? In case you don't have time for that I can handle it :D

Yes, that's kind of what I was thinking, too. And actually, that read-only function already exists (org-journal-read-or-display-entry). It is bound to j in the calendar, and opens the file in view-mode. If the file doesn't exist, an error message is thrown.
Maybe we can settle for a compromize: How about we rebind C-u C-c C-j to org-journal-read-or-display-entry? This would do one of three things:

If no entry exists, it shows an error message.
If an entry exists and the file is already opened, it is shown as-is.
if an entry exists and is not already opened, it is opened in view-mode.

Does that sound reasonable?

Ah, I played around with my suggestion a bit. And it turns out to be not as effective as I thought. I mean, separating this into two functions. Because it breaks a bit current org-journal usage: C-c C-j to create new entry and C-u C-c C-j to visit it. So I am suggesting doing something like:
(defun org-journal-new-enty (prefix)
  (interactive "P")

Bastibe,
wait! The difference between C-u C-c C-j and C-c C-j is not in "read" or "display". It is about creating a new entry, or just visiting the recent one.
The whole point is that I edit the last entry a lot (I usually keep today's TODO list in it). Switching this C-u C-c C-j to the read-or-display would completely break this workflow. Please, don't do this :-)
The only thing I wanted to do is make sure today's entry file really exists when doing C-u C-c C-j :-)

d12frosted,
how is your suggestion different from the current definition?
(defun org-journal-new-entry (prefix)
  "Open today's journal file and start a new entry.
Giving the command a prefix arg will just open a today's file,
without adding an entry"
  (interactive "P")

@vkazanov
Sorry about confusion I made.
As I said in my last comment

C-c C-j to create new entry and C-u C-c C-j

That's why I am proposing to
(defun org-journal-new-enty (prefix)
  (interactive "P")
  (if prefix (visit) (create-new)))

But I find @bastibe 's suggestion better:

Maybe we can settle for a compromise: How about we rebind C-u C-c C-j to org-journal-read-or-display-entry?

@d12frosted
This would completely break my workflow, see my comment above.

It seems that there can't be a compromise, then.
The question remains what C-u M-x org-journal-new-entry should do when no current file exists. From the function name, I would assume that it creates a new, empty, file. Maybe it could create a today's file, but not add any time-subheadings? That would also make sense to me.

@bastibe
maybe it is reasonable to ask the user if he wants to add a new entry? I.e., say something like "There are no entries today. Create an entry?". If the user agrees - create a entry, disagrees - abort.
My main point here is that an empty file in the org-journal system is an invalid state, which should be avoided, and this is why I offered this change.

I agree with you on that: An empty file is not useful.
How about adding the day-header, but not the time-header, if the prefix is given?

Well... How useful is that? :-)
I can see the following cases here:

If the prefix was specified by mistake -> a user wants to create an entry, and asking him is reasonable.

If the prefix was specified on purpose -> a user wants to see the current entry, which is absent. So he can make a decision to either abort or create the entry.

A similar thing happens when a user tries to visit a non-existing journal directory, so this is a consistent behaviour.
Well... The decision is yours, of course.

Well... How useful is that? :-) A daily timestamp? :-)

I mean the first line in every file. The one that says, for example, * Friday, 04/24/15. I sometimes want to open today's file, but want to create a new entry that is not a time-entry. This would help with that.

...but this also means that org-journal will have to open a fresh file with no entries, and add some text into it, which still is a bit incomplete. Later, the user will have to either add a journal entry by hand or call another command.
To my taste and workflow having a warning and a possibility to resolve the problem at once ("No entry -> created one?") feels like a better solution.
Anyway, this is becoming too lengthy for "two minor issues". :-) You should probably just make up your mind -> I can always just have a little customization of my own.

Alright, I prefer the date-but-no-time-stamp version, then. Would you like to implement that, or should I do it?

I'll do it, no problem. Writing Lisp is always a pleasure :-)
You don't mind if I add a customization facility? Something like an ability to choose an empty file action? The default would be to create the file, like you want, and an option - to ask if a new entry is wanted.

Great idea! This way, we can both have our way!

So, basically now org-journal-new-entry does what you wanted it to do: without a prefix it inserts a new journal entry, with a prefix and no today's entries it opens a new file with a date header inserted.
I did not want to overcomplicate the code with the customization option - it just doesn't feel natural here.

Thank you very much! If you find a nice solution for implementing your workflow, please let me know and I'll include it in the readme. It seems that an Advice should be enough.
My computer broke the other day, and it will take me a few days until I can test, merge, and publish this PR.


feat: new table system

closes #83

Codecov Report

Merging #109 (9dc307f) into master (fabba3e) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master      #109   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        16    +2
  Lines          579       621   +42
=========================================
+ Hits           579       621   +42

Impacted Files
Coverage Δ

kanon_api/core/ephemerides/ascendant.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/houses.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/table_classes.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/tables.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/true_position.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/utils.py
100.00% <100.00%> (ø)

kanon_api/routes/ephemerides.py
100.00% <100.00%> (ø)

kanon_api/routes/models.py
100.00% <100.00%> (ø)

kanon_api/settings.py
100.00% <100.00%> (ø)

kanon_api/utils.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


alignment fails when enable_device(serialid) is used

hello,
i've encountered the following using d415 , firmware 5.9.2, sdk 2.10.1:
alignment of rgb and depth works using examples code when streams are enabled as following:
enable_stream(RS2_STREAM_DEPTH, -1,640, 480, RS2_FORMAT_Z16 , 6);
enable_stream(RS2_STREAM_COLOR, -1,640, 480, RS2_FORMAT_RGB8, 6);
(
wait_for_frames();
rs2::align align(RS2_STREAM_COLOR);
align.process(..)
.get_depth_frame();
.first(RS2_STREAM_COLOR);
.
.
.
)
but when i add
enable_device(serialid); ( after the enable streams commands, and obviously before the wait for frames and jalignment commands)
the alignment fails. ( there is about a 10 pixel offset).
i need to use enable_device since my app will need to handle several cameras at once ( connected to different usb ports obviously...)
please advise.
Omer.

Hello zivsha,
Thank you for trying to help,
It seems i have not been 100% clear, so i will try to clearify.
My app works with one camera ( aligns the rgb to depth) correctly when i do not use the enable_device command .
My next step is to prepare the app to support multiple cameras,
For that i have added the enable_device(serialid) after the 2 enable_stream commands, i have not yet added/connected an additional camera,
But now the alignment does not work ( it does not return/raise an error or exception, it simply does not perform full/complete alignment, there is about 10 pixel differernce),
Thanks,
Omer.

You were clear, that's how I understood it. Can you post the entire code from the creation of rs2::config up to align.process?

hello Ziv.
i'm afraid Im not comfortable with posting all the code to a public forum , i've shared the pseudo code in the initial post, as far as i can tell , there is not much more going on in the code from a realsense perspective.
i can add that most of the variables used are defined as data members in a wrapper class, and that i "burn off" a few frames before i "save"/store the frames i want (in the class data members) for later use.
( but the "store" of the result of wait_for_frames in a data member, align stored frames , get aligned frames and write to file , is a serial process , no additional wait for frames in between the align and the get aligned frames )  .
if you are part of the intel's realsense support team, can we continue this on some private & secure ticketing system?
i've uploaded 4 images that show the problem.

its not easy to spot, but if you focus your attention on the right edge of the bigger apple in bad_rgb2+3, you will see about a 5 pixel difference.
the only difference in the code between the good example and bad example is the explicit enabling of the device with the serial id "myconfig.enable_device(cameraid)" ( also minor movement of the camera).
granted, its hard to spot, only about 5 pixel difference , but its there.
yesterday it was very noticable at about 10 pixels, but i did not save those images.
Omer.

hi,
I see that the file upload did not go as planned, the filenames have not been preserved,
so in this post i'll just upload the example of the bad alignment. ( about 5 pixel difference)
Omer.

ok, i think i have a lead.
i also have a load camera parameters from json file  ( myconfig.enable...-> pipiline.start -> burn off a few frames -> get_device+load_json -> waitForFrames -> align -> store to files.)
when the config.enable phase includes enable_Device the load_json parms are honored ( i see the rgb result as green since i've set one of the parms accordingly ( don't rememer its name right now),
but the alignment is not 100%.
when the config.enable phase does not include the explicit enable_device, it seems that the subsequent load_json is ignored, the result rgb image does not have a green hue, and the alignment is better.
so i guess the questions now become
a. is there a parm that can affect the aligment ? ( if so , which one ?)
b. why must i explicitly enable a device in order to use the load_json method?
Omer.

i seems that the align.process was aligning "old" frames, not the newest/latest ones i was interested in.
( i added a wait-until-keypressed function between the burn-frames phase and the last wait_for_frames,
changed the scene before the keypress , and saw that the resutls i was getting were of the old "burnt" frames).
in other words, it seems that i have a very basic misunderstanding of the way this api works.
i'm trying to capture and process still images from the streams.
i've reviewed a few forum posts that suggest frames can't be stored localy in memory.
in other words that align.process(frameset) does not work on a specific ( in my case , latest) frameset that is passed to it as a parameter.
must/can i discard the old frames i'm not interested in ?
(rs2_release_frame(LastCapturedFrames[...].get()); )
should i stop/start the pipeline instead?
Omer.


Exec method does not support queries that return results

Some sqlite pragmas return a value. For example, mmap_size (running in sqlite shell):
sqlite> pragma mmap_size=1024;
1024

The libsql driver's Exec method fails with an "Execute returned rows" for such pragmas. In fact, it fails for any query that returns a value (such as select 42).
I would argue that this is not an expected behavior. It's perfectly normal for an Exec query to return a value. Other drivers (such as mattn/go-sqlite3 and modernc.org/sqlite) allow this.
Code to reproduce:
package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/tursodatabase/go-libsql"
)

func main() {
	db, err := sql.Open("libsql", "file:data.db")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// You can replace the query with `select 42` to get the same error.
	res, err := db.Exec(`pragma mmap_size=1024`)
	fmt.Println("res", res)
	fmt.Println("err", err)
}

Result:
res <nil>
err failed to execute query pragma mmap_size=1024
error code = 2: Error executing statement: Execute returned rows

Have you consider using Query?

Not looking for a workaround; I reported the issue so that the driver behaves as expected.

The driver behavies as expected.
Execute returns number of affected rows and last affected rowid
Query returns rows.
All our drivers behave this way.
So does rusqlite -> https://docs.rs/rusqlite/latest/rusqlite/struct.Connection.html#method.execute,
go-sqlite3 and database/sql -> https://pkg.go.dev/database/sql/driver#Result

The libSQL driver returns an error. It's described in the issue. The error is not expected in this situation, and other Go SQLite drivers handle the described situation just fine.

Ok. I'm still not sure what is a desired behaviour here but reopening the issue for now.

I'd say the expected behavior is to return a non-nil sql.Result and not return an error (like other drivers do):
package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	db, err := sql.Open("sqlite3", "file:data.db")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	res, err := db.Exec(`pragma mmap_size=1024`)
	fmt.Println("res", res)
	fmt.Println("err", err)
}

res {0x14000146000 0x1400011c040}
err <nil>

This is more complicated in case of turso which can have not only local backend but also a remote one. Ideally what you're suggesting would be best but I have to think about all available backends before being sure.

I see, thank you for clarifying that!


[Profiling] Humongous CPU with event_stream

I recently developed with the help of your client, which is quite awesome, a listener for marathon events using the event_stream() method.
The idea is simple, listen for the "deployment_step_success" event and execute some internal business code when this happens.
During the development/test phase I used a local marathon installation to provide the events to my code but when the code went live some problems started to happen.
The code seemed much slower than I expected and the CPU usage was ginormous.
After a quick profiling I discovered the problem was lying on the SSECLIENT lib that is used behind the scenes then I extracted the bit of code that actually listens for the events and performed another test.
from marathon import MarathonClient

marathon_client = MarathonClient(marathon_address)

for _event in marathon_client.event_stream():
    print("Got event : {}".format(_event.event_type))

OBS: The mesos/marathon cluster on production is around 60 apps with 200 tasks total
This simple code hangs about two minutes before outputs "Got event whatever" !
Htop output:

Here's the cProfiling output:
17857859 function calls (16810521 primitive calls) in 425.454 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    143/1    0.007    0.000  425.454  425.454 {built-in method exec}
        1    0.001    0.001  425.454  425.454 events.py:1(<module>)
       22    0.001    0.000  425.326   19.333 client.py:696(event_stream)
       38    4.582    0.121  425.004   11.184 sseclient.py:58(__next__)
   522457    0.650    0.000  268.910    0.001 sseclient.py:52(_event_complete)
   522458    0.644    0.000  268.261    0.001 re.py:167(search)
   522464  266.073    0.001  266.073    0.001 {method 'search' of '_sre.SRE_Pattern' objects}
1567259/522420    0.770    0.000  151.506    0.000 {built-in method next}
   522420    0.696    0.000  151.198    0.000 utils.py:368(stream_decode_response_unicode)
   522420    0.279    0.000  149.246    0.000 models.py:672(generate)
   522420    0.975    0.000  148.967    0.000 response.py:336(stream)
   522420    3.639    0.000  146.838    0.000 response.py:276(read)
   522420    1.078    0.000  134.903    0.000 client.py:518(read)
   522425    0.731    0.000  133.973    0.000 {method 'read' of '_io._RawIOBase' objects}
   522420    0.656    0.000  133.094    0.000 client.py:549(readinto)
       85    0.000    0.000  132.453    1.558 socket.py:360(readinto)
       85  132.452    1.558  132.452    1.558 {method 'recv_into' of '_socket.socket' objects}
   522420    0.281    0.000  132.438    0.000 {method 'readinto' of '_io.BufferedReader' objects}
   522420    0.976    0.000    3.345    0.000 response.py:180(_init_decoder)

Besides "recv_into" which is too low level, the regex is executes half a million times which is responsible for the most time spent during the whole execution.
Any ideas of how to workaround this ?

I think the problem lies on this code:
sseclient.py

def _event_complete(self):
        return re.search(end_of_field, self.buf) is not None

    def __iter__(self):
        return self

    def __next__(self):
        while not self._event_complete():
            try:
                nextchar = next(self.resp_iterator)
                self.buf += nextchar
            except (StopIteration, requests.RequestException):
                time.sleep(self.retry / 1000.0)
                self._connect()

                # The SSE spec only supports resuming from a whole message, so
                # if we have half a message we should throw it out.
                head, sep, tail = self.buf.rpartition('\n')
                self.buf = head + sep
                continue

Half a million times eh? :(
Surely there is a more efficient way to see if EOF is in the buffer!

robj@robj-yelp-mb: % python -m timeit -n 10000 -s "import re; x='\r\n\r\n'; y='\r\r'; z='\n\n'; s='helloab'*100000" "x in s or y in s or z in s"
10000 loops, best of 3: 2.15 msec per loop
robj@robj-yelp-mb:% python -m timeit -n 10000 -s "import re; end_of_field = re.compile(r'\r\n\r\n|\r\r|\n\n'); s='helloab'*100000" "end_of_field.search(s)"
10000 loops, best of 3: 5.69 msec per loop

maybe I've missed something here, but seems using python's built in string matching would be faster? I took the regex from here

@solarkennedy Yep !
@Rob-Johnson Yep !
The caveat is that Marathon actually returns all tasks from all apps bundled into the event data so in my case where I got 200 tasks you can imagine the size of the buffer.

If we count 1 byte per character, 500k characters (or iterations of 1 char) would be...500kb of data ! OMFG !

In marathon's sse case, the last character will always be the EOF so the code from sseclient would have to iterate over the whole buffer trying to find it until it finally encounters it.
It would be even easier to read the whole buffer and use a simple (yet powerfull) string search with ".find()" or "in".
Ill try to post some benchmarks here, but I think it will be magnitudes faster than 1/2 million searches using regexp.

I solved this problem on #143 =]

@migueleliasweb I've already made a pull-request to sseclient which solves this problem:
https://bitbucket.org/btubbs/sseclient/pull-requests/9/response-readline/diff