Fix deadlock in InboundLedgers and NetworkOPs

High Level Overview of Change
Fixes a deadlock bug in 2.2.2 release.

Context of Change
Functions acquireAsync and NetworkOPsImp::recvValidation contains lock.lock() which will deadlock if an exception is thrown while the (non-recursive) mutex is owned by the calling thread, that is before lock.unlock()
In 2.2.2 release we switched some operations from synchronous to asynchronous, guarded by mutexes, but failed to account for exception safety of the critical section, which may result in a deadlock if an exception is thrown before lock.unlock() inside the try block. It is extremely unlikely that a deadlock will actually occur in practice, since the possible exceptions in this section of code are scarce.
The solution adopted in this PR is to move ScopedUnlock from LedgerMaster.cpp to basics/scope.h (adjusting casing to match other utilities in this file, to scope_unlock) and to use this type to create a RAII unlock, removing the problematic lock.lock().
An alternative solution might be to abstract away the "pending operation" with the corresponding mutex, and then use it where appropriate, but I wanted this change to generalise an existing lower-level utility (i.e. scoped unlock) rather than write a new one. The "pending operation" approach could be further generalised into structured asynchronous operations, which would place it in a much larger PR.

Type of Change

[x] Bug fix (non-breaking change which fixes an issue)

Fittingly, this PR fails with exception on macos
libc++abi: terminating due to uncaught exception of type std::__1::system_error: unique_lock::lock: already locked: Resource deadlock avoided

... and a crash on Windows. :-o . I'm looking into it.

Is it just me, or do these changes not actually change any behavior?
In InboundLedgers::acquireAsync(), we have this sequence before:

142: unlock().
143: call acquire(). If it does not throw, continue to line 157. If it does throw, one of the exception handlers is entered (no exception can skip both handlers), neither throws (they just log warnings), and execution continues to line 157. Either way, we end up at line 157.
157: lock().

The change in behaviour is if we have an exception before unlock() at the line 142, e.g. inside insert(). If this happens, then the lock() outside of the try block will deadlock (because the mutex is already owned, by the very same thread).

Now, I prefer a RAII type like scope_unlock, but I think the only difference in behavior it produces here is that the call to lock() is moved before the exception handler is entered (if one is entered). But that is not a material difference. Is that right?
Very similar story for NetworkOPsImp::recvValidation.

Yes, same applies - there's an insert() and if it throws, then we will deadlock.
The RAII unlock_scope fixes both possible deadlocks.

This may be redundant with the CanProcess class in #5126. I'm biased, but I prefer my solution because it hides all the locking in a single class. I'm open to being convinced otherwise, though.

you are right that your PR solves this problem, however given the number of other issues that your PR solves, and the associated code churn, it might be a little until it is tested and approved. In the meantime, if we get this merged and, some time after, your PR merged as well, we will eventually end up with unlock_scope moved from LedgerMaster.cpp moved to scope.h which in itself (I think) is an improvement.


Sessions and user info

This PR introduces a variety of improvements to the user session code and also adds support for user profiles.

@pradel Updated.

Thanks!


post telemetry to external API

I am doing a dissertation that involves Apollo Auto, I need it to periodically post telemetry to an external API. is this a feature that is available in Apollo Auto? if not I could do with some advice about how to go about it. I've tried adding a module in r7.0.0 but I have no background in c++ so it hasn't gone well :( any help/guidance would be greatly appreciated. Thank you
Additional, the telemetry I need to post is: timestamp, ego-vehicle (id, heading, position, velocity), perception-objects-list [ (id, type, heading, position, velocity), (....), (....) ]

Simply put, you only need to subscribe to the message, for example, you can use the python interface to subscribe to these messages.
https://github.com/ApolloAuto/apollo/blob/master/cyber/python/cyber_py3/examples/listener.py
you can find message here, also you can call interface
https://github.com/ApolloAuto/apollo/tree/master/modules/common_msgs


Implement Scale Codec Decorator

Description

[ ] #23
[ ] #24
[ ] #25
[ ] #26

FIrst: Implementation of code generator using annotations
Description
Implementation of scale-codec decorators with dart code generator and annotations. The main concept is about generating classes with the right scale codec methods.
Acceptance Criteria

must create a new .g.dart file with the class extension when user writes the decorator above class name.

Second: Addition of substrate primitive types on Polkadart code generator
Description
Implementation of scale-codec decorators with dart code generator and annotations.
In this step we need to add new decorators types that match substrate datatypes and will be used on class encode and decode methods
Acceptance Criteria

when user writes the decorator of some type before variable declaration, the package must create a new .g.dart file with that variable parsed

Third: Implementation of class decoding
Description
Implementation of the method 'decode' on any class by creating a new dart file and without writing this method on each one
Acceptance Criteria

must create a new .g.dart file with the class extension, including decode function.

Third: Implementation of class encoding
Description
Implementation of the method 'encode' on any class by creating a new dart file and without writing this method on each one
Acceptance Criteria

must create a new .g.dart file with the class extension, including encode function.

@LuizaJurimetric

Will be solved on Milestone 2


obsidian-week-planner

It would be wonderful to have a week-planner plugin like this.

Could you provide some more details on how you would see this working for you?

Scheduling one day is time consuming and inefficient. As this issue #2 says "I think that there is no a single person who can finish all task how he planed it".
So I'm used to scheduling important things for each week. As a student, my week's classes, meetings, labs, etc. can be scheduled in advance, and it's a weekly cycle. I can even make a template and do a small amount of adjustments each week.
Thus I can be clear about my free time to schedule other tasks (done by other task management tools, which I don't necessarily need to write down in this note).

As @Steven-AA mentioned, being able to schedule weekly can be very practical. According to the Getting Things Done (GTD) method, it can be very difficult to finish all tasks scheduled for each day, at least very difficult to finish them at the exactly scheduled time, as they can be always more urgent or unanticipated tasks. When this is the case, one may have to move tasks from day to day, which can be time-consuming and inefficient. Therefore, being able to schedule tasks weekly can be more practical.

This sounds fantastic. I would love some way to plan a week or even a month roughly.

I have posted an update on these request in #25.

Thanks for your patience on this. I've given these requests and the related proposal in #10 some thought.
From the start, I had deliberately intended the Day Planner to be restricted to task planning during the current day for that day's tasks with elements of a simple pomodoro timer. This meant I made some fairly fundamental design decisions for the plugin on that basis.
I think what is being proposed here and under #10 are really for a separate and much more sophisticated plugin. There is some initial scoping by tgrosinger, the author of the Advanced Tables Obsidian plugin, on a plugin that is aimed squarely at these kinds of longer term task and agenda planning requirements, currently named Agenda for Obsidian.
I will be discussing with tgrosinger about my potential contribution to that plugin with some rewritten elements from Day Planner (markdown task parsing, timeline view, status bar, notifications).


"git clone ... -b branch" causes error

When executing git clone ... -b branch the last argument branch is interpreted as the target directory. Although the man page of git specifies differently, it is apparently allowed to give options after the url or target directory!
To solve this issue, we should think about a general parser for the git commands, or at least get a understanding on how the original git command parser works.

Various ways to define options: https://www.git-scm.com/docs/api-parse-options
So we need:

a list of (short and long) options that require an argument, e.g., "-b,--branch". These are tested completely against the argument to know whether we need to ignore the following argument.
For options of interest, e.g., if we want to know the branch, we must be able to parse "-btest", "--branch=test", "-b test" and "--branch test".
We must stop scanning for options after a single "--" argument.

Fixed in v1.0.5.


Fixing bug with only __typename in the selection set

Why make this change?

Closes #1463
Queries and Mutations with only _typename in the selection set fails at the database layer because there are no columns to choose in the database query.

     {
        book_by_pk(id: 1){
             __typename
         }
     }

What is this change?

During the construction of SqlQueryStructure, if it is observed that there are no columns selected, then one of the primary keys is added so that the eventual database query constructed contains a valid column name in the SELECT statement.

How was this tested?

[X] Integration Tests
[X] Manual Tests

Waiting for few answers, perhaps the optimization of not hitting the db can be a followup PR

I would have expected that to be the better approach, since you don't actually need any data back from the DB, but I can see there being a problem when you've done a query like:
query {
  books {
    items {
      __typename
    }
  }
}

That should return a items array that has n __typename properties in it, where n is the count of records in the query (up to 100).


Removing Weeks

What is your question?
So i want to remove the weeks from the main menu without source code, and idk how to do that. Hope someone could help!

Remove them from assets/weeks

Remove them from assets/weeks

The thing is that there’s only the weeks folder separated and if I delete them, they won’t disappear. I tried removing it in the manifest folder but the game crashed so I cannot do like that.

I literally did this myself and it worked, just remove their .json and remove them from weekList

I literally did this myself and it worked, just remove their .json and remove them from weekList

ok


Add experimental gaia-ica with Interchain Account feature.

@soareschen Can we please update the lockfile so that we point to the latest master of https://github.com/cosmos/interchain-accounts-demo and then merge this?

@soareschen just want to confirm that switching gaia-ica to ica and adding gaia7 is not going to break any of your tests!

Should have no problem. We can update the CI to reflect that. Thanks!


Swift 2!

:tada: @cojoj @pmkowal @esttorhe

:tada: yeeessss!!

Result of Integration 1
Duration: 1 minute and 19 seconds
Result: Perfect build! All 69 tests passed. :+1:
Test Coverage: 57%.

Switch back to master, boyz!

feels good to read those words :)

:+1:


Complete Working Example

Hi,
I have tried you example and came up with the following:
/elements/my-element.ts
/// <reference path="../bower_components/riot-ts/riot-ts.d.ts" />

@template(`
<timer>

      timer: { time }

      trasclusion is '<yield/>'

iterating over array item "{el}"

</timer>`)

class Timer extends Riot.Element {
   time: number;
   timerHandle: number;

   mylist = ["one","two","three"];

   // initializes the element with opts
   constructor(opts) {
      super();
      this.time=opts.time||0;
      this.timerHandle=setInterval(() => this.ticks(),1000);
   }

   ticks() {
      this.time++;
      this.update();  // refreshes the element
   }

   // handles the unmount event
   unmounted()
   {
      clearInterval(this.timerHandle);
   }
}

index.html

After compiling all ts files to js and opening the index in the browser I get simply a white page , no error no noting?

not sure, perhaps it's timer (lowercase) instead of 'Timer. Try with riot.mount('*')` instead.
BTW, for a quick and simple start see https://github.com/nippur72/RiotTS-helloworld

Hi I just tried the Hello-TS code.
even tho I imporetd the definition :
/// <reference path="../bower_components/riot-ts/riot-ts.d.ts" />
I get :
Property 'registerAll' does not exist on type 'typeof Riot'.

?

ahh change log:
v0.0.22
removed the need for registration, .register and .registerAll are now removed from the API

got it !

yes was just looking at it :-)


Internationalization (i18n) support

https://github.com/ivanhofer/typesafe-i18n
Ivan Hofer - SvelteKit and i18n: let's finally solve this never ending story
https://t18s.sigrist.dev/
https://inlang.com/

Perhaps these links might also offer some more inspiration:

https://github.com/jacob-8/poly-i18n
https://github.com/rinart73/sveltekit-localize-url

The thread is quite lengthy, but provides valuable background information https://github.com/sveltejs/kit/issues/553.

I might be able to work with you on this one. In my part of the world it's fairly common to deliver i18n and l10n enabled apps by default. My customers within 600 miles speak 15 different languages.
I am still fairly new to Svelte-UX but will dig into it and see what could be improved upon. Slots & props are looking good. As from library point of view, I've been using svelte-i18n for years in combination with i18n Ally VSCode extension. Works like a charm for me.

@alesvaupotic Sounds great!  I appreciate all the help I can get, and having someone with experience (and requirements) would be great.  I'm thinking most of the i18n / translations would be an app's responsibility, but the library doesn't get in the way of providing those strings/translations.
I think one of the first steps would be to identify where Svelte UX (and LayerChart at some point) are getting in the way, and seeing if those can be improved via slots/props/settings context.  I like the idea of leaning into the settings context like we did for format() and will be for formatDate() in the near future.

Intuitively I think this is a great approach, as a developer I would love to be flexible enough in providing the translated texts in components when they are indeed needed. Another example is the multiselect 'search items' placeholder string, which is such a generic label similar to the proposed cancel an apply button settings. In date related components I would also like to be able to override the language translation texts (like daynames etc) even when they are provided by a framework or library as translations.

Agreed.  Currently format() for number formatting (using Intl.NumberFormat) you can specify the locales and currency under settings({ formats: { number: { ... } })...
settings({
  // ...
  formats: {
    numbers: {
      default: {
        locales: 'en',
        currency: 'USD',
        fractionDigits: 2,
        currencyDisplay: 'symbol',
      },
      currency: {
        locales: 'fr',
        currency: 'EUR',
      },
    },
  },
});

I could see adding locales at the top-level as well to default all Intl.* (or similar) functions.  We are in the process of converting formatDate() to leverage Intl.DateTimeFormat instead of date-fns.  As long as this works out, it will be a big win for date display within Svelte UX, especially for i18n.
For non-Intl.* display, such as OK/Cancel, # selected, etc, I could see exposing those as extra properties under settings({ formats: { ... }) and you could do the lookup/display here based on the app environment.
The more places we can side step the issue by allowing the user to specify it at the call site (ex. <Button>Some String</Button>) the better, but there are going to be some places where this isn't easy, and I think settings() / context will work well here.

We have a big i18n/locale improvement coming with PR #137 (huge thanks to @jycouet), which also includes some genreal i18n improvements, along with all the date specific improvements.
Related, I also looked at how React Aria does internationalization.  They use the IntlMessageFormat package, which is interesting (formats messages using Intl.NumberFormat and Intl.DateTimeFormat like our format() does (now)).  Might be worth looking at a little closer, although might not be needed.
I also looked at Material UI (React) just to see how another large component library handles localization.  They appear to use an approach similar to our settings() by using context.  I'm not overly fond with how they define the localization per component TBH, but this might be the validation I need to stick with our current approach for now though :).
Once we merge #137 this week, we can reevaluate where we still need to improve (I know there is the "# selected" strings at least, but I'm sure there are others), but this is great progress in that direction.

I'll be happy to do # selected after the #137 👍


failed go get github.com/gotmc/visa/drivers/tcpip

According to the README, I should import
import (
    "github.com/gotmc/visa"
    _ "github.com/gotmc/visa/drivers/tcpip"
)

Unfortunately, I can't go get github.com/gotmc/visa/drivers/tcpip. I get the error message go get: module github.com/gotmc/visa@upgrade found (v0.4.0), but does not contain package github.com/gotmc/visa/drivers/tcpip.
When I do go mod tidy, I get the same error message. And go install returns this error message:
$ go install
main.go:9:2: no required module provides package github.com/gotmc/visa/drivers/tcpip; to add it:
	go get github.com/gotmc/visa/drivers/tcpip

Any help would be greatly welcomed, I need to communicate with an agilent4980A device. For now simply sending commands and queries would be all I need, and I can't find out how to do this with the examples.

@chmike If you're wanting to communicate using Ethernet, you could use the lxi package directly instead of using this visa package. If that still produces errors, please let me know. I will also see what I can do to reproduce your error.

Thank you very much. I will have a look at it when I have time again. Your code is very helpful. I may use the prologix package if I manage to make it work since I’m using some.
Looking at the ixi package I found out that all I need is a tcp connection to port 5025. I added two optimizations. The bufio.Reader is member of the struct and not instantiated at each call. The second optimization is to use panics with recovery on communication errors instead of classical errors. This error handling pattern is not conventional, but OK to use inside a package or program.

When you say "looking at the ixi package", which package are you referring to?

Sorry, it is lxi (https://github.com/gotmc/lxi). I'll create an issue explaining the suggested change.

For now, I'm going to close this issue. If the problem was not resolved in visa v0.5.0, feel free to open a new issue.


Followers / following can only query first 400 users

Right now, the clubhouse API will only return up to the first 400 users for followers and following. I haven't been able to figure out why this is, but I have a strong feeling it's because we're using their API incorrectly.
If anyone knows why this may be, please use this issue to discuss.

I am having the exact issue, I have tried various ways even debugged the app I couldn't figure why it is not working, response > 400 is empty!


Remove duplicate function

Title says all.

Wooo. Were they not exact duplicates??? Re-reading this now.

Fixed.
Waiting for CI.


SAK-44097 - Add simple configuration URL to avoid mis-typing LTI 1.3 …

…info

Please take an extra look at my highly limited "mini-proxy" to avoid cross-site JSON in the browser.

So @ottenhoff when I asked for a close review I was less interested in a close review of my Java techniques (which was cool enough) - I was more interested if you felt the approach to limiting what this proxy handler could do to get a tiny JSON file was secure enough.   We don't want to create a wide open proxy that could be misused to retrieve data from outside Sakai or send beacon data outside our system.


:white_check_mark: test(e2e): WIP add synpress

Description
Add synpress to run e2e tests with metamask
Testing
Runs synpress successfully locally but still a WIP
Additional Information
Your ENS/address:

Current dependencies on/for this PR:

main

PR #243

PR #245   👈

PR #242

PR #244

This comment was auto-generated by Graphite.


Reorg _app & _document

What should this PR do?
Resolves DEVED-183 by moving our GTM script load to _app, and placing the backup iframe, along with our prism and font stylesheets, in _document.
Why are we making this change?

We want the project to be in line with typical Next.js project conventions.

What are the acceptance criteria?

Everything works as it currently does on prod.
dataLayer pushes are occurring as expected.

How should this PR be tested?

Check out the branch and test the above

Pull request process
Reviewers:

Test functionality using the criteria above.
Offer tips for efficiency, feedback on best practices, and possible alternative approaches and things that may not have been considered.
For shorter, "quick" PRs, use your best judgement on #2.
Use a collaborative approach and provide resources and/or context where appropriate.
Provide screenshots/grabs where appropriate to show findings during review.

Reviewees:

Prefer incremental and appropriately-scoped changes.
Leave a comment on things you want explicit feedback on.
Respond clearly to comments and questions.

I am assuming the additional gtm.start that this removes was redundant, but please correct me if not:
Currently on prod when hitting a page:

On branch

:


Error: Failed to load the model.

I keep getting this error while I am trying to get transcribeRealtime. I am using React Native 0.71. I have followed all the steps mentioned for the installation.
Below is an example of my code.
const wisperTranscripts = async audiopath => {
    const options = {language: 'en'};
    const whisperContext = await initWhisper(audiopath);
    const {stop, subscribe} = await whisperContext.transcribeRealtime(options);
    subscribe(evt => {
      const {isCapturing, data, processTime, recordingTime} = evt;
      console.log(
        `Realtime transcribing: ${isCapturing ? 'ON' : 'OFF'}\n` +
          // The inference text result from audio record:
          `Result: ${data.result}\n\n` +
          `Process time: ${processTime}ms\n` +
          `Recording time: ${recordingTime}ms`,
      );
      if (!isCapturing) console.log('Finished realtime transcribing');
    });
  };

Let me know is there is any update regarding the same. Or am I doing something wrong?

The initWhisper method is initialize a whisper context with model, you can provide the model path with { filePath }. Please read the readme & example for more details.


blank map when use customMapStyle on iOS

I've the same issue as #1308, I've configured the pods correctly and I've set the api key in dev console, I've the key restricted to this identifier:

as the app is not on app store, I've tried the api key without restriction on the first place, but the results was the same
the map looks like this

my deps are:
    "native-base": "2.1.0-rc.2",
    "react": "^15.4.2",
    "react-native": "^0.41.0",
    "react-native-maps": "^0.15.3",

what would be the problem ?
best

Did you provide your api key in your AppDelegate.m as described in the installation instructions?

Hi @foyarash , yes I did,
it's something like this:

+1 I have the same issue but I can render one time, other renders are failing.

+1

Api key issue. Remove restriction and check your key.


Own pubkey hash

As we got rid if the awkward difference between as and signedBy, what is currently the meaning of ownPaymentPubKeyHash? Do we even need this any longer?

Seconded


Adds Snake Scenario

Fixes #_____ - Include a terse summary of the change or which issue is fixed.
Pull Request checklist:

[ ] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[x] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

Ok weird, there's a test that never ends after adding this Scenario... need to dig into that.

Amazing. LineCanvas is game changing for this project.

Ok fixed Tests.  I think because the ScenarioTests were not disposing of Scenario they create the game loop never knew to quit and that caused test to keep running sometimes.


Maintenance

https://docs.google.com/document/d/1Mqqg6T1bsBlPKgEnCSowHbyF6Nme9nSakbaRsCKEoE8/edit

Sidelined for the time being


Incompatible with OpenCV 3.0 or greater

When running the showImage() method in OpenCV 3.0 or greater, an exception is returned:
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/opencv/highgui/Highgui
This is because Highgui has been removed in opencv 3.0 and split into two different packages - see this stackexchange for more details http://stackoverflow.com/questions/25059576/highgui-is-missing-from-opencv-3-0-0-jar

I might have a local version that works on 3.0 if you check my repo it
might be there.
On Saturday, January 28, 2017, Emile Hamwey<EMAIL_ADDRESS>wrote:

When running the showImage() method in OpenCV 3.0 or greater, an exception
is returned:
Exception in thread "Thread-0" java.lang.NoClassDefFoundError:
org/opencv/highgui/Highgui
This is because Highgui has been removed in opencv 3.0 and split into two
different packages - see this stackexchange for more details
http://stackoverflow.com/questions/25059576/highgui-is-
missing-from-opencv-3-0-0-jar
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/master-atul/ImShow-Java-OpenCV/issues/2, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ADUDwUMFVAW60-d_RoZslzG4pVRZk1fDks5rW3yIgaJpZM4LwkEb
.

@ehamwey here's an imshow that works on 3.0 - https://github.com/AnEmortalKid/Imshow/blob/stable/src/test/java/com/anemortalkid/imshow/Imshow.java
Feel free to rename it to ImShow3 and  you can probably PR it into this guy.

The source code does work on OpenCV >= 3.0.
Apparently the .jar file wasn't updated.
After building the .jar file anew with the current code it works.
Tested on OpenCV 3.2.0

The same exception, it do work out only in lower version...

@setihex would this version work for you: https://github.com/AnEmortalKid/Imshow


[sio-model] Add ShEx and RDF Data for Pseudonym and Personal Information Modules

Note that:

I still failed to find the unique identifier for rdc-meta:pseudonym, and need some help to fix it.
"Remove Unused Prefix" is the minor change for the original model (not sio-model).

@sxzhang1201  I don't think we have rdc-meta:pseudonym defined so please use edam:identifier (http://edamontology.org/data_0842).


[RMP] Add YouTube DNN ranking model to Merlin Models

Merlin Core

[ ] Create a tag for example weights (to be used independently or in conjunction with Tags.TARGET)

Merlin Transforms (NVT)

[ ] Create an operator for generating multiple powers of continuous features (square/root, cube/root, etc)?

Merlin Models

[ ] Add a block for generating multiple powers of continuous features (square/root, cube/root, etc)?
[ ] Update the dataloader to be able to handle example weights (return as part of the targets or create a new output?)
[ ] Add support for example weights (using underlying Keras sample weight functionality?)

Serving (Merlin Systems?)

[ ] Figure out how to handle the exponential function used at serving time (and the unexplained W matrix)

Link to the original paper

I am confused about why that transform needs to be in NVT? I think we have a Block in Merlin-models that does the continuous-power source. Or is this not what you have in mind? @sararb @karlhigley

I think it could go in either place, but it seems like a feature transformation to me (which is potentially applicable in other ways.) I didn't realize that block existed though, so that's good to know.


✨ More LibString functions

Description
Added 3 new functions for LibString.sol
-> join
-> concatenate
-> split
Also created proper tests in LibString.t.sol.
Checklist
Ensure you completed all of the steps below before submitting your pull request:

[x] Ran forge snapshot?
[x] Ran npm run lint?
[x] Ran forge test?

Pull requests with an incomplete checklist will be thrown out.

Thanks!
Lemme think about it, cuz it’s kinda pushing the code into the chonky side. Have considered these functions while drafting #97 .

Thanks for the consideration!
Looking forward to your reply. Could possibly exclude join from this request since I feel that concatenate and split would be the most useful ones. Also split can't be done in plain solidity.

I'll see what I can do and modify from here. ;)


cimgui.cpp:1126:36:error: 'sprintf_s' was not declared in this scope

Win7 64bit, Rust 1.2 stable 32bit, failed build imgui-rs.  Can you help on it? Thanks.

Hi Gekkio, Can you fix it ASAP? Thanks.

Hmm, this looks like a portability issue in the cimgui project, so I can't probably fix it in imgui-rs. Let's open an issue in cimgui once we know what the problem is.
Firstly, I need to understand what kind of c/c++ development tools you have installed. Do you have mingw and/or visual studio installed? If yes, what are the versions? Try running g++ --version and cl.
Secondly, could you please send the output of cargo build --verbose ? It's a lot of text but it might tell us more about how the c++ compiler is executed in the build.

Hello, I am upgrade the rust to nightly 1.4 version. and also download mingw64 4.92 version.
After that, the compile job able complete even get some warning.
Thanks.


Update Pages “HowLongDoesATermiteInspectionTakePage”

Automatically generated by Netlify CMS

👷 Deploy Preview for chic-shortbread-66a66b processing.

Name
Link

🔨 Latest commit
0bf093433ef177e894e8d7f046162269487efaff

🔍 Latest deploy log
https://app.netlify.com/sites/chic-shortbread-66a66b/deploys/655aaf28d1a6a00008963879


Support launching Drasi Tutorial in Github Codespaces

Description

Add .devcontainer/devcontainer.json file to serve as default codespace configuration. This launches getting started tutorial.
Update the README.md file for Getting Started tutorial to provide link to Drasi Docs and separate out the VS Code steps.

If we wanted to add more tutorials later, that perhaps each use different dependencies (eg. Postgres, MySQL, etc...)
What would that look like?

If we wanted to add more tutorials later, that perhaps each use different dependencies (eg. Postgres, MySQL, etc...) What would that look like?

Check the discussion here.
To summarize, by default we will launch the codespace with config for getting started tutorial.
For other apps, we can create separate devcontainer config files, and user can select option New with Options from the Codespaces menu as shown in screenshot:


Error: No matching view for {...}

import { Pane, TextBladeApi } from 'tweakpane'
import * as EssentialsPlugin from '@tweakpane/plugin-essentials'

const pane = new Pane()
pane.registerPlugin(EssentialsPlugin)
pane.addBlade({
	view: 'text',
	label: 'test',
	parse: (v: any) => String(v),
	value: 'test',
})

Uncaught { message: `No matching view for '{"view":"text","label":"test","value":"test"}'`

This is basically the same as the example code. What am I missing?

Nevermind, the moment I opened the issue I realized my own mistake elsewhere in the code.


GNOME 3.14

Was closed by github after a merge, bleh. Was #5192

Sigh, NM regression still not fixed...

Upstream merged the patches, we should look into testing those.

Hmm, now it's rather gnome-3.16 being released, but update to that might need more work. 3.14 hopefully only needs the NM fix.

Closed in favor of GNOME 3.16: https://github.com/NixOS/nixpkgs/pull/7357


[WIP] uORB::Subscription subscribe directly to uORB device node object

TL;DR - we can save a relatively large amount of memory (maybe 20KB) and some cpu by updating uORB to bypass file descriptors.
Background
On NuttX PX4 uORB uses file descriptors to subscribe to a publication (open file), copy new data (read file), and various other operations (ioctl). This is flexible, but requires a relatively large amount of memory on a small system that doesn't scale well with additional tasks. It's also led to the invention of virtual files to extend px4 to Linux and QuRT.
On NuttX a file descriptor requires...

4 bytes for the fd int
16 bytes for the actual fd (stored in a fixed size array per NuttX task)
8 bytes for the uORB SubscriberData (+ 8 bytes overhead for the allocation)
= 36 bytes per orb subscribe

The larger problem is that each task has an array of file descriptors (16 bytes each) and we currently have a maximum of 54 file descriptors per task (CONFIG_NFILE_DESCRIPTORS), which still isn't enough for some logging configurations. A typical system has 20-25 tasks, which is 17-20 KB of memory.
Proposal
In this pull request I've updated the uORB Subscription wrapper class to be able to "subscribe" directly to a uORB device node. This bypasses the file descriptor issues entirely and offers a number of advantages.
Memory
Instead of a file descriptor the uORB::Subscription class now contains a pointer to the device node, required metadata to find the node before it exists (more on this later), and the equivalent of SubscriberData (13 bytes total). I also have a template variation in mind on the actual ORB_ID type that would remove for need for storing metadata in memory for a total of 8 bytes per subscription.
This PR updates the mavlink and logger modules to use uORB::Scription and also reduces the number of file descriptors from 54 -> 30. The result on a pixracer configured as a generic multicopter is an ~11 KB memory savings, and a ~4% decrease in cpu.
master
nsh> free
	     total       used       free    largest
Mem:        232928     200672      32256      30624
nsh> logger status
INFO  [logger] Running in mode: all
INFO  [logger] Full File Logging Running:
INFO  [logger] Log file: /fs/microsd/log/2019-01-09/04_26_58.ulg
INFO  [logger] Wrote 4.20 MiB (avg 26.36 KiB/s)
INFO  [logger] Since last status: dropouts: 89 (max len: 0.754 s), max used buffer: 4476 / 14336 B

PR (includes a 6 KB increase in the logger buffer, total free ~ 11 KB more than master)
nsh> free
	     total       used       free    largest
Mem:        232928     195680      37248      22160
nsh> logger status
INFO  [logger] Running in mode: all
INFO  [logger] Full File Logging Running:
INFO  [logger] Log file: /fs/microsd/log/2019-01-09/04_22_55.ulg
INFO  [logger] Wrote 2.62 MiB (avg 28.44 KiB/s)
INFO  [logger] Since last status: dropouts: 36 (max len: 0.574 s), max used buffer: 18870 / 20480 B

A secondary benefit is that subscribing via uORB::Subscription will not force the creation of a uORB::DeviceNode before publication. Device nodes created with no publishers is another few kilobytes of wasted memory in a typical system.
Performance
Additionally, bypassing file descriptors is also slightly faster. It doesn't seem like much, but these functions are called thousands of times every second. Below you can see the difference system wide after having only converted mavlink and logger. This will be helpful when the high rate modules are updated to use uORB::Subscription.
master
orb_check vehicle_local_position: 1000 events, 2527us elapsed, 2.53us avg, min 2us max 3us 0.500us rms
orb_stat vehicle_local_position: 1000 events, 2165us elapsed, 2.17us avg, min 2us max 3us 0.371us rms
orb_copy vehicle_local_position: 1000 events, 4269us elapsed, 4.27us avg, min 4us max 5us 0.444us rms

PR  (same test, but using uORB::Subscription)
orb_check vehicle_local_position: 1000 events, 904us elapsed, 0.90us avg, min 1us max 1us 0.295us rms
orb_stat vehicle_local_position: 1000 events, 890us elapsed, 0.89us avg, min 1us max 1us 0.313us rms
orb_copy vehicle_local_position: 1000 events, 2691us elapsed, 2.69us avg, min 2us max 3us 0.462us rms

Overall system before
 PID COMMAND                   CPU(ms) CPU(%)  USED/STACK PRIO(BASE) STATE FD
   0 Idle Task                   66337 52.296   476/  748   0 (  0)  READY  3
   1 hpwork                       1853  1.678   680/ 1780 249 (249)  w:sig 16
   2 lpwork                        122  0.088   720/ 1780  50 ( 50)  w:sig  8
   3 init                        12158  0.000  1856/ 2580 100 (100)  w:sem  3
 440 mavlink_shell                9870  0.000   960/ 2020 100 (100)  w:sem  3
  11 dataman                         2  0.000   728/ 1180  90 ( 90)  w:sem  4
  40 mavlink_if0                  5562  4.946  1656/ 2540 100 (100)  READY 33
  41 mavlink_rcv_if0               418  0.441  1096/ 2836 175 (175)  w:sem 33
 461 top                           202  1.501  1304/ 1684 255 (255)  RUN    3
 436 log_writer_file               351  0.971   592/ 1148  60 ( 60)  READY 34
 165 sensors                      6583  3.180  1328/ 1964 249 (249)  w:sem 14
 167 commander                     988  0.883  1800/ 3212 140 (140)  w:sig 31
 170 commander_low_prio              2  0.000   552/ 2996  50 ( 50)  w:sem 31
 178 mavlink_if1                  9518  9.717  1720/ 2532 100 (100)  READY 36
 179 mavlink_rcv_if1               605  0.441  1504/ 2836 175 (175)  w:sem 36
 241 gps                            90  0.088  1064/ 1444 220 (220)  w:sig  5
 270 mavlink_if2                  1040  0.971  1488/ 2484 100 (100)  w:sig 24
 271 mavlink_rcv_if2               426  0.353  1120/ 2836 175 (175)  w:sem 24
 285 fmu                          2258  2.031   752/ 1324 252 (252)  w:sem  8
 380 ekf2                        10763  9.628  4536/ 6572 250 (250)  w:sem 20
 388 mc_att_control               4465  4.151   968/ 1660 251 (251)  w:sem 17
 396 mc_pos_control                933  0.883  1000/ 1860 250 (250)  w:sem 11
 405 navigator                     124  0.088   936/ 1764 105 (105)  w:sem 16
 432 logger                       2252  4.593  3032/ 3540 245 (245)  w:sem 34

Processes: 24 total, 5 running, 19 sleeping, max FDs: 54
CPU usage: 46.64% tasks, 1.06% sched, 52.30% idle
DMA Memory: 5120 total, 2048 used 2048 peak
Uptime: 115.100s total, 66.337s idle
nsh>

Overall system after (includes 6KB increase in logger buffer)
 PID COMMAND                   CPU(ms) CPU(%)  USED/STACK PRIO(BASE) STATE FD
   0 Idle Task                   68793 56.183   476/  748   0 (  0)  READY  3
   1 hpwork                       1941  1.590   680/ 1780 249 (249)  w:sig 16
   2 lpwork                        122  0.176   784/ 1780  50 ( 50)  w:sig  8
   3 init                        12328  0.000  1816/ 2580 100 (100)  w:sem  3
 439 mavlink_shell                9210  0.000   960/ 2020 100 (100)  w:sem  3
  11 dataman                         1  0.000   728/ 1180  90 ( 90)  w:sem  4
  40 mavlink_if0                  5299  4.328  1608/ 2540 100 (100)  w:sig  6
  41 mavlink_rcv_if0               442  0.353  2304/ 3916 175 (175)  w:sem  6
 446 top                           668  1.413  1312/ 1684 255 (255)  RUN    3
 432 log_writer_file               429  0.441   592/ 1148  60 ( 60)  w:sem  8
 165 sensors                      6718  3.180  1288/ 1964 249 (249)  w:sem 14
 167 commander                    1020  0.795  1776/ 3212 140 (140)  w:sig 22
 170 commander_low_prio              3  0.088   552/ 2996  50 ( 50)  w:sem 22
 178 mavlink_if1                  9809  8.745  1720/ 2532 100 (100)  READY  8
 179 mavlink_rcv_if1               469  0.353  2520/ 3916 175 (175)  w:sem  8
 241 gps                            94  0.000  1064/ 1444 220 (220)  w:sig  5
 270 mavlink_if2                   945  0.795  1488/ 2484 100 (100)  w:sig  6
 271 mavlink_rcv_if2               461  0.353  2264/ 3916 175 (175)  w:sem  6
 285 fmu                          2442  2.120   848/ 1324 252 (252)  w:sem  8
 380 ekf2                        11008  9.717  4536/ 6572 250 (250)  w:sem 20
 388 mc_att_control               4428  3.886   952/ 1660 251 (251)  w:sem 17
 396 mc_pos_control               1038  0.883  1024/ 1860 250 (250)  w:sem 11
 405 navigator                     162  0.176   856/ 1764 105 (105)  w:sem 14
 422 logger                       1975  3.180  3024/ 3540 245 (245)  w:sem  8

Processes: 24 total, 3 running, 21 sleeping, max FDs: 30
CPU usage: 42.58% tasks, 1.24% sched, 56.18% idle
DMA Memory: 5120 total, 2048 used 2048 peak
Uptime: 119.744s total, 68.794s idle

Future Ideas

enum class generation for template types
bitset for orb_exists
some mechanism to declare topics as multi or not?
updateBlocking() to replace poll?

TODO

[x] rename SubscriptionBase -> Subscription, Subscription -> SubscriptionData
[ ] look into removing the linked list
[ ] copy and move constructors needed (logger array push_back)
[x] fmu-v2 flash
[ ] can we get rid of virtualization? Dropping the LinkedList helps.
[ ] test plan, in particular concurrency issues

Implemented! https://github.com/PX4/Firmware/pull/12040


[ansible/artifactory] nginx needs SELinux boolean.

PR Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] Title of the PR starts with installer/product name (e.g. [ansible/artifactory])
[X] CHANGELOG.md updated
[ ] Variables and other changes are documented in the README.md

What this PR does / why we need it:
When SELinux is enabled on RedHat systems Nginx needs extra permission to open a socket to proxy for Artifactory.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #268
Special notes for your reviewer:
Testing should be done on a RHEL/Alma/Rocky/Oracle Linux.

Thanks for the PR ! we would like to take this in next release mostly next week

@bbaassssiiee This fails on my local testing
TASK [artifactory_nginx : Gather selinux facts] ********************************
task path: /ansible_collections/jfrog/platform/roles/artifactory_nginx/tasks/RedHat.yml:29
ok: [artifactory-1]
TASK [artifactory_nginx : Set httpd_can_network_connect] ***********************
task path: /ansible_collections/jfrog/platform/roles/artifactory_nginx/tasks/RedHat.yml:33
fatal: [artifactory-1]: FAILED! => {
    "changed": false
}
MSG:
Cannot set persistent booleans; please try as root`

@bbaassssiiee This fails on my local testing on RHEL 7/8
TASK [artifactory_nginx : Gather selinux facts] ********************************
task path: /ansible_collections/jfrog/platform/roles/artifactory_nginx/tasks/RedHat.yml:29
ok: [artifactory-1]
TASK [artifactory_nginx : Set httpd_can_network_connect] ***********************
task path: /ansible_collections/jfrog/platform/roles/artifactory_nginx/tasks/RedHat.yml:33
fatal: [artifactory-1]: FAILED! => {
    "changed": false
}
MSG:
Cannot set persistent booleans; please try as root

I added become: true at the task level.


[Q] Run local webserver [enhancement]

Hello,
First, thank you very much for your very useful tool :)
Second, I'm trying to make a desktop application for some dynamic website using XMLHttpRequests to dynamically load data. As a consequence I need to run it on an http server for XMLHttpRequests not to be rejected (Cross-origin AJAX request problem). What I can do presently is to use Python3 in the website root directory : python -m http.server 8887 to start a webserver after what I can use the WebDGap converted application by editing /data/content/index.html to load http://<IP_ADDRESS>:8887/ in its iframe.
Would it be possible to add a checkbox in WebDGap to make the desktop application running a webserver before loading the web application ?
Best regards

I apologize for the late reply.
WebDGap uses a precompiled version of nwjs + nodejs.
That's currently not possible with the way WebDGap is developed.


[VL] add a new test case for Round's coverage

A new test case found in https://github.com/apache/incubator-gluten/issues/6827.
After fix, we can uncomment it.

cc @zhztheplayer

Hi @jiangjiangtian, would you think it's possible to add a case to TestOperator.scala as well? Which is using SQL and have result comparison with vanilla Spark in it. So we make it's clear that Gluten gives different answer for the case.

Hi @jiangjiangtian, would you think it's possible to add a case to TestOperator.scala as well? Which is using SQL and have result comparison with vanilla Spark in it. So we make it's clear that Gluten gives different answer for the case.

@zhztheplayer Thank for your remind. I have add a test in TestOperator.scala. Please review.

@zhztheplayer Sorry, I forget to add a comment and I add it just now. Please review again.


Capital letters do not work with Colemak keyboard layout

Lowercase works fine, however capital letters do not.

I'm having this same issue with Dvorak.

It may be an issue with the dictionary in keycastr/KCKeystrokeTransformer.m, however I am not sure as I am not familiar with the language.

I was correct . It is caused by a oversight in the above file . There is a dictionary which maps the physical key with the uppercase letter . You should be able to resolve your issue by replacing the letter on a QWERTY keyboard with that of Dvorak . You can change letters and symbols as well, just reference the comments which are currently there.
Here it is for Colemak, in case anyone else has this issue:
		d = [[NSDictionary alloc] initWithObjectsAndKeys:
			UTF8("\x21"), NSNum(18), // !
			UTF8("\x22"), NSNum(39), // "
			UTF8("\x23"), NSNum(20), // #
			UTF8("\x24"), NSNum(21), // $
			UTF8("\x25"), NSNum(23), // %
			UTF8("\x26"), NSNum(26), // &
			UTF8("\x28"), NSNum(25), // (
			UTF8("\x29"), NSNum(29), // )
			UTF8("\x2a"), NSNum(28), // *
			UTF8("\x2b"), NSNum(24), // +
			UTF8("\x3a"), NSNum(35), // :
			UTF8("\x3c"), NSNum(43), // <
			UTF8("\x3e"), NSNum(47), // >
			UTF8("\x3f"), NSNum(44), // ?
			UTF8("\x40"), NSNum(19), // @
			UTF8("\x5e"), NSNum(22), // ^
			UTF8("\x5f"), NSNum(27), // _
			UTF8("\x7b"), NSNum(33), // {
			UTF8("\x7c"), NSNum(42), // |
			UTF8("\x7d"), NSNum(30), // }
			UTF8("\x7E"), NSNum(50), // ~
			UTF8("\xe2\x87\xa4"), NSNum(48), // tab
			UTF8("A"), NSNum(0),
			UTF8("B"), NSNum(11),
			UTF8("C"), NSNum(8),
			UTF8("D"), NSNum(5),
			UTF8("E"), NSNum(40),
			UTF8("F"), NSNum(14),
			UTF8("G"), NSNum(17),
			UTF8("H"), NSNum(4),
			UTF8("I"), NSNum(37),
			UTF8("J"), NSNum(16),
			UTF8("K"), NSNum(45),
			UTF8("L"), NSNum(32),
			UTF8("M"), NSNum(46),
			UTF8("N"), NSNum(38),
			UTF8("O"), NSNum(41),
			UTF8("P"), NSNum(15),
			UTF8("Q"), NSNum(12),
			UTF8("R"), NSNum(1),
			UTF8("S"), NSNum(2),
			UTF8("T"), NSNum(3),
			UTF8("U"), NSNum(34),
			UTF8("V"), NSNum(9),
			UTF8("W"), NSNum(13),
			UTF8("X"), NSNum(7),
			UTF8("Y"), NSNum(31),
			UTF8("Z"), NSNum(6),
			nil];

IMO, someone who knows how should create an option to do this, or a custom "toUppercase" or similar function which converts letters and the needed symbols to the uppercase variant.

That's awesome, thanks!

@amiel no problem . let me know if you need any assistance for dvorak, I know it changes a lot of symbols with letters.

This should be fixed in v0.9.4

@akitchen Looks good for most of the letters! Unfortunately, under Colemak, the capital 'O' is showing up as its Qwerty equivalent, colon (shift-semicolon), and colon is showing up as semicolon.

For testing (keys with asterisks misbehave):

Colemak
+ Shift
Qwerty
+ Shift

o
O*
;
:

;
:*
p
P

Yes, edge cases like this will exist until we can completely eliminate the hard coded key mapping that the app is using. I hope to tackle this "soon" :) thanks for the feedback!

On Jul 3, 2017, at 10:45, Quint Guvernator<EMAIL_ADDRESS>wrote:
@akitchen Looks good for most of the letters! Unfortunately, under Colemak, the capital 'O' is showing up as its Qwerty equivalent, colon (shift-semicolon), and colon is showing up as semicolon.
For testing (keys with asterisks misbehave):
Colemak	+ Shift	Qwerty	+ Shift
o	O*	;	:
;	:*	p	P
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the update. This is much better!!!
FWIW I'm seeing the same thing with symbols in dvorak.


Add Ethereum name or address to package.json

What problem does this feature solve?
I would like to see an Ethereum name or address added to the ethereum field of the package.json file. This will allow consumers of the project to know a cannonical address to send funds to. For example, I'm building an application that will allow developers to automatically donate ETH to all of their npm dependencies that have Ethereum addresses in their package.json files: https://sustainus.io
What does the proposed API look like?
Simply add an Ethereum name or address to the ethereum property of the package.json file. Done.

Does Vue have such an address? A cursory search didn't reveal anything.


Creating a component renders unwanted commas

Hi there,
Thanks for the great work on the project, really like it. However when creating a custom component using the jsx syntax, we have some strange behaviour.
The following is extracted from the render function :
<Column width="50%">
    <Text font-size="14" align="center" padding="0" font-weight="700">
        test
        0123456789
        (appel gratuit)
    </Text>
</Column>

This part gets rendered as followed :
test,012345789,(appel gratuit)

It seems the mj-text component adds the commas when rendering each element.

I'm facing the same issue. If you wrap the children inside Text with a div, the comma disappears. I believe this has something to do with how mjContent build an array of its children.

which version of mjml do you use? seems like you have forgotten to say the custom comp which props will get be passed.
something like this:
const defaultMJMLDefinition = {     attributes: {         'background-color': 'blue',     }, };

Hi @Laslo89
I don't understand your question. How are those attributes relevant to the display of children elements? We are using the 3.3.2 version of MJML.

Hi @iammichiel
sry i missunderstand you a bit. Anyways, i ve managed to reproduce this behavior. It should be fixed by wrapping your HTML in on single string. Like this:
<Column width="50%">
     <Text font-size="14" align="center" padding="0" font-weight="700">
         {`
             test
             0123456789
             (appel gratuit)
        `}
    </Text>
</Column>

As @gabrieltomescu mention, mjContent doesn't expect an array of content, so toString method is called on an array so that's why you have commas  ex:
> [1,2,3].toString()
"1,2,3"

This behaviour is fixed in MJML4, if someone has time to open a PR on this, this should be easy to fix in MJML3 by checking the type of mjContent

@iammichiel @iRyusa Please see ^^ PR? Any comments would be appreciated. It solves the mj-text having nested html elements as rendering it with commas.

I updated #778 to do it everywhere. Please can you verify that's what you wanted?


Setup sequelize and label ORM

Make sure works locally for dev and test dbs.

http://docs.sequelizejs.com/en/latest/docs/getting-started/
http://docs.sequelizejs.com/en/1.7.0/articles/express/
https://github.com/manjeshpv/node-restify-mysql-sequelize/blob/master/app.js


Stream load very long and bad video quality

I have some trouble with the latest version of the doorbird plugin. I can see the video stream in my HomeKit but the video quality is bad and the stream load very long. Sometimes it even shows nothing.
I get these errors in my Homebridge Status:
[08/12/2020, 01:23:15] [Doorbird] Doorbird: HomeKit video stream requested: 1920x1080, 30 fps, 802 kbps.
[08/12/2020, 01:23:15] [Doorbird] Doorbird: ffmpeg exited with code: 1 and signal: null (Error)
Here is my config:
https://forum.smartapfel.de/attachment/11655-pasted-from-clipboard-png/

Hey, just a comment from my side. I do have a D11 and a similar issue not only with this plugin also with other tools like e.g. "MotionEye".
By contacting the Doorbird support they admit that especially in low light situation there is an issue with keeping the stream stable with non-corrupt data packages. The result of that issue might vary on the config of your codec but in my case I see no stream throughout the night at all.
BTW, based on the Doorbird API documentation the max. fps the doorbird can provide is 12fps. Don't know how important that is but something to reduce eventually.

Hey thanks for the input I'm pretty sure that this could be a reason for my issues. In my Synology DS Cam everything is looking very good and stable and there my cam is set up at 1280x720@10 FPS but I have no idea how to tweak that settings for the doorbird plugin in my homebridge.

The only I think I suggest is to send a mail to the doorbird support with your problem and eventually point to my ticket number Ticket#2020111822000501] about this.
They told me they working on a fix but I just send them a mail this morning to ask about the status of that issue. Eventually we get a little Christmas present from them soon.

Thanks I just send them a message as well and refered to your ticket but that won't solve my issue with the plugin and the error message of ffmpeg.

I'm overdue to push an update I've been working on that should help. I'm hoping to get this out over the holidays guys...stay tuned.
The slow stream start time sucks, but as someone mentioned, it's a difficult one to overcome. There are a few options though, to alleviate some of this and I hope to have it in the upcoming update.
Thanks!

That sounds great looking forward for that update :) btw I found out that the stream load much faster when Im not in my private network. When I check the cam with my Phone in 4G network the stream loading time is better just to let you know.

Possible that you request the non HD stream over cellular? Also QoS Setup ( Codec, etc) can be different.

Possible yes but I have no chance to check which stream I'm requesting. I got also a response from the Doorbird support, and they told me that the poor video quality during the night is a known problem of the HD Stream (RTSP) especially of the D11x series. They're working on a fix already which maybe will be released during holidays or January 21. So a new doorbird plugin and the new firmware for the doorbird itself maybe will fix this.

There is only he icon in the top right corner, above the video stream. Within LAN it shows „HD“ to me. That is the only place I can think of right now.
Yeah…the D11x series has some problem when it comes to low light scenario. Maybe its all connected to each other.

Am 09.12.2020 um 13:20 schrieb BlackJoker90<EMAIL_ADDRESS>Possible yes but I have no chance to check which stream I'm requesting. I got also a response from the Doorbird support, and they told me that the poor video quality during the night is a known problem of the HD Stream (RTSP) especially of the D11x series. They're working on a fix already which maybe will be released during holidays or January 21. So a new doorbird plugin and the new firmware for the doorbird itself maybe will fix this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/hjdhjd/homebridge-doorbird/issues/151#issuecomment-741735828, or unsubscribe https://github.com/notifications/unsubscribe-auth/AK6ZV4RQQH3725SLBC73IITST5TPFANCNFSM4URR7CKA.


Shadowrun Sixth World v.41

Bugfix - Drone/Vehicle Initiative should have been normal Initiative but Pilot * 2 + 3d6.
Bugfix - Grunt template was applying wounds to Soak rolls.
Added IC to the list of pastable raw data
Host->IC now display notes in the roll template

[ Y ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ Y ] Is this a bug fix?
[ Y ] Does this add functional enhancements (new features or extending existing features) ?
[ N ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ NA ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ NA ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Upgrade NodeJS version to 14.x

Description
Upgrade NodeJS version to 14.x in:

serverless configs
CircleCI
package.json files

Surpassed by: https://github.com/purple-technology/purple-stack/pull/8


Abstract common tasks between plot_forest and plot_ridge

Both functions have significant portions of code that are common, they should be abstracted into a single source to reduce duplication.
Extra comment/bit of a side note: One part where they do differ is that plot_forest generates colmun=[labes, forest] and plot_ridge generates column=[labels, ridge]. This means that the following is not possible:
pc = plot_forest(data)
pc = plot_ridge(data, plot_collection=pc)

to generate a ridge plot with the point estimates and the credible intervals. As of now, it would be necessary to rename the coordinate values in pc.viz. Is that what we want?

If we rename the coordinates to a common pair we could maybe do column = [label, data] in lieu of "forest" and "ridge".
Otherwise as another solution (for the case you mention as an example) we could maybe check for the existence of either the "forest" or "ridge" coord if an existing pc is passed as a parameter to the function. Then based on the plotting function called, change it appropriately in the pc.viz. So we could just have to add a check to account for this case.


redux-persist-pouchdb doesn't work, Object is undefined

Discussed in https://github.com/vitejs/vite/discussions/15131

Originally posted by mvaldetaro November 23, 2023
Describe the bug
When running a project in development that uses 'redux-persist-pouchdb' and creates an instance of PouchDBStorage, the following error is presented:
inherits_browser.js:6 Uncaught TypeError: Object prototype may only be an Object or null: undefined
at Function.create ()
at inherits2 (inherits_browser.js:6:31)
at ../Fnt/Web/JS/investira.react.ui/node_modules/pouchdb/lib/index-browser.es.js (index-browser.es.js:459:1)
at __init (chunk-AUZ3RYOM.js?v=d979b12c:15:56)
at ../Fnt/Web/JS/investira.react.ui/node_modules/redux-persist-pouchdb/dist/index.js (index.js:8:39)
at __require2 (chunk-AUZ3RYOM.js?v=d979b12c:18:50)
at index.js:55:19
Reproduction
https://stackblitz.com/edit/vitejs-vite-ernlsm?file=src%2FApp.jsx
Steps to reproduce
npm create vite@latest
npm i redux-persist-pouchdb
Add <script>window.global ||= window;</script> in index.html
Add import PouchDBStorage from "redux-persist-pouchdb"; in App.jsx
Creates an instance PouchDBStorage()
System Info
System:
    OS: macOS 12.6.5
    CPU: (4) x64 Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz
    Memory: 67.80 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.17.0 - ~/.nvm/versions/node/v18.17.0/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.0/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Browsers:
    Chrome: 119.0.6045.159
    Safari: 16.6
  npmPackages:
    @vitejs/plugin-react: ^4.0.3 => 4.1.0
    vite: ^4.4.5 => 4.5.0

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Sorry @mvaldetaro, I misinterpreted the repro setup. Moving it back to an issue.

Related Issues:
https://github.com/isaacs/inherits/issues/48
https://github.com/pouchdb/pouchdb/issues/8535

It seems that it assumes events is used by default. Installing the events package fixes the repro:
https://stackblitz.com/edit/vitejs-vite-d1pesz?file=vite.config.js,src%2FApp.jsx
It is reproduced directly with pouchdb: https://stackblitz.com/~/edit/vitejs-vite-vpigyp?file=index.html&terminal=dev


Exception Class

The subject of exceptions is alot deeper then I would have thought- Thanks

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

ID: c0ccea38-3215-2399-9199-77aa3e901c29
Version Independent ID: c91e5308-ebac-ea32-f565-5f14f286ee1c
Content: Exceptions - C# language specification
Content Source: standard/exceptions.md
Product: dotnet-csharp
Technology: csharp-spec
GitHub Login: @dotnet-bot
Microsoft Alias: wiwagn

Thanks for the nice comment @Ed2353
Closing as kudos.


can't run bot due to an error on player_data

Expected Behavior
bot.start()
Actual Behavior
KeyError: 'player_data'
Steps to Reproduce
git pull
cp config.json.example config.json
set all information
cp release_config.json.example release_config.json
python pokecli.py --config config.json
Other Information
OS: 4.6.4-1-ARCH LINUX
Git Commit: 4182e93f9bfbe471d07b74e95c55cdfbacda127b
Python Version: Python 2.7.12
Full output
[2016-08-01 02:18:26] [x] PokemonGO Bot v1.0
[2016-08-01 02:18:26] [x] Configuration initialized
[2016-08-01 02:18:26]
[2016-08-01 02:18:26] [x] Address found: <my_location>
[2016-08-01 02:18:26] [x] Position in-game set as: (<my_lat_long_coord>)
[2016-08-01 02:18:26]
Traceback (most recent call last):
File "pokecli.py", line 220, in
main()
File "pokecli.py", line 206, in main
bot.start()
File "/home/kevlar/git/PokemonGo-Bot/pokemongo_bot/init.py", line 31, in start
self._setup_api()
File "/home/kevlar/git/PokemonGo-Bot/pokemongo_bot/init.py", line 151, in _setup_api
player = response_dict['responses']['GET_PLAYER']['player_data']
KeyError: 'player_data'

pip install -r requirements.txt

It doesn't resolve this issue


.Net: New Feature: Provide additional messages when invoking the agent run.

name: Provide additional messages when invoking the agent run.
about: Suggest an idea for this project

Similar with https://github.com/microsoft/semantic-kernel/issues/8715
OpenAIAssistantInvocationOptions is not exposing all the properties available in RunCreationOptions
The missing property includes:

AdditionalMessages

ToolOverrides

Without this option, we are forced to execute multiple calls to the API (to add the user message + separate to create the assistant run when we can do it with a single call).

Hi @sandrohanea - Thank you for the input / suggestions.
For ToolOverrides, this may be accomplished for code-interpreter or file-search via the either:

OpenAIAssistantInvocationOptions.EnableCodeInterpreter  https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/OpenAI/OpenAIAssistantInvocationOptions.cs#L31
or
OpenAIAssistantInvocationOptions.EnableFileSearch  https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/OpenAI/OpenAIAssistantInvocationOptions.cs#L37

For function overrides, the agent always advertises the available functions based on its associated Kernel:  OpenAIAssistantAgent.Kernel - https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/Abstractions/KernelAgent.cs#L37
The collection of available plugins may be directly managed on the Kernel itself at any point:
agent.Kernel.Plugins.Add(...);
agent.Kernel.Plugins.Remove(...);

We currently support AdditionalMessages when creating a thread:  https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/OpenAI/OpenAIThreadCreationOptions.cs
I can certainly add it to the OpenAIAssistantInvocationOptions also.


Add trailing commas to all OMIS apps

Description of change
This adds trailing commas to all of the OMIS-related apps where the trailing commas were missing. This includes some related code reformatting and the removal of an incorrect trailing comma.
Checklist

[ ] Has a new newsfragment been created? Check changelog/README.rst for instructions
[ ] Have any relevant search models been updated?
[ ] Have any relevant fixtures (fixtures/test_data.yaml) been updated?
[ ] Have any relevant select-/prefetch-related field lists in the views and search apps been updated?
[ ] Has the admin site been updated (for new models, fields etc.)?
[ ] Has the README been updated (if needed)?

The len and list with extra trailing commas look a bit weird but I'm easy.

Yeah there aren't really any exceptions (with flake8-commas), and it's probably easier not to have any anyway.


How to structure routes having multiple endpoint components.

Hi James, I am building a real application on top of duct and I got stuck when I tried to extend my application to a couple of endpoints. I couldn't find a clear solution of how should I structure my code using components and at the same time having all the benefits of compojure-api/swagger.
To continue working on my application, I had to create one main endpoint component, which imports routes tables from several endpoints (not real components), which of course it is not optimal.
You can read more about this issue in a little discussion I had with another Duct user here:
http://yogthos.net/posts/2015-10-01-Compojure-API.html#comment-2400193168
Anyway, do you have recommendations on how to deal with this?
Thanks for Duct, I have learnt a lot from it!.

Is this question specifically about the compojure-api project?

I would say no, because the confusion arises when dealing with endpoints as components, which can have dependencies, so normal routing tables ("pure" compojure-api tables) do not work in this schema (at least not with every endpoint as a component).

No the question isn't about combining endpoints in general, or no the question isn't specifically about compojure-api?
It sounds like the problem is with how compojure-api happens to function, rather than any inherent issue with routing tables.

Ok, I will go in that direction then. This is my first application with Clojure, so most of things are new to me and the separation between concepts/libraries is not so clear to me yet.
Thanks.


Merge K sorted array (HEAP) (Priority queue)

Description
Algorithm for merging k sorted array using heap
Domain
Algorithm
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

Hii!
I am a participant in GSSOC'22. Can you please assign me this issue.
I've implemented a lot of algorithms and participated in many competitions.
Thank You.

/assign


Fix issue 391

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #391
Type of change

Documentation update

Testing steps
N/A

Codecov Report

Merging #405 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #405   +/-   ##
=======================================
  Coverage   70.39%   70.39%
=======================================
  Files          12       12
  Lines         652      652
=======================================
  Hits          459      459
  Misses        189      189
  Partials        4        4

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 3ef0f81...a4e0d90. Read the comment docs.


Having problems with array in JSON

First, thank you for creating this! Even though I'm a beginner (to VBA-JSON and VBA in general - it is my first program!) I was able to make it work.
Nevertheless I can' t make it work for an array contained in the json, specifically the ip_address.
"ip_address": ["<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>"],
I'm providing you with the Sub and an json example. I hope you can point me to a workaround or fix.
Sub ParseJson()

Dim FSO As New FileSystemObject
Dim JsonTS As TextStream
Dim JsonText As String
Dim Parsed As Dictionary

Set JsonTS = FSO.OpenTextFile("bla.json", ForReading)
JsonText = JsonTS.ReadAll
JsonTS.Close

Set Parsed = JsonConverter.ParseJson(JsonText)

Dim Rows As Variant
ReDim Rows(Parsed("rows").Count, 4)

Dim Row As Dictionary
Dim i As Long

i = 0
For Each Row In Parsed("rows")
  Rows(i, 0) = Row("id")
  Rows(i, 1) = Row("host_name")
  Rows(i, 2) = Row("dns_name")
  Rows(i, 3) = Row("os")
  Rows(i, 4) = Row("ip_address")

  i = i + 1
Next Row

Sheets("Sheet1").Range(Cells(1, 1), Cells(Parsed("rows").Count, 4)) = Rows

End Sub

{
	"total": 2,
	"rows": [{
			"id": 2,
			"parent_id": 175,
			"type": "virtual",
			"os": "AIX 7.1",
			"host_name": "blablabla",
			"dns_name": "blablabla.example.com",
			"ip_address": ["<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>"],
			"last_seen": "2017-05-31T07:03:18Z",
			"hardware_manufacturer": "IBM",
			"hardware_model": "IBM,9117-MMC",
			"hardware_serial_number": "10462E2",
			"processor_brand_string": "PowerPC_POWER7",
			"processor_type": "Multi-core",
			"processor_brand": "POWER7(770,780,795 servers)",
			"processor_vendor": "IBM(R)",
			"processor_model": "All Existing",
			"partition_cores": "2.0",
			"server_processors": 16,
			"server_cores": 16
		}, {
			"id": 4,
			"parent_id": 182,
			"type": "virtual",
			"os": "AIX 7.1",
			"host_name": "blebleble",
			"dns_name": "blebleble.example.com",
			"ip_address": ["<IP_ADDRESS>"],
			"last_seen": "2017-05-31T06:56:41Z",
			"hardware_manufacturer": "IBM",
			"hardware_model": "IBM,9117-570",
			"hardware_serial_number": "100C0FA",
			"processor_brand_string": "PowerPC_POWER5",
			"processor_type": "Dual-core",
			"processor_brand": "Power5(TM)",
			"processor_vendor": "IBM(R)",
			"processor_model": "All Existing",
			"partition_cores": "1.0",
			"server_processors": 16,
			"server_cores": 16
		}
	]
}

I noticed that there is the function json_ParseArray. I just don' t know how to use it. :-(
Can someone provide an example for the ip_address array?

Example:
Public Sub ReadingFromAnArray()

    Dim jObject As Dictionary
    Dim el As Dictionary
    Dim i As Long

    Set jObject = ParseJson("{ ""total"":2, ""rows"":[ {""id"":2}, {""id"":4}] }")

    ' This example assumes you know what you're getting so takes lots of liberties

    Debug.Print "The object says there are " & jObject("total") & " rows."

    For Each el In jObject("rows")
        Debug.Print "row id is " & el("id")
    Next el

    ' alternate approach
    For i = 1 To jObject("total")
        Debug.Print "row #" & i & " is id of " & jObject("rows")(i)("id")
    Next i

End Sub

Output:
The object says there are 2 rows.
row id is 2
row id is 4
row #1 is id of 2
row #2 is id of 4


SBS profile tweaks

Design: https://zpl.io/bP9OOeD
Issue: Y2K-321

@malgorithms maybe https://keybase.io/install should redirect to https://keybase.io/download for older (and currently published) clients.

@malgorithms maybe https://keybase.io/install should redirect to https://keybase.io/download for older (and currently published) clients.

done and committed and deploying....


Cleanup configuration handling

Fix bug in inferring namenode host
Cleanup logic to make config location inference clearer
Cleanup logic to make parameter inference (e.g. namenode host) clearer
Add tests for inference

This spiraled out from finding a simple bug in the configuration inference (misuse of str.strip). I think the logic is identical to as before, but bugs might have slipped in. Lacking the environment setup to perform rigorous tests this is a bit hard to ensure.

You could use docker image mdurant/hadoop for testing, which has hdfs ad yarn running.
A couple of thoughts:

the code in hdfs3.conf is essentially the same as this was; should it be changed, or could both be factored out?
a Knit object tries to create an HDFileSystem instance with the same conf; this could be much simpler if that didn't happen (we pass a hdfs instance in, for example)
should Knit depend on hdfs3? Can we solve hdfs security problems by making a hadoop delegation token via yarn, which is already done in the scala code?

the code in hdfs3.conf is essentially the same as this was; should it be changed, or could both be factored out?

Hmmm, the bug exists there then as well. Since the nn/port stuff is only needed for hdfs, most of this could probably be pushed to hdfs3 instead.

a Knit object tries to create an HDFileSystem instance with the same conf; this could be much simpler if that didn't happen (we pass a hdfs instance in, for example)

Why can't you rely on creating an HDFileSystem internally, and let its init find the conf file? AFAICT none of the yarn code relies on config stuff found in hdfs-site.xml.

should Knit depend on hdfs3?

Since knit depends on hdfs support for working with python environments, I'd say probably?

Can we solve hdfs security problems by making a hadoop delegation token via yarn, which is already done in the scala code?

I don't know enough about this stuff to answer that :).

Indeed the duplication with hdfs3 seems like a bad idea. The only pro reasons are: it's probably a good idea to have both find the same defaults directory if auto-configuring, in cases where there might be multiple sets of config files lying around; and if overriding config values for hdfs, it's a pain to have to do it in multiple places. Consider the alternative, that Knit or DaskYarnCluster takes an hdfs= parameter that the user has already configured.
Note that at the moment, hdfs3 is strictly optional, and the only use is to list environments stored for the user and to decide whether uploading a new .zip is required or not. The actual upload is done is scala right now. It would be good to use hdfs3 to clean the .knitDeps directory, access logs directly (instead of via the yarn CLI). Until "privacy" security is firmly fixed in libhdfs3, it is conceivable that in some circumstances yarn can upload files but hdfs3 cannot.


fix external broken links

This will update or remove  external broken links as detected at 2024-05-24

Currently this updates yarn.lock ... is this accidental?
yes after these many links, open tabs waybackmachines, ecc I missed to exclude it from the commit. my mistake


Remove Node 12 target from esbuild settings

See #10. Once Azure SWA supports Node 14, we can remove that setting.

You can now customize the node target using the platform setting.
{
  "platform": {
    "apiRuntime": "node:14"
  }
}

I think we should be able to remove the esbuild step and set platform in the generated SWA config.

Though it looks like many of the other official adapters still use esbuild. Not sure if we still need it our not. We can at least bump the target.


Create documentation for SMT decoder

Write a detailed documentation around SMT trace decoder

There is probably some MPT stuff that could do with some docs work too

https://www.notion.so/polygontechnology/Witness-Decoder-287936678ead47e3a9b5153ea60f5a68


Short solution needed: "golang files" (golang)

Please help us write most modern and shortest code solution for this issue:
golang files (technology: golang)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

How to write text to file


YAML Configuration | Radiosondes

Agreement with GSI using GeoVaLs in UFO (Hofx)

[ ] Done

Agreement with GSI using GeoVaLs in UFO (Quality control)

[ ] Done

Agreement with GSI using Swell

[ ] Done

Current issues:

[ ] https://github.com/JCSDA-internal/ufo/pull/2218

Original yaml file fails to be processed -  the input data is missing 'LaunchTime' values.  If a station has more than one launch in a synoptic time, the launch time would be used to group the obs from each launch separately.  In the GSI the obs error inflation when multiple obs exist inside vertical model layers is done report-by-report, hence, sounding by sounding.  Without launch time the multiple launches from a station would be grouped together for that filter.

Observational errors in JEDI and GSI. There is no duplication inflation in JEDI yet.  A question, how to re-set observational error range [100-300 Pa] after the ObsErrorFactorSfcPressure@ObsFunction function?   The following filters after it have no impact<EMAIL_ADDRESS>  # error inflation based on Ps correction
  - filter: Perform Action
    filter variables:
    - name: surface_pressure
    action:
      name: inflate error
      inflation variable:
        name: ObsErrorFactorSfcPressure@ObsFunction
        options:
          geovar_geomz: geopotential_height
          geovar_sfc_geomz: surface_geopotential_height
  # ObsError >= 100
  - filter: Bounds Check
    filter variables:
    - name: surface_pressure@ObsErrorData
    where:
    - variable: surface_pressure@ObsErrorData
      maxvalue: 100
    action:
      name: assign error
      error parameter: 100
  # ObsError <= 300
  - filter: Bounds Check
    filter variables:
    - name: surface_pressure@ObsErrorData
    where:
    - variable: surface_pressure@ObsErrorData
      minvalue: 300
    action:
      name: assign error
      error parameter: 300

I tried another way to re-set the obs error range:```
ObsError >= 100

filter: Variable Assignment
where:

variable:
#name: surface_pressure@ObsError
name: ObsErrorData/surface_pressure
maxvalue: 100
assignments:
#- name: surface_pressure@ObsError
name: ObsErrorData/surface_pressure
value: 100

ObsError <= 300

filter: Variable Assignment
where:

variable:
#name: surface_pressure@ObsError
name: ObsErrorData/surface_pressure
minvalue: 300
assignments:
#- name: surface_pressure@ObsError
name: ObsErrorData/surface_pressure
value: 300

However, JEDI this time thinks "ObsErrorData" is a new variable and asks an input of data  'type'. However, the UFO document says it is the updated obs error:
https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/inside/jedi-components/ufo/qcfilters/introduction.html#observation-errors

Anyway, Here are steps to handle a surface pressure error in GSI:
1, Assign an initial error (from the error table)
2, ObsErrorFactorSfcPressure@ObsFunction
3, Reset ObsError between Min ~ Max
4, Gross error check:  (O-F)/ObsError
5, Inflate the error, which is the value before Step 3, because of duplication, and make it the final obs error.

These O-B in UFO are close to those in GSI except for a few spots, likely because of some missing QC.

Here is an issue to re-set ObsError within a range after initial inflation.
https://github.com/JCSDA-internal/ufo/issues/2363

Now the observational errors can be re-bounded correctly after initial inflation. See Yaml settings in https://github.com/JCSDA-internal/ufo/issues/2363.

Now UFO can reproduce GSI surface pressure Hofx after a bug fix in surface pressure correction. Sondes' "height", not "station_elevation" should be used in the correction. See the UFO pull-request: https://github.com/JCSDA-internal/ufo/pull/2493

Great stuff @gmao-jjin3! Thanks! When making these scatter plots can you make them for all observations rather than what passed QC? There should be a match for all obs regardless of whether each system used the observation or not.

@danholdaway  Now I can see that the combining programs within the original IODA-converter package messed update observations. Here are surface_pressure and virtual_temperature in those separated and combined files.```
For_others/conv_obs_check% python ck_ps.py
/discover/nobackup/drholdaw/JediData/GMAOReferenceRun/geos_to_r2d2/observations/conventional/obs_sep/sondes_ps_obs_2020121500.nc4
--Obs with z=3650m:
i,type,subtype,sta_id,lat,lon,z(3650m),ps: 203 120 0 b'55591   ' 29.67 91.13 3650.0 65110.0
For_others/conv_obs_check% python ck_tv.py
/discover/nobackup/drholdaw/JediData/GMAOReferenceRun/geos_to_r2d2/observations/conventional/obs_sep/sondes_tv_obs_2020121500.nc4
--Obs with z=3650m:
i,type,subtype,sta_id,lat,lon,z(3650m),tv: 6570 120 0 b'55591   ' 29.67 91.13 3650.0 269.85
For_others/conv_obs_check% python ck_tv_combined.py
/discover/nobackup/drholdaw/JediData/GMAOReferenceRun/geos_to_r2d2/observations/conventional/obs/sondes_obs_.nc4
--Obs with z=3650m:
i,type,subtype,sta_id,lat,lon,z(3650m),tv,ps: 28708 -2147483647 -2147483647 b'55591   ' 29.67 91.13 3650.0 9.96921e+36 65110.0
i,type,subtype,sta_id,lat,lon,z(3650m),tv,ps: 28710 120 0 b'55591   ' 29.67 91.13 3650.0 269.85 9.96921e+36

It is a reason. Not sure what is wrong in the combine Python programs at the moment.

OK, thanks for letting us know. I don't think we'll be able to replicate the GSI without the combine step since there are filters requiring multiple variables so we'll have to think on it. For example I think temperature is used on one of the surface pressure filters for example. Thanks for the work to establish what's happening Jianjun. We'll have to think a bit on the correct solution.

Noop, we cannot ignore pressure because sonde data are profiles. It may work for surface observations but we very likely get into troubles for other observations. I am re-making those IODA data after changing GSI. However, it is hard to guarantee there is no machine errors like these and it still is a risk not to have any tolerance in co-locating data even my new data work.

This figure shows JEDI HofX are identical to GSI Hofx before QC.  It looks like that there is no issue with my new data. However, we don't really solve the combine issue.

This figure shows UFO surface pressure errors timed by those GSI duplicate factors are equal to GSI final observation errors. I think this figure confirms that surface pressure errors are set up correctly before we finalize the duplicate factor function.

@danholdaway  This figure shows GSI effective QC flags vs UFO effective QC flags for all of the data.  It puzzles me because that I find those GSI and UFO flags have the same number of zero values in the output file /discover/nobackup/jjin3/jedi/JediUfoTests/Output/sondes_qc_2020121500_0000.nc4, which is not what this figure shows.  This figure is made with configuration between lines 341-365 in /discover/nobackup/jjin3/jedi/JediUfoTests/Eva/Config/sondes.yaml.  My short Python program to check those GSI and UFO QC flags is /discover/nobackup/jjin3/jedi/For_others/conv_obs_check/ioda_sondes_ps/ck_ps_qc.py . Can you do me a favor to take a look at the yaml file and the python program and see why they show different results? Thanks.

@danholdaway Never mind.  I think I need remove undefined values during plotting.

This figure suggests that there are same numbers zero values in GSI effective QC flags and UFO effective QC flags.

Histograms of surface pressure O-F after QC. They are identical in UFO and GSI.

The duplicate factor does work well for surface_pressure at the moment.

This is the latest comparison between UFO and GSI final surface_pressure observational errors.  Obviously, they do not agree to each other. The reason is that the duplicate_factor filter only checks locations of sondes data within current UFO framework which processes sondes and other surface pressure observations separately. GSI, however, looks for co-located  surface pressure observations within all observation data types.  Here is a debug in the "setupps.f90"
              tfact=min(one,abs(data(itime,k)-data(itime,l))/dfact1)
              dup(k)=dup(k)+one-tfact*tfact*(one-dfact)
              dup(l)=dup(l)+one-tfact*tfact*(one-dfact)
              if(ictype(nint(data(ikxx,k))) == 120 ) then
                write(6,"(A,i4,i9,f9.4,a,2f9.3,A,i4,i9,f9.4,a,2f9.3)")  &
                           "JJJ, type(k),k,dup(k)", ictype(nint(data(ikxx,k))),k,dup(k), &
                           ", lat,lon,", data(ilate,k),data(ilone,k), &
                           "; type(l),l, dup(l)", ictype(nint(data(ikxx,l))),l, dup(l), &
                           ", lat,lon,", data(ilate,l),data(ilone,l)
              endif

and you can see dulplicate_factors are calculated for colocated  surface (kx/datatype=181 or 187) and sondes data (kx/datatype=120): from the ouput (only a few lines are posted here)
   JJJ, type(k),k,dup(k) 120        1   2.0000, lat,lon,   42.870  129.500; type(l),l, dup(l) 120        6   2.0000, lat,lon,   42.8
70  129.500
JJJ, type(k),k,dup(k) 120        1   2.8594, lat,lon,   42.870  129.500; type(l),l, dup(l) 181      129   1.8594, lat,lon,   42.8
70  129.500
JJJ, type(k),k,dup(k) 120        1   1.9375, lat,lon,   43.050  141.330; type(l),l, dup(l) 181       28   1.9375, lat,lon,   43.0
50  141.330
JJJ, type(k),k,dup(k) 120        1   2.8750, lat,lon,   43.050  141.330; type(l),l, dup(l) 181       47   1.9375, lat,lon,   43.0
50  141.330
JJJ, type(k),k,dup(k) 120        1   3.7014, lat,lon,   43.050  141.330; type(l),l, dup(l) 181       59   1.8264, lat,lon,   43.0
50  141.330
JJJ, type(k),k,dup(k) 120        1   1.9992, lat,lon,   62.530   17.450; type(l),l, dup(l) 187        2   1.9992, lat,lon,   62.5
30   17.450
JJJ, type(k),k,dup(k) 120        1   2.9961, lat,lon,   62.530   17.450; type(l),l, dup(l) 187        3   1.9969, lat,lon,   62.5
30   17.450
JJJ, type(k),k,dup(k) 120        1   3.7731, lat,lon,   62.530   17.450; type(l),l, dup(l) 187        4   1.7770, lat,lon,   62.5
30   17.450
JJJ, type(k),k,dup(k) 120        1   4.5231, lat,lon,   62.530   17.450; type(l),l, dup(l) 187        5   1.7500, lat,lon,   62.5
30   17.450
JJJ, type(k),k,dup(k) 120        1   5.3927, lat,lon,   62.530   17.450; type(l),l, dup(l) 187      271   1.8696, lat,lon,   62.5
30   17.450

In short, we have to reconsider how to process those surface_pressure and other conventional observations in UFO. @danholdaway @CoryMartin-NOAA.
BTW, there is an update in checking missing values of PreUseFlgs atop of Akira's source code:
https://github.com/JCSDA-internal/ufo/commit/92f6206864e9cda1731fbd14e5c435da7b4b3432

I'm not sure this is something we are going to be able to do in JEDI given the obs space approach... Perhaps @danholdaway has a different view/suggestion but I'm inclined to think this is going to be nearly impossible given how IODA is constructed.

@CoryMartin-NOAA I agree. I don't see a solution for this.

I was looking at some output that I had produced for the sondes running the ObsErrorFactorConventional filter and came across a sounding from station 50953 that looks like it was duplicated.  The obs are slightly different on some levels though.  In any case the two soundings were processed separately through errormod, but were treated as all one sounding in UFO by ObsErrorFactorConventional because they had the same launch time (time of first sounding level was the same for both, though they had different DHR sounding times).  In any case, that's another reason for the output from UFO not matching GSI.
SID=50953_duplicate_sounding.txt

UFO O-F and observational errors match GSI values when observational errors made by UFO's function "ObsErrorFactorConventional" are replaced by GSI adjusted errors are used.

UFO O-F and observational errors for virtualTemperature do not match those values in GSI.

An email with Greg:
Jianjun,

Myself and Hui Shao reviewed the GSI code quite a lot, yes.
Using error inflation as a means to deal with too many data points in a single grid volume is very questionable as a technique instead of alternate means, but, yes, we're aware of the GSI code for doing error inflation.  We are trying our best to match GSI, but ultimately, that is not our goal.  Rather, we desire to make the best DA use possible.  We strive to make a first attempt to match GSI.  However, this is not always guaranteed as sufficient time to produce an identical match is difficult.

Please feel free to open a GitHub/Zenhub issue if things are not optimal.

Greg

On Tue, Feb 7, 2023 at 2:03 PM Jin, Jianjun (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] <[jianjun.jin@nasa.gov](mailto:jianjun.jin@nasa.gov)> wrote:
Hi Cory and Greg

Are you aware of any UFO codes to deal with temperature obs error inflation in GSI’s setupt.f90:
https://github.com/CoryMartin-NOAA/GSI/blob/ea04c69c4a3c29fc2109b6d7cdd21dfd049b1cf0/src/gsi/setupt.f90#L819

Thank you,

Jianjun

Now  UFO O-F and observational errors match GSI values using (1) Wei's pressure-check inflator, and (2) GSI adjust error in Yaml configuration.

Thanks for uploading these plots @gmao-jjin3. In each case can you also provide the plots without the multiplication by GsiDup? For posterity it would be good to just get a sense of how many observations this is impacting.

With duplicate check filter added, some duplicates not accounted for

The consistency check for Radiosonde wind (kx=220, 221) is completed which can be demonstrated from the following plots:
The number of observations passing QC in the GSI:

The number of observations passing QC in Jedi:

The final observation error comparison:

I made a list of the ADPUPA data in the gdas.prepbufr file from 20201215/00z and found there were quite a few (87!) duplicated soundings on that date. (From the station IDs they appear to be Chinese sondes.) Possibly some of the soundings were transmitted both in BUFR and text format. In any case, the GSI 'errormod' filter would treat the soundings separately while the UFO filter would filter the soundings together if the reported release time were the same. While the DHR values given for the sounding pairs were different, the drift time for the first level of the soundings was the same. Actually the drift lat,lon,time was the same for quite a few levels (if not most) and so would trigger down-weighting by the duplicate check.

I was looking at this issue again because it came up when I was checking how the wind obs were handled by ObsErrorFactorConventional versus the GSIAdjustObsError.  It seems to me that the agreement would be improved if we changed the definition of 'time_launch' in the GSI for raobs so that it uses the DHR (like the aircraft) rather than the first time level of the drfdat.  It looks like the pairs of soundings have different DHR values (for whatever reason) while they often have the same values for the initial drfdat time.   That puts the two reports in the same sounding for ObsErrorFactorConventional while the GSI processes the sounding reports in 'errormod' separately.   It would be better to process those together (or actually better to screen for duplicates better in the preprocessing) but for the purpose of a match with GSI I think the change in the definition would help.

Thank you @gmao-msienkie .  I made the change in read_prepbufr.f90. Let's see if we can get better results tomorrow.

The  final observation errors do match after duplication is only for the same observation types such as sondes, surface, etc. in GSI.  See the previous comparison when duplicate factor is considered for surface pressure in all conventional data: https://github.com/GEOS-ESM/swell/issues/78#issuecomment-1373909089

@gmao-msienkie 's suggestion about launch_time does make a difference, removed one of the out of line two spots in the last figure posted on Feb 15.  https://github.com/GEOS-ESM/swell/issues/78#issuecomment-1432016186

Just add links of PR to "Replace station_elevation by height for Ps correction in GSI":
https://github.com/JCSDA-internal/ufo/pull/2493
(There are some discussions about extrapolation: https://github.com/JCSDA-internal/ufo/pull/2493#issuecomment-1329760749)
https://github.com/JCSDA-internal/ufo/pull/2594
https://github.com/JCSDA-internal/ufo/pull/2609

Just add a note that surface pressure hofx  values in UFO match  those in GSI after a bug fix which is merged in UFO developed branch: https://github.com/JCSDA-internal/ufo/pull/2987

Validation against GEOS x0048 results (/discover/nobackup/jjin3/jedi/For_others/x0048.jj_20230818/conv/combine_conv/obs/sondes_obs_2021121200.nc4)


Preserving partition params during avro2orc conversion

Passing the necessary source partition info and destination partition info from HiveQueryExecutionWriter.java to HiveConvertPublisher.java via WorkUnit
Params which need to be preserved should be passed via configuration property "hive.conversion.preserve.partitionParameters"
Adding params into the destination partition inside HiveConvertPublisher.java

@abti I added the test, Can you review again?

Merging. Will make changes later if needed.


Fix build issues with recent Runelite changes

I think this is all that's needed to get the plugin running again after they made some recent changes.

@adituv Can you also leave a comment here giving me permission to submit a PR on your behalf to the Runelite repo to update the plugin? (Or you can make that PR yourself, same to me either way)

@robmonte Full permission granted.  I don't play runescape and don't want to maintain this further so I'm happy for you or another to adopt it.

@robmonte Full permission granted. I don't play runescape and don't want to maintain this further so I'm happy for you or another to adopt it.

@adituv In that case, I can change the repo Runelite uses to my own fork so you no longer have to worry about pull requests. Would you prefer that?

That would probably be the best way forward.  If you are willing to adopt this plugin and become the maintainer, feel free.

On 23 Apr 2022, at 20:54, Robert @.***> wrote:
@robmonte https://github.com/robmonte Full permission granted. I don't play runescape and don't want to maintain this further so I'm happy for you or another to adopt it.
@adituv https://github.com/adituv In that case, I can change the repo Runelite uses to my own fork so you no longer have to worry about pull requests. Would you prefer that?
—
Reply to this email directly, view it on GitHub https://github.com/adituv/runedoku-plugin/pull/6#issuecomment-1107639778, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJSGZWVGN5FNXIHNQP5BJLVGRIP7ANCNFSM5UEIVWFQ.
You are receiving this because you were mentioned.

I'll do that then. Thanks for making this plugin for everyone, it's been super helpful!


Thank you note

Thank you for making this. I've wished for something like this in Obsidian since the day I started using it over a year ago. Now I have finally found something that satisfies this want. My links look really good, and I'd just like to thank @nekoshita for making this amazing plug-in.

Thank you for using this plugin!
If there are any additional features you would like, please feel free to create issues, thanks!


IO Exception : unexpected crypto version -1

Decryption problems:
Positioning:
CryptoAlgoGcm.class ---public InputStream wrap(InputStream is, Entity entity)
cryptoVersion = -1;
cipherID = -1;
I find on stackoverflow,  but no one proposed solution.

Not sure if I understand it correctly. But this seems to say that when configuring decryption, when wrapping the input stream... it fails to recognize a valid prefix.
A valid Conceal encrypted content starts with format_version and cipher_id. Format version is (byte) 0x01 and cipherID can be 0x01 or 0x02 (128 bits key, or 256 bits key). When you call wrap input stream, it reads the header right away (version, id, and IV) so decryption can start.
If it doesn't find valid values... it will throw an exception.
I would check in fact if the stream is not at EOF and method read() is returning -1 all the time.


Use layout library to render transition systems

This way, we might be able to get rid of the dependency on graphviz and have a library that is fully self-contained. We could then render transition systems/automata without having to go through an external command.

This was closed in #103 .

This was implemented in #103 .