StatusCode: MovedPermenantly

Hi!
I am trying to use the http authentication from Procurement in Unity. I want to get my inventory to display in OBS. Before, I tried logging in with WWW library from Unity but after I get "hash" and try to login with username and password, I get 500 internal error duplicate token.
Anyway, I found Procurement's source and tried to use it for loggin via username and password but I get:
response.StatusCode == HttpStatusCode.MovedPermanently
Setting request.AllowAutoRedirect to true instead o false makes
       (HttpWebResponse)request.GetResponse();

throw an internal exception.
While I can use POESESSION id to login, it will eventually expire and I don't want to have to update it everytime it expires or I relogin >.> thus I am aiming to find a solution.
I could not find @Stickymaddness 's contact info to ask him/her via email so this is my only option.
Thanks!

The two options for authentication are account email/password and session id.  But, it is hard to know what you are doing wrong without any details.  What is Unity and OBS?  What code are you using from Procurement and how are you using it?

Unity is a game engine I mainly program in.
OBS is a streaming software which broadcasts webcam, the game, and the overlay I am working at. Without login, I can get my public character details but not the inventory items.
I haven't modified anything, just trying to use HttpTransport.cs's Authenticate function, using email/password with useSession=false
    public bool Authenticate(string email, string password, bool useSessionID)

I'm curious what you're writing that requires Unity, if I understand you correctly you're writing an overlay to show inventory?
Something must be off if you're getting those errors, are you able to login with Procurement?

I want to get my inventory so everytime I loot items while streaming, the items appear in the overlay. Each time I get my inventory, I diff with the previous state and spawn the images of the items/currency on my screen with special effects, particles, etc. Since I can't get that information from the game itself, I have to query the server. There's probably ways to hook into the exe but I am a frontend dev :D memory addresses scare me :<
Procurement is the only C# (Unity's lang) project I was able to find and since the code is way, way more complicated than using the WWW lib, I can't find the problem on my own.
Yeah Procurement works fine. Must be something I am doing, but is the problem I am having something you have come accross?

Regardless of this authentication issue, I don't think Procurement or the PoE API in general will be able to do what you want.  Procurement queries the public API to get your inventory contents, and that API lags behind the game by a few minutes.  You won't be able to use Procurement to see details about items in real time.  You would also need to trigger Procurement refreshing its view of your inventory whenever you want to get new information, and that refresh could take up to a couple of seconds, depending on how fast the API responds.
You might be more interested in something like POE-ItemInfo, an AutoHotKey macro that can parse in-game item information on demand.  Or you could manually parse the item info you get when hovering over an item and pressing Ctrl-C.  I imagine Unity could read the contents of the system clipboard and do stuff with the overlay based on what it finds.  But that would require you to perform a manual step (press Ctrl-C over an item) to trigger an update to the overlay.  I don't know of any tools that could do what you want, automatically, in real time (and also not break the ToS).
If you do still want to use Procurement, can you provide a larger code example?  It's not clear to me what you're doing wrong from just what you've said so far.  My only guess so far is you're providing the password incorrectly.


UPDATE: Update PolicyResolver interface in README

Update Requirements as to include Centos LibnetfilterQueue specifics.

Current coverage is 54.89% (diff: 100%)

Merging #97 into master will not change coverage

@@             master        #97   diff @@
==========================================
  Files            19         19
  Lines          3004       3004
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1649       1649
  Misses         1235       1235
  Partials        120        120

Powered by Codecov. Last update a5e4c77...9d486bb


allow custom input rendering by exposing a render function for it

Hey @moroshko this pull request is related to moroshko/react-autosuggest#49
I'm happy to do a PR there as well to pass down the new prop and add some documentation if you'll accept this. I think it's pretty essential to let people override the input element with their own component or components from whatever UI library they use - in my case that would be the TextField from Material UI. Your autosuggest component is absolutely fantastic, this seems to me the only thing preventing it from being used in an even wider range of environments.

@novascreen Could you add please a minimal example here that demonstrates a real world usage of renderInput?

hey @moroshko i've change the prop and added a demo, unfortunately the test setup doesn't work on Windows, so i can't easily add any atm.

@novascreen Sorry, I've been away for a while. Could you please resolve the merge conflicts and update the PR?

hey @moroshko, conflicts are resolved

Will this be merged? We also have a use case for such a feature

@novascreen The demo doesn't start. There are errors in the console.
This is probably because demo/src/components/reducers/app.js was moved to /demo/src/components/App/redux.js.
Could you have a look?

Closing since #21 was merged.


Update en.md

Fixes #
Proposed Changes
Update

lgtm. Waiting for changes to be implemented before merging.


Update Features on bounds changed

I wish to update the features of a layer each time the map changes bounds.
I have looked at @alex3165's talk, and it' similar to the effect at 14:56. However, one crucial difference: if I understood correctly in the video all the features are loaded at init, and the left pane is only filtering based on bounds.
What I wish to achieve is: since I have a lot of features, I don't want to load them all, but only load the ones that are visible, i.e. in the bounds of the map. And every time I drag/zoom/rotate the map, the list of features updates.
Here's how I would do it:
// In the render method
<MyMap
  listings={this.props.listings}
  boundsChanged={map => {
    console.log(map.getBounds()); // This works
    this.getListings(map.getBounds());
  }}
/>

Where this.getListings is an API call which retrieves listings in the bounds and updates this.props.listings.
And here is my implementation of <MyMap />:
// In the render method
      <Map
        style="mapbox://styles/mapbox/streets-v9" // eslint-disable-line
        containerStyle={{ width: '100vw', height: '100vh' }}
        onDrag={boundsChanged}
        onRotate={boundsChanged}
      >
        <Layer
          type="symbol"
          id="listings"
          layout={{ 'icon-image': 'marker-15' }}
        >
          {listings.map((listing) => (
            <Feature coordinates={[listing.longitude, listing.latitude]} key={listing._id} />
          ))}
        </Layer>
      </Map>

However, what happens is that when I drag, the map re-renders, and go back to the initial bounds (around London).

Did you make sure not to break the reference equality of the array you pass as a center to your map?
Also, you can use onMove and onZoom events to define a change of bounds.
You can see the implementation of what I have done for https://monumap.org here: https://github.com/giistr/unesco-map

Any time the map renders and you pass center position it will shift to that center. I had some hairy shouldcomponentupdates first, but I ended up passing user initated moves to state, because I need to offset map center anyway. And that was supported now through the flyto offset.

The center will change only if you break the reference of the array of your center prop. The solution if you want to leave mapbox handling the center is to keep your center in the state and do not break the reference between re-render. If you want to take over the control of the center then you just break the reference by creating a new array, even if the value are the same it will update the center to the center you pass as a prop (zoom work the same way).
It is not natural at first and not very well documented (I will work on it) but I think it is better than keeping the viewport in sync with mapbox's viewport which would trigger lot of re-rendering of the map component like react-map-gl is doing.

I think we can improve the way the map component detect changes (ie more than just reference check).
I'll try to look into that.
Also, @amaurymartiny you should consider using a vector tile source containing your feature if you can change your backend. It will fit perfectly for your use case.

@Wykks Yes my bad, that did the trick. I defined Map inside a function component.
And thank you all for all the comments!


Feature request: IMP Array support

It would be pretty cool if IMP supported arrays or some other form of indexable memory, since this would enable applications like (attempting to) finding Universal Turing Machine programs that compute a specific output :)

Hey, yeah, that would make it a lot more like a real language. I expect that any SMT solver would choke on difficult problems with even a moderate amount of memory involved, but it's always hard to predict ahead of time. There's a good chance it would perform well enough for some problems.
I know of two options for modeling memory: either with Z3's theory of arrays or as a bunch of bitvector variables. On the program synthesis project I worked on at Berkeley we roughly took the latter approach and it worked well enough for small, self-contained programs (and very small amounts of memory).
I probably won't have the time to try something like that myself, but happy to help if you want to give it a go.

Oh, forgot to mention: Souper is a non-toy implementation of the same idea for LLVM IR. If you haven't seen it, it's a good example of how this technique could be useful in the real world.
Skimming over their paper it looks like they don't model memory in Souper at all. Which makes sense because dealing with arrays and arbitrary loads/stores massively expands the search space in a way that SMT solvers are not particularly adept at handling.

it worked well enough for small, self-contained programs (and very small amounts of memory).

I've put a (24,2)-Universal Turing Machine into the Java frontend of AProVE (I had to rewrite it into an absolute monstrosity of if-statements for it to even work), and it could prove the (non-)terminating behavior for all configurations of very short tapes (I forgot how many exactly but around 8 cells maybe). Trying to use any longer tapes resulted in it either running out of memory or just not stopping its analysis in a reasonable amount of time. Unfortunately not even the shortest program description for that particular UTM would fit onto that short of a tape. It would be a cool metric for research progress, or cool art, to visualize which configurations of various tape lengths we are able to prove, and which not (yet).


Add playlist wide option to keep channel names the same as source.

Is your feature request related to a problem? Please describe.
Currently, If the name of the channel changes on the source side it is not updated for the channel in xTeVe. I see there is an option per channel to use  regex to keep single channels updated. I personally do not use xTeVe to manage channel names or EPG, just as a proxy.
Describe the solution you'd like
In the playlist section under a particular playlist, when clicking it, i would like there to be a option that is along the lines of "Sync all channel names with Playlist source"
Describe alternatives you've considered
Currently, I am just deleting and re-adding my playlist which has the desired affect but if it was automatic it would be great.
Addtional comments
adding option of something like "always use EPG ID of Playlist source" might be helpful too if for instance if there was no EPG for a channel then later it was added so you would no longer need to use Dummy EPG and rather use the new EPG ID. Maybe this is already being done?
Essentially on each update I just want to clone everything from the source, apart from adding Dummy EPG for channels without a valid one.

Fixed in #44 . Not sure if it covers your additional comments but this will update the channel name if the M3U file changes.

Syncing channel names works as expected. Thank you!

w00t!


How to use socket.io through all pages of a NS app

Hi,
i have successfully implemented nativescript + socket.io chat.
Problem is that my app has several pages (and one of them is the chat interface). How can i catch socket.io events in any page, and then propagate this event to the other pages ? Typically, i would like that if a user receives a chat msg while he is not on the chat page, that msg would be dispatched to the chat page (or at least have some notification about it).
Thanks very much in advance. I am using plain JS and NativeScript

@demym  can you please share you code if possible. I am using socket.io  with nativescript 2.3.0 and not able to configured it

Hi @demym ,
Can you please tell me how to integrate nativescript with socket io ,i'm trying to implement chat app with nativescript-chatview ,if you could help that would be so obliged.thanks in advance and wish you a happy new year

I would recommend to create an Angular service to handle all socket connection with the server and the broadcast all data through your components/services by using rxjs Observables. The good thing is that Angular uses it and it's one more node_module that comes by default in all nativescript apps so you don't have to install anything, just use it.

You can check the angular demo for and example


non-volatile memory [?]

Hi, long time fan of the blog, just wondering how far down the line / how daunting of a task would you consider non-volatile memory at this stage in the blog?
As an uninformed individual it would seem like one of the last big steps to becoming an almost proper os

Hi,
with non-volatile memory, you mean hard disks and SSDs? This isn't something that I plan to tackle soon, mainly because there are other things that seem more important to me in the short term (e.g. threads, processes, userspace, etc). But there are other resources that explain this, for example you can look at the OSDev wiki for an overview: https://wiki.osdev.org/Storage
Best,
Philipp
On Sun, 6 Dec 2020, at 04:40, Spy wrote:

Hi, long time fan of the blog, just wondering how far down the line / how daunting of a task would you consider non-volatile memory at this stage in the blog?

As an uninformed individual it would seem like one of the last big steps to becoming an almost proper os

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/phil-opp/blog_os/issues/886, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIUGM7ZKJRTU43SMQMS4ELSTL4KTANCNFSM4UPAP7CA.

To get this to work you'd also need to add a few blog posts explaining
things like ACPI, PCIe, and then NVMe. All three are complicated --
even with the acpi crate.
On 12/16/20, Philipp Oppermann<EMAIL_ADDRESS>wrote:

Hi,

with non-volatile memory, you mean hard disks and SSDs? This isn't something
that I plan to tackle soon, mainly because there are other things that seem
more important to me in the short term (e.g. threads, processes, userspace,
etc). But there are other resources that explain this, for example you can
look at the OSDev wiki for an overview: https://wiki.osdev.org/Storage

Best,

Philipp

On Sun, 6 Dec 2020, at 04:40, Spy wrote:

Hi, long time fan of the blog, just wondering how far down the line / how
daunting of a task would you consider non-volatile memory at this stage in
the blog?

As an uninformed individual it would seem like one of the last big steps
to becoming an almost proper os

—

You are receiving this because you are subscribed to this thread.

Reply to this email directly, view it on GitHub
https://github.com/phil-opp/blog_os/issues/886, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIUGM7ZKJRTU43SMQMS4ELSTL4KTANCNFSM4UPAP7CA.

--

You are receiving this because you are subscribed to this thread.

Reply to this email directly or view it on GitHub:

https://github.com/phil-opp/blog_os/issues/886#issuecomment-746131441

--
Signed,
Ethin D. Probst


All worlds are saved as WorldSave version 6

OTG Plugin or Mod

[x] OTG Mod for Forge
[x] OTG Plugin for Spigot

OTG Version

[x] v9 dev builds

What other plugins are you running?
None necessary
Description
When a world is created in v9, its world save version is set to 6 instead of 8, meaning it gets treated as a legacy world and has its CustomBiomes section parsed and loaded
I expected the world to be saved as world save version 8
Every preset I've tested has done this. That's dregora, biome bundle, planets, far from home, traveler's dream, and my own. This also happens in both Forge SP, Forge MP, and Spigot.

should be fixed for 1.12.2 v9_r10


Support for fuzzing timeout

Could you please add a timeout flag/feature to cargo-fuzz(exiting with 0 if no problems were found)?
First time I saw this in zstd's test target.
It runs the fuzzer for 5 minutes on compressions, than 2 minutes on zbufftest and 2 minutes on zstreamtest(9 minutes of fuzzing).
This would be useful in CI(you cannot run continuously).

I just observed the -runs in run.sh.
I still think the timeout is useful because you can precisely control how much time the fuzzing will run - CIs usually have an exact amount of time they wait for output, if nothing appears, it fails.

You can already do this by appending -- -max_total_time=seconds. Use -- -help=1 to see all the underlying options.

cargo fuzz run foo -- -timeout some_timeout
Cargo fuzz accepts all libfuzzer arguments: http://llvm.org/docs/LibFuzzer.html#id16
(We could be better at documenting this, thoughts, @frewsxcv ?)

Yeah, we should document -- -help=1 somewhere

-timeout is wrong. This is the time until a single test run is considered to be a failure.

Added some commandline docs in https://github.com/rust-fuzz/cargo-fuzz/pull/117


bump lucide-static version to 0.436

Bump lucide-static version to 0.436

@Pt4r thanks for your contribution, sadly my github action just updated the version, so I can't merge this anymore.
I normally update the version every month, since lucide tends to update very fast.

@GrimLink no worries mate. Could you let me know when a new npm version is going to be released?

Just did @Pt4r


Admin page not accessible (under certain conditions)

I'm exporting data from a table defined by a PTE extension. Let's call the extension ADLSTestApp and the table PTEADLSTestData.
When I uninstall ADLSTestApp (without removing the extension data), I start getting the following error when accessing the Export to Azure Data Lake Storage admin page.

The admin page never opens, so the BC2ADLS extension is rendered practically unusable.
I tried removing and reinstalling BC2ADLS, but now even the installation fails:

It was all done in a test environment, so there is no actual emergency. However, if it would happen in live environment, I would have to re-configure and re-initialise exports for a few hundred tables, which is somewhat worrisome.
Am I overlooking something or would I have to manually check BC2ADLS selected tables, any time I'm removing any PTE extension, lest I break BC2ADLS?

Hi @martroben,
Moslty when you remove tables you do it with the obsolete state. Then you can still enter bc2adls and also there is an option on it to fix incorrect data. Maybe also that can be a report that you can run outside bc2adls page.
But in a sandbox is you remove extensions you should first remove it from your schema.

Do you know if using obsolete state when dropping tables is just best practice recommendation or an actual requirement that is hard coded in Business Central live environment?
If obsolete state is just best practice, I find it quite a critical vulnerability for BC2ADLS. Random change to some third-party table can utterly brick the solution.

Obsolete is a best practice. But if you upload your extensions in appsource you must have the path of obsoleting tables and fields because other apps can depend on your app.


purchaseUpdatedListener is called multiple times on android

Please use the Discussion board if you want to get some help. Please use issues to report bugs.

purchaseUpdatedListener is called multiple times on android
to be called once per payment.
Screenshots

Environment:

react-native-iap: ^12.4.9
react-native: 0.70.6
Platforms (iOS, Android, emulator, simulator, device): Android only device

To Reproduce
Steps to reproduce the behavior:

Basic setup.
Try to buy something from a real android device.
You will get multiple purchases from the listener.

[Optional] Additional Context

Hey,
@kabus202 I have the same issue, did you find the reason?

Have same issue

Made this workaround to get by:
import * as IAP from "react-native-iap";
const listenOnce = useRef(null)
useEffect(() => {
  const sub = IAP.purchaseUpdatedListener( async(event) => {
     if( JSON.stringify(listenOnce.current) !== JSON.stringify(event) )
     {
        listenOnce.current = event;
        //handle purchase stuff
      }
    })
    return () => {
      sub.remove();
    };
  }

I'm not able to reproduce it, please try the IapExample app?

@mscottwvc , @andresesfm
Thanks for checking.
Looks like the issue is related to how we are adding the listeners.
I was adding each listener in a separate useEfect. for some reason has that issue on Android.
but when I changed it and put them in same useEffect that I was initiating the connection it got fixed.
 useEffect(() => {
    let purchaseErrorListenerSubscription;
    let purchaseUpdatedListenerSubscription;

    const startConnection = async () => {
      try {
        await initConnection();
        isAndroid() && flushOldfailedAndroidPurchases();
        const productList = await getProducts({ skus: itemsSku });
        if (productList?.length > 0) setProducts(productList);

        /**
         * ... listen to currentPurchaseError, to check if any error happened
         */
        purchaseErrorListenerSubscription = purchaseErrorListener(currentPurchaseError => {
          if (currentPurchaseError) {
            // Do with errors
          }
        });

        /**
         * ... listen to currentPurchase, to check if the purchase went through.
         */
        purchaseUpdatedListenerSubscription = purchaseUpdatedListener(purchase => {
          const checkCurrentPurchase = async purchase => {
            if (purchase) {
              // Do success stuff
            }
          };
          checkCurrentPurchase(purchase);
        });
      } catch (error) {
        // Error handling
      }
    };
    startConnection();

    return () => {
      if (purchaseErrorListenerSubscription) {
        purchaseErrorListenerSubscription.remove();
        purchaseErrorListenerSubscription = null;
      }
      if (purchaseUpdatedListenerSubscription) {
        purchaseUpdatedListenerSubscription.remove();
        purchaseUpdatedListenerSubscription = null;
      }

      endConnection();
    };

  }, []);


Issue #799 Lazy OffHeapValueHolder deserialization

This is a proposition for a solution to issue #799.
It was refused back when in the context of #369 as the number of deserialisation that we gained were not that high.
However in the face of performance test results, I believe it is worth having the discussion again.
Note that the real effectiveness of this change depends on the outcome of #790

Latest update of this PR is not ready for merge. It even triggers a potential off heap bug.

This is now up to date and ready for review prior to merge.

Line 884 of AbstractOffHeapStore should use TimeUnit.MILLISECONDS not OffHeapValueHolder.TIME_UNIT.

Indeed, I will fix that issue as well.


fix of import/export commands

Commands lachesis export and lachesis import store and check genesis hash in export file.
It prevents event importing into incompatible DAG.
Command lachesis import ignores already existing event.

Codecov Report

Merging #494 into develop will decrease coverage by 0.18%.
The diff coverage is 9.09%.

@@             Coverage Diff             @@
##           develop     #494      +/-   ##
===========================================
- Coverage    47.16%   46.98%   -0.19%
===========================================
  Files          193      193
  Lines        14010    14035      +25
===========================================
- Hits          6608     6594      -14
- Misses        6824     6864      +40
+ Partials       578      577       -1

Impacted Files
Coverage Δ

cmd/lachesis/export.go
0.00% <0.00%> (ø)

cmd/lachesis/import.go
0.00% <0.00%> (ø)

gossip/consensus_callbacks.go
11.29% <50.00%> (+1.47%)
:arrow_up:

inter/ascii_scheme.go
80.50% <0.00%> (-3.39%)
:arrow_down:

gossip/execqueue.go
89.13% <0.00%> (-2.18%)
:arrow_down:

evmcore/tx_pool.go
74.70% <0.00%> (-0.53%)
:arrow_down:

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 6aaf30e...9a1047e. Read the comment docs.


Update code-snippets.md

Fix code block error

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

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

Verified the fix in preview. Thanks @tgburgin


Allow click cancelation

If an earlier click handler occurs, and it prevents default, the jqm click handler is cancelled. This is to prevent ajax loading of dialogs if user wants to cancel event.

@ayyash -- I've merged this. my intent was to assign only elements/collections to jqmAddTrigger, and I was surprised to see that passing it a function worked! :)
I would typically handle this case with a custom onShow callback -- performing validation there and refusing to call hash.w.show(); until it passes.


fix: add .ddoc prefix to tailwind classes output

ddoc for a shorter deno-doc to not overly bloat up the tailwind output

Even just dd?

that might work, but dd is a html element, so maybe just to be clear enough that its something not related to that

.d? :D

🤣 a bit too abstract imo. but dont have a strong opinion with any of these, just as long as they are understandable

Let's land as is then.


Destruct record fields

I was trying to destruct records fields and noticed it wasn't supported. More specifically, with my cursor on the _ character I :MerlinDestructed and got Nothing to do.
type r = {a:int; b:int; c:int; d:int;}
let f {a;_} = a + b + c + d

[Note: obviously the actual example is a bit different.]
I expected the pattern to complete. It could either go as b=_;c=_;d=_; or (even better) with punning b;c;d;.
Does it make sense? Anyone else would find this helpful?

About record fields completion, see also :
https://github.com/the-lambda-church/merlin/issues/296


Missing deployment part on TensorRt

❓ Questions and Help
You make reference in the paper and on Huggingface to a tensorRt deployment but I can't find the code.
Do you plan to share it too?
As far as I know the nvidia repo has only examples for their own models (all bert based), it's a bit hard to try it on our own without an example.

We did not opensource our code for TensorRT deployment. We are planning to deploy our model using TVM which I think is a more suitable framework for an opensource project, but cannot be sure of the exact date.

Thank you @kssteven418 for your answer.
Don't know about the open source thing... most of us are already using cudnn stuff, nvidia drivers, etc. so far Nvidia GPU implies some non open source parts. Plus having both a script for TVM and another for tensorRT would be interesting to benchmark (strangely there is very few independent measures on big LM + TensorRT / TVM / ORT). To finish, I was looking for resources on how to use tensorRT with huggingface models and listened that virtual conf https://events.nvidia.com/meettheexperts5?ncid=so-twit-46587-vt04, at the very end their engineer Mr Boudier explained that they were not gonna share their optimizations to run models on tensorRT, it was reserved to the huggingface cloud clients... (at least they are transparent about their intent). So any indication on that part may help the community to make progress on the inference side.
That said, I understand your view, TVM is a great project, well run, with a community first approach, so it makes sense to push that project that is not enough well known (IMO) in the NLP community (compared to ORT for instance).
Anyway, if possible, I would really appreciate any guideline to run in a performant way your model on a GPU :-) (even if no code is provided)

@kssteven418 I've also been trying to export the model to ONNX (from pytorch) for deploying on TRT. It seems like it needs a custom operator for the SymmetricQuantFunction and possibly the other layers too. Are you able to share your custom operators?
I also agree with @pommedeterresautee 's point on benchmarking the differences, so it'd be fantastic if you were able to share the deployment code or custom onnx ops for TRT.
Thanks!


SQLAlchemy 1.4: On ORM DELETE operations, rowcount=-1 is wrong

Hi there,
@thdud1744 and @AndreyKuchko reported a problem when migrating from SA13 to SA14. I've created two gists which approach and narrow down the problem in a reproducible way.
The first example ^1 runs a few insert and delete operations using the SQLAlchemy APIs in all different ways of:

SQLAlchemy Core
SQLAlchemy ORM+Core
SQLAlchemy ORM-only

The problem is only present on SQLAlchemy 1.4 in ORM-only mode, so the second example ^2 focuses on this. The program works well on SQLAlchemy 1.3 and 2.0, where it correctly returns the number of deleted records (2). However, on SQLAlchemy 1.4, it returns -1 there.
With kind regards,
Andreas.

SQLAlchemy 2.0 will standardize the production of SELECT statements across both Core and ORM by making direct use of the Select object within the ORM, removing the need for there to be a separate Query object.
-- SQLAlchemy » Querying (2.0 style)

Because 2.0-style querying is already supported by SQLAlchemy 1.4, and .rowcount is properly populated when using it, I think we will not try to fix this for SQLAlchemy 1.4.
If you still need to work around the problem on SQLAlchemy 1.4, you would need to make sqlalchemy.engine.cursor.LegacyCursorResult.close a no-op. Please note this not in any way an official recommendation, it is merely only what I've figured out.
from unittest import mock

with mock.patch("sqlalchemy.engine.cursor.LegacyCursorResult.close"):
    # your code

Again, the recommendation is to use 2.0-style querying, and NOT applying this workaround.


Create cRio server for learning algorithms

Create learning algorithms that adjust auto values, passing values, and firing values when a task is completed correctly or incorrectly.  Have server like Cheesy Vision server that accepts values from a GUI apposed to video inputs log values(from the GUI) in to a csv file and have the learning algorithms change the code to increase the probability of success.  If the server is unable to be accomplish, then attach spray paint cans to the bot, facing the ball when stored and individually mark the balls with ultraviolet paint.  Then connect a kinect that is facing the entire field to the driver station and have it do the calculations and submit the scores.  If that does not work then we can use tracking balls for testing and then correlate the values to a 3-D environment where we can run simulations.  And if none of these work then log into the FMS and receive scoring values from the actual match live.

Wow...So nieve


Setup project on local machine

Finished setting up the project:

[x]  Added the linters files.

[x] Added all the required packages for webpack.

[x]  Created the HTML, CSS and use es6 import.

@Abenezer-Tilahun thank you so much for reviewing the project, but I really don't understand what I have missed here. can you elaborate more on why the git-flow is incorrect?


Fixing image hierarchy + index

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/index.md
:white_check_mark:Succeeded

windows-iotcore/learn-about-hardware/USB-Support.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Allow command line parameters in place of prompts

Further scripting & automation would be aided by having setup-piForHeadlessConfig.ps1 and setup-teslausb accept command line parameters and prompt for the values only if the command line values are not present.
setup-piForHeadlessConfig.ps1 needs SSID & key
setup-teslausb needs archiveserver, sharename, shareuser, sharepassword, campercent
Perhaps this would help make regression testing easier as well?

When I was working on the previous problem, it would have been really nice if I could have just setup a single command line like
setup-piForHeadlessConfig.ps1 e myssid mykey myserver myfolder myuser mypass mysplit
then have it run through the PowerShell which would hopefully even setup a runonce so that the setup-teslausb starts automatically upon booting the Zero and it could reboot at the end.  After running the PowerShell all you do is move the SD card to the Zero and plug it in and let it go and it should finish.

Experiments are currently underway to evaluate the feasibility of a single-step process: https://github.com/cimryan/teslausb/issues/39
The official image for the Pi lacks a run-once system, and the work involved in creating and maintaining a new image is significant.
Until someone adds the support you're describing (and please feel encouraged to submit a pull request, yourself), the PowerShell script current supports command-line parameters, directly, and setup-teslausb can be invoked from a script, like this:
#!/bin/bash
export archiveserver=foo
. . .
setup-teslausb

Give this flashable image a try. Write to card, reinsert it into PC so it mounts boot folder. Then create in boot a file called teslausb_setup_variables.conf and put the vars in it like so (no quotes on any):
export archiveserver=your_archive_name_or_ip
export sharename=your_archive_share_name
export shareuser=username
export sharepassword=password
export campercent=100
export SSID=your_ssid
export WIFIPASS=your_pass

Boot it in your Pi, give it a bit, watching for a series of flashes (2, 3, 4, 5, maybe 6) and then a reboot and/or the CAM to become available on your PC/Mac.
The Pi should be available at teslausb.local over Wifi (if it works) or USB networking (if it doesn't). Takes about 5 minutes for me.
I forgot to create the TeslaCam folder, so you'll need to do that before taking to your car.

LMK if it does/doesn't work for you please, feedback needed! :) Worked great just now; I've only tried it with campercent=100.

@skipfire check out my latest comment/image on #39 and see if that style of setup suits you versus prompted arguments. Trying to feel out the user experience and see if just using a .conf file works in general better/easier for folks. (It can then be commented and such too, to provide extra guidance.)

Closing this out, the OneStepSetup process covers this enhancement.


RD Combiner: 11

Finally (almost)
Implements the AnnotateDataset Stage - this is a duplicate of the previous version, in a stand-alone script.
This has one important improvement - the previous stage (SubsetMT) may or may not run depending on the number of datasets in the run. this Stage uses the same logic.

if datasets == 1, use the AnnotateCohort MT as input
otherwise, use the SubsetMT output as input

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 26.72%. Comparing base (a037ced) to head (6d7b13c).

Additional details and impacted files
@@                Coverage Diff                 @@
##           rd_combiner_10    #1040      +/-   ##
==================================================
- Coverage           26.78%   26.72%   -0.07%
==================================================
  Files                   9        9
  Lines                1725     1729       +4
==================================================
  Hits                  462      462
- Misses               1263     1267       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Not working now

What version & build of Windows are you running? Make sure you are using the latest version v1.0.1 and not the older first release.

Im using v1.0.1
the menu opens in the game, but the functions do not work :(

21H2 19044.1826

Will you release a new version?

I have windows 10 and even though my windows defender is completely disabled, the driver still won't load.

Please upload a screenshot of the command prompt/terminal window after launching FlyingGuys.exe

I can Open the window but the functions can't work.

i am on Steam version.
it built by my self.

im on windows 11 21h2

New version released - Use only the epic version and not steam


Errors with get_unspents()

I'm getting an error with get_unspents() roughly half the time. The problem seems to be that sometimes the BitcoinDotComAPI is called (which isn't working) and sometimes it's BitcoreAPI (which is). Can the BitcoinDotComAPI.get_unspent() method be removed from NetworkAPI?

What version of BitCash are you running?

BitcoreAPI is actually not working and being removed from the codebase. As for the main API, it is customisable and you can replace it with your own node if you find the public on unreliable (even though it has been reliable for me so far).

I'm using 0.6.3, the latest as far as I can tell. I was getting errors with get_unspent() for both mainnet and testnet yesterday. Testnet uses the trest.bitcoin.com API which is shutting down. I figured out how to call the BitcoreAPI.get_unspent() directly. Mainnet uses rest1.biggestfan.net which should be fine? I'm not getting any errors today, so I can close the issue.
What's wrong with BitcoreAPI? I'm not having any problems with it.
My own node would be nice. I don't think my university will pay for/manage it, unfortunately.

Mainnet uses rest1.biggestfan.net which should be fine? I'm not getting any errors today, so I can close the issue.

Would you have timestamps or more data on the failing requests for rest1.biggestfan.net? This is something @nicolaiskye and @nexerino might be interested in.

What's wrong with BitcoreAPI? I'm not having any problems with it.

It has been very unreliable in the past. I haven't tried it recently, but we have a better solution now.

#102 makes it more easy to customise API endpoints


Build Failed image_picker:verifyReleaseResources

SHOWSTOPPER
!! Not able to release the app update to playstore due to this issue. Request to resolve ASAP
I'm facing the issue only after upgrading from 0.5.1-Beta to 0.9.4-Beta
Steps to Reproduce
dependencies
dependencies:
  flutter:
    sdk: flutter
  adhara: ^0.1.41
  fluttertoast: ^2.0.9
  font_awesome_flutter: ^8.1.0
  image_picker: 0.4.10
  video_player: ^0.6.5
  firebase_messaging: ^2.0.0
  flutter_local_notifications: 0.3.9
  image: ^2.0.4
  simple_moment:
      git: https://github.com/rinukkusu/simple_moment
  flutter_swiper: ^1.1.3
  path_provider: ^0.4.1
  flutter_socket_io: ^0.4.3
  html: ^0.13.3+3

Try to build
Logs
Initializing gradle...                                      17.7s
Resolving dependencies...                                   10.1s
Gradle task 'assembleRelease'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':sqflite:verifyReleaseResources'.
> java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aa
pt2Exception: AAPT2 error: check logs for details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --s
can to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 45s
Gradle task 'assembleRelease'... Done                       166.2s
Gradle task assembleRelease failed with exit code 1

flutter doctor -v
[√] Flutter (Channel beta, v0.9.4, on Microsoft Windows [Version 10.0.17134.345], locale en-IN)
    • Flutter version 0.9.4 at C:\flutter
    • Framework revision f37c235c32 (2 weeks ago), 2018-09-25 17:45:40 -0400
    • Engine revision 74625aed32
    • Dart version 2.1.0-dev.5.0.flutter-a2eb050044

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at C:\Users\Rohit\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = C:\Users\Rohit\AppData\Local\Android\sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 26.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] Connected devices (1 available)
    • ONEPLUS A5010 • f0f79579 • android-arm64 • Android 8.1.0 (API 27)

• No issues found!

Try to run the flutter clean command in your project folder and try to build again.

Thanks a lot @berosoboy. That worked like a charm

It's highly recommended to run a flutter clean after the upgrade.
I think it's very important to be mentioned in the flutter upgrading docs: https://flutter.io/upgrading .
And it could be recommended after the upgrade command in the console.

Sounds like this is solved. Thanks @berosoboy!

Try to run the flutter clean command in your project folder and try to build again.

OMG, i can't believe it's worked. Thanks a lot, really, i was loosing so much time with it.


Introduction | web page structure | visual attributes -- wrong task type

Introduction | web page structure | visual attributes is -- Edu task type now, but it's a Theory in fact and have no tests.
Suggestion: change its type to Theory

Out of date, fixed here: https://github.com/jetbrains-academy/Testing-Course/pull/82/


Handle reads with the index past the last block

Return an empty string when asked for a chunk that's outside of the stored blob.
If the end of a blob happens to match the end of a block, a BlobReader may ask for the next chunk as it does not know it has read the end of the blob. In that case, it does not make sense to claim that the blob does not exist. Rather, like a typical file handle, it should return an empty byte string.

https://ocd.appscale.com:8080/job/Daily Build/5056/


semantic-release CI error

https://github.com/casdoor/casdoor-nodejs-sdk/runs/5128321069?check_suite_focus=true

@nodece

@fabian4


Niffler doesn't send Grin coins

Node is working peer to peer, but nothing is send and it stays on unconfirmed?
I could receive it easily, sending to Tradeorge is a problem.
I made slatepack. At tradeogre.com paste slatepack. At tradeorge stays on pending and in Niffler on unconfirmed?
I saw 0 peers, I restarted the Grin node, but after 8 peers connected nothing happens?
What else can I do or what am I doing wrong? For me the first time sending Grin coins.
Also to send to bitforex.com via HTTP address given by Bitforex, only Niffler wallet doesn't accept the HTTP webaddress?
Your answer so far: do you installed the lastest version of Niffler, which is v0.7.0.
go for help to support channel https://t.me/nifflerwallet
My answer again: Yes, I have the latest version. It doesn't matter, it remains all the same. That I cannot send.

Don't close it down, when it is not sovled yet.

Please don't close ticket down, when it isn't solved yet.

I use Malwarebytes, maybe it is blocking the port for going out?

deposit tradeogre need 3 step, and at the last you need, finalize tx.
Niffler does have http/https send option, send --> send via http/https

Thanks, with your answer I could solve it. That 3 steps did it. You can close ticket now.


Fix ruff server hanging after Neovim closes

Summary
A follow-up to https://github.com/astral-sh/ruff/pull/11222. ruff server stalls during shutdown with Neovim because after it receives an exit notification and closes the I/O thread, it attempts to log a success message to stderr. Removing this log statement fixes this issue.
Test Plan
Track the instances of ruff in the OS task manager as you open and close Neovim. A new instance should appear when Neovim starts and it should disappear once Neovim is closed.

Do you think this would work as expected if we were sending messages via the LSP protocol? Or same issue?

That wouldn't work because the I/O with the client has shut down at the point where we log this. However, it would at least fail instantly instead of just waiting forever.

How can we avoid this in the future? It seems error prone to rely on tracing not being used after the main loop ends (it may even be a dependency that writes a trace, maybe even a third party dependency

Any ideas? I don’t understand the root of the problem well-enough.

Not understanding the root cause is what makes me wary of the fix. It's a good fix to unblock users but it seems fragile to me long term.

I can do some further investigation into why the tracing log was blocking.

the ruff server is not the subprocess of nvim. is this relevant to it?


Alternative to #583.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #588   +/-   ##
=======================================
  Coverage   13.06%   13.06%
=======================================
  Files          10       10
  Lines        3123     3123
  Branches      728      728
=======================================
  Hits          408      408
- Misses       2703     2708    +5
+ Partials       12        7    -5

Impacted Files
Coverage Δ

lint/python_linter.py
14.39% <0%> (ø)
:arrow_up:

commands.py
0% <0%> (ø)
:arrow_up:

lint/linter.py
18.12% <0%> (ø)
:arrow_up:

lint/highlight.py
26.2% <0%> (ø)
:arrow_up:

lint/util.py
16.36% <0%> (ø)
:arrow_up:

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 a5f6c28...1687fb0. Read the comment docs.

@groteworld builds are failing, which isn't really inviting for contributors. This solution seems preferable over #583, and just merging this seems a lot less work than fixing all the comments. We could do that at some point, but I think the primary concern should be to keep people on board and contributing improvements.

These docs have been updated in favor of ignoring. Thank you for your contribution though!!

I believe I can either restart the builds but if not i will manually run through the build. I'll look into that now. Thanks again!


White lines with maptiles

Checklist

[X] I've looked at the documentation to make sure the behavior isn't documented and expected.
[X] I'm sure this is an issue with Leaflet, not with my app or other dependencies (Angular, Cordova, React, etc.).
[X] I've searched through the current issues to make sure this hasn't been reported yet.
[X] I agree to follow the Code of Conduct that this project adheres to.

Steps to reproduce
When zooming into a map, white lines show up.
This behaviour is app independant and can also be seen on the demo pages, for example: https://leafletjs.com/examples/wms/wms.html
Screenshot from above demo pages with latest Chrome:

Expected behavior
No white lines should appear.
Current behavior
When zooming into a map, white lines show up.
Minimal example reproducing the issue
https://leafletjs.com/examples/wms/wms.html
Environment

Leaflet version: 1.7 and 1.8
Browser (with version): On Desktop basically all browsers, Safari Version 15.6 (176<IP_ADDRESS>.5), Chrome 104.0.5112.101
OS/Platform (with version): Mac

Duplicate of #3575


fix : Bootstrap column on mobile

Hi @MGatner and thank you for the approval
Indeed, I also think that it is possible to reduce this duplicated code, but I don't know what would be the best way to do it
In the "layout.php" file maybe?


Custom nginx reload interval

LGTM!
The last commit message is probably wrong though.

Nah, it'll be squased before I merge.


Enhance available_date query to support browser-specific filtering

Currently, the available_date query allows users to search for features that became available within a specified date range, regardless of the browser. While this is useful, there's a potential inaccuracy in its behavior when combined with browser-specific filters like available_on.  Additionally, we need a more granular filtering option where users can explicitly specify the browser in which the feature became available within the date range.
Current Behavior (available_date without browser prefix) - Potential Inaccuracy

Query: available_date:2023-01-01..2024-01-01 AND available_on:chrome
Intended Interpretation: Find features that became available specifically in Chrome within the date range, AND are currently available in Chrome.
Actual Behavior: Finds features that became available in any browser within the date range, AND are currently available in Chrome. This can lead to unexpected results if a feature was first released in a different browser within the date range but is now also supported in Chrome.

Desired Behavior (Proposed: available_date:browser syntax)

Query: available_date:chrome:2023-01-01..2024-01-01
Interpretation: Find features that became available specifically in Chrome within the specified date range.

Example Data

Feature
Browsers (with availability dates)

Feature A
Chrome (2023-03-15), Firefox (2023-06-01)

Feature B
Chrome (2022-12-30), Edge (2023-02-10)

Feature C
Chrome (2023-09-20)

Feature D
Firefox (2023-05-05)

Query Results (Illustrating the Inaccuracy)

Query
Current (Potentially Incorrect) Results
Desired Results

available_date:2023-01-01..2024-01-01 AND available_on:chrome
Feature A, Feature B, Feature C
Feature A, Feature C

available_date:chrome:2023-01-01..2024-01-01
Feature A, Feature C
Feature A, Feature C

available_date:edge:2023-01-01..2024-01-01
Feature B
Feature B

Proposed Solution

Introduce a browser-specific prefix to the available_date term: available_date:<BROWSER_NAME>:<DATE_RANGE>
Modify the availableDateFilter function to incorporate the browser-specific check when the browser name is provided.

Benefits

Fixes Inaccuracy: Ensures that the available_date filter accurately reflects the browser in which the feature became available.
Enhanced Search Functionality: Provides a more precise way to search for features based on their browser-specific availability dates.
Clearer Syntax: The new syntax is more explicit and intuitive for users.

Implementation Notes

Update the grammar to recognize the new syntax.
Modify the corresponding visitor method to handle the browser prefix.
Enhance the availableDateFilter function to incorporate browser-specific filtering logic.

Additional Considerations

Ensure comprehensive test coverage for both the general and browser-specific available_date queries.
Update the query documentation to explain the new syntax and the potential inaccuracy in the current behavior.

By addressing this issue, we'll improve the accuracy and flexibility of feature searches, providing a more reliable and user-friendly experience.

Reviewers can try it out on staging: https://website-webstatus-dev.corp.goog/?q=available_date%3Achrome%3A2023-01-01..2024-01-01


get haf_grasping doc indexed for rosdistro jade

It looks like you were starting with an out-of-date branch and there are conflicts.

sorry for the inconvenience, should be synchronized now


Change "Component" to "Name" in Edit Conclusion screen

The current Edit Component screen has the label "Component", but that field is shown as only "Name"elsewhere. We should change to Name in the Edit Component screen since the data is neither explicitly for a Component versus a Package. There may be other references to update in the same way.

@mjherzog After tweaking some of the view code I have the following:

I adjusted the default status text a little bit; I can make other adjustments if necessary.

Merged #256, closing this.


Create a composition DSL

Will likely require getting more familiar with wiring diagrams.  Generating them from equations, maybe?

Can close this one too


Basic value unions implementation

It's a bit wasteful, but seems to work. There's also some weird error on union like this:
[<Struct>]
type U = | C

but I think it may be protobuf's bug.

Just reviewing this briefly. While interoperability and clean protobuf contracts aren't the primary goal of this library, the contract that protobuf-net emits for these types isn't ideal.
The ValueOption case...
syntax = "proto2";
package ProtoBuf.FSharp.Surrogates.Generated.Microsoft.FSharp.Core.FSharpValueOption`1[[System.String, System.Private.CoreLib, Version=5.0.0;

message 0\, Culture=neutral\, PublicKeyToken=7cec85d7bea7798e\]\] {
   optional string Item = 1;
   optional int32 tag = 2;
}

vs any other union...
actual:
syntax = "proto2";
package ProtoBuf.FSharp.Unit;

message CaseOne {
   repeated int32 numbers = 1;
   optional int32 tag = 2;
}
message CaseThreee {
   optional string singleData = 1;
   optional int32 tag = 2;
}
message CaseTwo {
   repeated string strings = 1;
   optional int32 tag = 2;
}
message UnionNine {
   optional int32 tag = 1;
   oneof subtype {
      CaseOne CaseOne = 1000;
      CaseTwo CaseTwo = 1001;
      CaseThreee CaseThreee = 1002;
   }
}

Btw if we could use surrogates for all unions this isn't a change I would actually mind. I will need to review the final representations of surrogates for the following cases.

Value Unions (Single Case, Two Cases, Three Cases, Four Cases, 8 Cases)
Reference/Normal Unions (Single Case, Two Cases, Three Cases, Four Cases, 8 Cases)

If we introduce this change I want to make sure changing a union from reference to struct/value doesn't cause too much of a client breaking change by keeping the schema representation the same.
The other idea I'm toying around with is whether we should use F# Quotations/Compilers to generate this code instead of direct Reflection.Emit; maybe something along the lines of http://fsprojects.github.io/FSharp.Quotations.Evaluator/. If it works well it would make things easier to review and help other contributors who aren't so versed in IL.

Well, that's why it's "basic" --- value unions are represented by F# as just structs where all union fields are bunched together and Tag defines what subset of fields you should look at. Currently (as with value records) If value union doesn't need fixing nulls then surrogate isn't generated and regular struct serialization is used (it generates a lot of unneeded garbage). Surrogate in this PR follows that structure.
If we want sensible protobuf representations then always using surrogates is probably the only possibility. Even in the second example above all tag-s that can be got rid of (by creating surrogate subtype for union case without fields).
Can FSharp.Quotations.Evaluator emit types? Expressions there are very simple anyway: just call constructor and copy a few fields, and it's not like quotations themselves can be used --- expression DOM is probably needed to be generated manually from reflection information and then passed to FSharp.Quotations.Evaluator.

I poked around for a few hours and it looks like subtypes don't work together with surrogates.

Yeah, https://github.com/protobuf-net/protobuf-net/blob/1bddeafb3e1e68c29b89b67a68ee16f42e059537/src/protobuf-net/Meta/MetaType.cs#L149-L150 doesn't look very encouraging

This hack almost works:

Declare class inheritance hierarchy that mirrors union's structure and register it into protobuf-net model
Declare surrogate type with a single field of hierarchy's base type and register it into model
Define surrogate type in model as surrogate for union itself and all it's public subtypes
Define inside surrogate type conversion operators for union and all it's public subtypes

There are problems here.
Firstly, protobuf-net explodes stack if you try that on value unions: https://github.com/protobuf-net/protobuf-net/issues/805
And secondly, sometimes union cases with no fields are represented by private subtype of union and in that case approach like above causes access exceptions. If you just ignore private subtypes corresponding test cases pass, but I don't understand why. And there may be problems with union cases explicitly declared as non-public.

I need to think about this a little more but I think a reply to the things I can answer.

Firstly, protobuf-net explodes stack if you try that on value unions: protobuf-net/protobuf-net#805

I'm happy with interoperability with F# over performance for this case. I would just make the surrogate not a struct if it means we get around the issue for now.

And secondly, sometimes union cases with no fields are represented by private subtype of union and in that case approach like above causes access exceptions. If you just ignore private subtypes corresponding test cases pass, but I don't understand why. And there may be problems with union cases explicitly declared as non-public.

This could be because the "Tag" field is serialised on the parent and as such all the generated compile time logic works. You can see it on tools like https://sharplab.io/ as a quick guide to see how unions are compiled if I try different combinations.
For example a eight case union with no fields testing for case 7 (zero indexed) looks like the below.
    public static void testFunc(TestType x)
    {
        if (x.Tag == 7)
        {
            PrintfFormat<Unit, TextWriter, Unit, Unit> format = new PrintfFormat<Unit, TextWriter, Unit, Unit, Unit>("Pass");
            PrintfModule.PrintFormatLineToTextWriter(Console.Out, format);
        }
        else
        {
            PrintfFormat<Unit, TextWriter, Unit, Unit> format = new PrintfFormat<Unit, TextWriter, Unit, Unit, Unit>("Fail");
            PrintfModule.PrintFormatLineToTextWriter(Console.Out, format);
        }
    }

To get around this the surrogate should use the FSharpType union constructors. Technically any union could be deserialised via https://fsharp.github.io/fsharp-core-docs/reference/fsharp-reflection-fsharpvalue.html#PreComputeUnionConstructor as long as the surrogate contains the case information and the list of fields for each case. It would always work BUT the surrogate needs to support oneof's which given how protobuf-net models them is unlikely OR the surrogate would need to have optional fields that aren't serialised across the wire with a "Tag" field. The second would definitely work but isn't clean proto schema.
None of the above's are the ideal clean state where union cases are expressed as "oneof"s in a standard format no matter the input union type (no field values, some field values, less than 3 union cases, 3 or above union cases, etc).
If we go down this path I would want to have two different schema generators in the "registerUnion" registration methods. One for the old method, one for the new. The new would be highly compatible and extensible but the schema for unions wouldn't be as nice.

Apologies, stack overflow happens when message type is struct, not surrogate (I chose really bad name for that issue). As so, approach with surrogate with inheritance hierarchy wouldn't work for value unions until stack overflow is fixed. Regular unions work ok.

OR the surrogate would need to have optional fields that aren't serialised across the wire with a "Tag" field.

I've just pushed preliminary implementation of that under registerUnionRuntimeTypeIntoModel' function and it passes all test cases. If you're ok with schemes it generates I'll finish it.

None of the above's are the ideal clean state where union cases are expressed as "oneof"s in a standard format no matter the input union type

Surrogate with inheritance hierarchy yields a schema that's probably as good as it gets: message with just oneof of all submessages inside and all submessages contain just corresponding union case fields --- no additional garbage. The only problem is it overflows stack for value unions.

BTW, I noticed that Some [||] is currently getting transformed into Some null since Option<> surrogate doesn't apply zero values logic. There's no analogous problem with string since protobuf-net doesn't turn empty string into null (so there's no need for zero value for string?).
Also, are there any non-obvious problems with wrapping F# collections into surrogates? I tried wrapping List<> and it seems to work.

BTW, I noticed that Some [||] is currently getting transformed into Some null since Option<> surrogate doesn't apply zero values logic. There's no analogous problem with string since protobuf-net doesn't turn empty string into null (so there's no need for zero value for string?).

I'm guessing this could be fixed by fixing the option surrogate. Good catch. Raise an issue on the repo, or raise a PR if your keen to fix it.

Also, are there any non-obvious problems with wrapping F# collections into surrogates? I tried wrapping List<> and it seems to work.

There are unfortunately issues. I have a long standing PR on this repo that is effectively abandoned trying to solve this without using the surrogate approach. It requires changes upstream in protobuf net. See https://github.com/mvkara/protobuf-net-fsharp/issues/1 and the associated upstream PR to protobuf-net to unblock this. Unfortunately protobuf-net has drifted since then so the fix I posted quite a while ago may no longer be relevant. It is, from last time I looked at it, almost impossible to add your own collection types.
Even with a surrogate you would still need to use a collection type protobuf-net supports which means significantly more memory allocation per message (e.g. surrogate would have an array that then needs to be convered into for example an F# list). My feel at the time, given people typically adopt protobuf as a faster serialiser especially in a code first workflow was to just not support it until there is a way to directly build the collection.

Raise an issue on the repo, or raise a PR if your keen to fix it.

I have a fix for Option surrogate almost ready. It's a bit ugly, but it works (via generic function that creates zero values). Is it important that Option surrogate is using manual registration instead of ProtoContract/ProtoMember attributes? That would be a bit simpler.

e.g. surrogate would have an array that then needs to be convered into for example an F# list

I haven't measured it, but it doesn't seem unlikely that time and memory needs for linked lists and persistent balanced trees dominate that auxiliary array.

Also:

If we go down this path I would want to have two different schema generators in the "registerUnion" registration methods. One for the old method, one for the new.

How should api that library exposes account for that selection?

I've just pushed preliminary implementation of that under registerUnionRuntimeTypeIntoModel' function and it passes all test cases. If you're ok with schemes it generates I'll finish it.

The approach looks cleaner for some cases and not others. I'm happy to adopt it however even if it doesn't use the protobuf "oneof" feature technically. Not sure if the tag can be an enum value instead either since cases with no values should still be documented if the contract ever needs to be shared beyond .NET languages as a fallback.
Previous representation (note I like the use of the "oneof" construct):
syntax = "proto2";
package ProtoBuf.FSharp.Unit;

message One {
   optional int32 item = 1;
}
message Two {
   optional string item = 1;
}
message UnionFour {
   oneof subtype {
      One One = 1000;
      Two Two = 1001;
   }
}

New representation:
syntax = "proto2";
package ProtoBuf.FSharp.Surrogates.Generated.ProtoBuf.FSharp.Unit;

message CaseOne {
   optional int32 Item = 1 [default = 0];
}
message CaseTwo {
   optional string Item = 1;
}
message ExampleTypesInsideModule\+UnionFour {
   optional CaseOne DataOne = 1;
   optional CaseTwo DataTwo = 2;
   optional int32 Tag = 3 [default = 0];
}

I would be willing to change the format IF we can give more meaning to unions that have no values. A union with no values, and two cases looks like this in your implementation (and the initial implementation). Tags while helpful have no meaning.
syntax = "proto2";
package ProtoBuf.FSharp.Surrogates.Generated.ProtoBuf.FSharp.Unit;

message ExampleTypesInsideModule\+UnionTwo {
   optional int32 Tag = 1 [default = 0];
}

A representation that would be great for these, which gives meaning to consumers as well if need be.
syntax = "proto2";
package ProtoBuf.FSharp.Surrogates.Generated.ProtoBuf.FSharp.Unit;

enum ExampleTypesInsideModule\+UnionTwo_Cases {
    UnionTwo_Case_Unspecified = 0
    UnionTwo_Case_1 = 1;
    UnionTwo_Case_2 = 2;
}

message ExampleTypesInsideModule\+UnionTwo {
   optional ExampleTypesInsideModule\+UnionTwo_Cases Tag = 1 [default = 0];
}

There's also a possibility to use that for value unions and alternative representation with inheritance hierarchy for reference unions. I tried that in different branch ( https://github.com/mishun/protobuf-net-fsharp/tree/temp-generics ) and it passes tests (also surrogates for generic records/unions are generic classes with same generic parameters there --- that way it's a little less ugly).
Wrapping Tag into emitted enum shouldn't be too hard also (if I understand correctly that protobuf-net uses that representation for enums)

How should api that library exposes account for that selection?

After reviewing the change in more detail I think I'm comfortable with the representation you outlined where struct value types have the surrogate representation. If the "oneof" representation could also have a tag property on the existing representation that would also be ideal. So to summarise and make clear:

For reference unions lets keep the current representation. Ideally however the "tag" field would always exist here at the very least which is not the current state. That doesn't have to be in this PR. i.e. it shouldn't be a breaking change to add more cases to a union when the tag field suddenly disappears for doing so (a flaw in current representation).
For struct unions I'm happy to use your representation. Other than not using oneOf's its perfectly fine from my perspective. Only thing I would say is that the name of the type should be cleaned up (ValueOption's name was icky).
If it is possible for your representation to use "oneof" then I would prefer that representation for both types.

Only thing I would say is that the name of the type should be cleaned up (ValueOption's name was icky).

Using generics for surrogates helps considerably with that:
syntax = "proto2";
package ProtoBuf.FSharp.Surrogates.Generated.Microsoft.FSharp.Core;
message CaseValueSome_String {
    optional string Item = 1;
}
message FSharpValueOption_String {
    optional CaseValueSome_String DataValueSome = 1;
    optional int32 Tag = 2 [default = 0];
}

For reference unions lets keep the current representation. Ideally however the "tag" field would always exist here at the very least which is not the current state.

Is tag needed if there's an exhaustive set of oneof-s, though? F#-generated union tags may significantly change if union definition is edited. Probably the only working approach to get compatibility is to allow user to mark union cases and fields with attributes that define protobuf's magical numbers.

Is tag needed if there's an exhaustive set of oneof-s, though?

Its more that for "reference" unions adding cases should be backwards compatible. When you add a case with values the form "switches" from just a Tag fields (no one-of's) to no tag field with a one-of field. That's a breaking change to the proto schema since code may still be relying on the tag field to do dispatch. i.e the representation should be the same for all cases. Your implementation for structs is better in that sense, but isn't really idiomatic since it doesn't use oneof's. Unfortunately I think encoding oneofs through surrogates (via the proto schema) is not possible right now without subtyping. Even your implementation when I checked with the surrogate used a tag field with optional fields (not a oneof) as I showed in https://github.com/mvkara/protobuf-net-fsharp/pull/17#issuecomment-876847353.
Which is why I was thinking of using your implementation for references as well - but think that's another PR just to make the change in stages. It doesn't use oneof but it generates more consistent schema across different cases of unions (i.e. a two case union with no values changes adds a case with values - the proto schema shouldn't be represented completely differently).

I rebased that branch + made surrogates for generic types to be generic themselves and surrogate generation slightly less esoteric in general. There's two methods for generating union surrogates implemented: one with subclasses (CodeGen.emitUnionSurrogateWithSubtypes) and one with enum tag and optional fields (CodeGen.emitUnionSurrogateWithTag) and both should be working (modulo that stack overflow). By default it uses surrogate with tag for value unions and old method for reference unions, but it should be easy to enable other methods to see what happens. Also it should be easy to strip out what isn't needed.

I'm guessing this is now ready for review. If there are no more changes I will merge for now?

Created the two issues in this repo as follow up items.


Building a query dynamically?

I want to build a search query dynamically using Dynamoose that depends on the parameters sent to me.
for example, if I am passed startDate only, I want can do
Model.query('startDate').gt(startDate).exec(function (err, results) {.....};

But if by chance I get status, of course I can build the query:
Model.query('startDate').eq(startDate)
  .where('status').eq('ACTIVE')
  .exec(function (err, results) {.....};

But say I have some conditions where I may or may not be passed a parameter, scoutMaster.
Is there a way I can dynamically append the and clause condition:
Model.query('startDate').eq(startDate)
  .where('status').eq('ACTIVE')
  .and('scoutMaster').eq(scoutMaster)
  .exec(function (err, results) {.....};

Thanks for any help!!!

Might I have to use a conditional expression?

What, I can build the query dynamically this way:
Dog.query({breed: {eq: 'Beagle'} }, function (err, dogs) {
  // Look at all the beagles
});

by constructing the query object dynamically?

Dynamic query object construction seems to be a viable approach.

function constructQueryObjectForDynamoose(options) {

  let o = {};
  for (let prop in options) {
    if (prop === 'status')o.status = {eq: options[prop]};
    if (prop === 'startDate')o.startDate = {ge: options[prop]};
    if (prop === 'endDate')o.endDate = {le: options[prop]};
  }
  return o;

}

However, I am at a loss as to how do date comparisons. Seems the query object attributes for le, ge and such only support numbers.

The best way to build a dynamic query (or scan) is to use the query (or scan) object.   In this case you man need to use .scan.  Query expect a .eq after the range key for the table or index.
var scan = Model.scan();

for (let prop in options) {
  if (prop === 'status') {
    scan.filter(prop).eq(option[prop]);
  }
  if (prop === 'startDate') {
    scan.filter(prop).ge(options[prop]);
  }
  if (prop === 'endDate') {
    scan.filter(prop).le(options[prop]);
  }
}

scan.exec(function(results) {
  ...
}

Thank you!

Also, this is probably tangential, but I still have this problem. When I execute this:
    let query = {startDate:{ge:new Date("July 21, 1983")}};
    Challenge.query(query, function (err, challenges)

I get this error:
A value provided cannot be converted into a number
Seems that the ge operator does not like dates. If I am correct, is there a work around?
If am in error, what do I need to differently?
Thanks in advance.

The error is not correct.  This issue is related to the fact that a query requires an eq for the hash key.
This needs to be corrected as several other have had the same issue. #59


⚠ Bofrost.de has degraded performance

In a698727, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1164 ms

Resolved: Bofrost.de performance has improved in ccc56d2 after 23 minutes.


List sponsors in-app

Your sponsors tiers mention putting user names into the app somewhere. I don't see a place for it.

It had actually mentioned showing their name in the repository, not the app. I have updated the language to be more clear, and have updated the repo to show the correct information!


Python 3.6 provides _blake2 and _sha3 modules for hashlib.

From What's New in Python 3.6:

The hashlib module received support for the BLAKE2, SHA-3 and SHAKE hash algorithms...

This PR builds the required _blake2 and _sha3 extension modules.

Thanks :+1: :smile:


Why are we bundling the features directory into the product?

Description:

Is there any reason for bundling features into the SP pack? wso2/lib/features/
Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

With C5 Kernel, all the Carbon Features are pack into the <carbon_home>/wso2/lib/features/ directory. Hence this behavior is expected.


[stable/spring-cloud-data-flow] Update to new SCDF version 2.2.0

What this PR does / why we need it:

update scdf version to 2.2.0
update skipper version to 2.1.0

Signed-off-by: Chris Schaefer<EMAIL_ADDRESS>Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/lgtm


[WIP] maxx: 1.1.0 -> 2.0.1

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

I've dropped libredirect hacks in favor of creation of symlink from package in nix store to /opt/MaXX in maxx module like it was somewhere in the past. The reason is that icons of minimized programs on desktop are broken otherwise. I wasn't able to figure issue with strace and got no help in that regard from maxx author

It seems to work so far. Here are a couple of things:

hinv requires dmidecode, pciutils, and usbutils
The symbols in the iconbox look broken
 (might be my Virtualbox graphics)
Most entries in the tools chest menu do not work. For example "System Info", "Desktop Manager", "Search for Files"

@markuskowa Thank you!

fixed
unfortunately don't know how to fix. I'll ask maxx author. As a workaround if we will not find a solution we could fallback to the previous release behaviour *useIconBox:      False in Xdefaults
these functions are not finished, and so these items point to author specific environment tools

$ grep -e "System Info" -e "Desktop Manager" -e "Search For Files" result/opt/MaXX/etc/system.chestrc
        "System Info"           f.checkexec.sh.le "gnome-control-center info"
        "Desktop Manager"       f.checkexec.sh.le "gnome-control-center"
        "Search For Files"      f.checkexec.sh.le "gnome-search-tool"

These could be overriden in ~/.chestrc

unfortunately don't know how to fix. I'll ask maxx author. As a workaround if we will not find a solution we could fallback to the previous release behaviour *useIconBox: False in Xdefaults. They will be shown on the desktop without issues like on this screen https://www.facebook.com/maxxdesktop/photos/rpp.1083070501713918/1557043887649908/?type=3&theater

Setting the old behavior is probably the more clean version for now.

@markuskowa Thank you!


Release nodejs-iot v0.1.1

A patch release to fix library documentations.

Codecov Report

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

@@          Coverage Diff          @@
##           master    #15   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines           4      4
=====================================
  Hits            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 b631e26...43c7734. Read the comment docs.


vdropzone-success event

Hi,
I'm trying to use the vdropzone-success event to add additional params to the upload request - for example uploadPath. The event is triggering because I am getting my debug in the console, but it doesn't seem to be in the actual request to the server. Am I missing something here, my code below:
<dropzone id="uploadDropzone" ref="uploadDropzone" :url="apiBaseUrl + apiUrls.upload" :thumbnailWidth="100" :thumbnailHeight="100" :showRemoveLink="false" :useFontAwesome=true @vdropzone-sending="uploadAction" @vdropzone-success="uploadSuccess"></dropzone>
uploadAction: function(file, xhr, formData){
	console.log(file, xhr, formData);
	formData.uploadDirectory = this.uploadPath;
}

Any help on this much appreciated. The vdropzone-success event is firing as expected.
Many thanks

Perhaps try
     formData.append('uploadDirectory', this.uploadPath);

based on this ref

Closing due to inactivity but feel free to reopen if you still run into issues


✨ Feature: being able to change the color of the regular text, bold and italics.

The nature of the feature:

[ ] Parser(syntax, conceal etc. related)
[X] Renderer(style, options etc. related)
[ ] Support(plugin support, language support etc. related)
[ ] Other

Description:
We can change the headings, code blocks, quote blocks, hyperlinks, list items and check boxes, but I can't find how to set a specific color for regular, italic and bold texts.

Uhh, did you see the README?

Uhh, did you see the README?

Hi, thanks for replying! Yes, I have, but I don't see anywhere bold, italics or regular text. I'm not sure exactly what do you mean. Do you mean that these are beyond what the plugin can do?

Uhh, did you see the README?

Hi, thanks for replying! Yes, I have, but I don't see anywhere bold, italics or regular text. I'm not sure exactly what do you mean. Do you mean that these are beyond what the plugin can do?

Yes, because the plugin doesn't change their color.
They are controlled by tree-sitter. And you can check the group name by running :Inspect on top of the text.

Yes, because the plugin doesn't change their color.
They are controlled by tree-sitter. And you can check the group name by running :Inspect on top of the text.

TIL!! NeoVim is an amazing world, I'm glad to learn in every step of configuration I take.
I got to customize to emphasize the text with custom colors:
return {
  { --NOTE: Gruvbox.NVIM
    'ellisonleao/gruvbox.nvim',
    lazy = false,
    name = 'gruvbox',
    priority = 1000,
    config = function()
      vim.cmd.colorscheme 'gruvbox'
      vim.api.nvim_create_autocmd('FileType', {
        pattern = 'markdown', -- To set custom colors in Markdown files, fonts are defined by the terminal.
        callback = function()
          -- vim.api.nvim_set_hl(0<EMAIL_ADDRESS>{ fg = '#f9f0cc' }) -- Regular font
          vim.api.nvim_set_hl(0<EMAIL_ADDRESS>{ fg = '#fabd2f', italic = true })
          vim.api.nvim_set_hl(0<EMAIL_ADDRESS>{ fg = '#f95c4a', bold = true })
          vim.api.nvim_set_hl(0<EMAIL_ADDRESS>{ fg = '#928374', strikethrough = true })
        end,
      })
    end,
  },
}


Final semver parser fix

I need to fix up the errors before this can be merged, but let's check CI.

Great. Errors are still slightly off, but it's about the kinds of errors that are returned, rather than it not returning an error.


Failed installation with linux kernel 4.8.15

Required Info

Camera Model
{ D435 }

Firmware Version

Operating System & Version
Ubuntu 16.04.5 LTS

Kernel Version (Linux Only)
4.8.15-rt10

Platform
PC

SDK Version

Language

Segment
Robot

Issue Description
I was following the installation guide and at the step ./scripts/patch-realsense-ubuntu-lts.sh I end up having this output:

ap@ap-NUC7i7DNKE:~/git/librealsense$ ./scripts/patch-realsense-ubuntu-lts.sh
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version (12.1ubuntu2).
git is already the newest version (1:2.7.4-0ubuntu1.4).
The following NEW packages will be installed:
  linux-headers-4.4.0-135 linux-headers-4.4.0-135-generic linux-headers-generic
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 10,9 MB of archives.
After this operation, 78,5 MB of additional disk space will be used.
Get:1 http://it.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-135 all 4.4.0-135.161 [10,0 MB]
Get:2 http://it.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-135-generic amd64 4.4.0-135.161 [822 kB]
Get:3 http://it.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-generic amd64 <IP_ADDRESS>.141 [2.364 B]
Fetched 10,9 MB in 7s (1.370 kB/s)
Selecting previously unselected package linux-headers-4.4.0-135.
(Reading database ... 416098 files and directories currently installed.)
Preparing to unpack .../linux-headers-4.4.0-135_4.4.0-135.161_all.deb ...
Unpacking linux-headers-4.4.0-135 (4.4.0-135.161) ...
Selecting previously unselected package linux-headers-4.4.0-135-generic.
Preparing to unpack .../linux-headers-4.4.0-135-generic_4.4.0-135.161_amd64.deb ...
Unpacking linux-headers-4.4.0-135-generic (4.4.0-135.161) ...
Selecting previously unselected package linux-headers-generic.
Preparing to unpack .../linux-headers-generic_<IP_ADDRESS>.141_amd64.deb ...
Unpacking linux-headers-generic (<IP_ADDRESS>.141) ...
Setting up linux-headers-4.4.0-135 (4.4.0-135.161) ...
Setting up linux-headers-4.4.0-135-generic (4.4.0-135.161) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 4.4.0-135-generic /boot/vmlinuz-4.4.0-135-generic
Setting up linux-headers-generic (<IP_ADDRESS>.141) ...
Package required libusb-1.0-0-dev:  - found
Package required libssl-dev:  - found
Cloning into './ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1'...
remote: Counting objects: 60174, done.
remote: Compressing objects: 100% (56328/56328), done.
remote: Total 60174 (delta 5507), reused 19219 (delta 2897)
Receiving objects: 100% (60174/60174), 163.98 MiB | 1.49 MiB/s, done.
Resolving deltas: 100% (5507/5507), done.
Checking connectivity... done.
Note: checking out '2e1f960b96b3d80fc2b91809bf0cb02c97abe8f4'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b

Checking out files: 100% (57407/57407), done.
Applying realsense-uvc patch
patching file drivers/media/usb/uvc/Makefile
patching file drivers/media/usb/uvc/uvc_driver.c
patching file drivers/media/usb/uvc/uvcvideo.h
patching file drivers/media/v4l2-core/v4l2-ioctl.c
Hunk #1 succeeded at 1243 (offset 14 lines).
patching file include/uapi/linux/videodev2.h
Hunk #1 succeeded at 627 (offset 3 lines).
Applying realsense-metadata patch
./scripts/patch-realsense-ubuntu-lts.sh: line 90: ../scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch: No such file or directory

The main problem could be I have a realtime patched kernel and limited availability of those as well, as I need to be compatible with librealsense and libfranka, a third party library for a robotic arm. This means the alternative kernels I could use are 4.16.18-rt12 or 4.13.13-rt5 with increasingly worsening performance results.
Is it possible to continue the installation process? I can't find mentions of 16.04.5 not being supported. I couldn't also find similar issues dealing with a beforehand patched kernel.

Hello @aPonza , we will look into this.
Kernel 4.8.15-rt10 seem to be a mainline version and not Ubuntu LTS kernel. Is there a repo with a Debian
image, or you have to build it from source and then apply PREEMPT-RT patch?

I built it from source and then applied the patch following these instructions.

Thank you for the help @ev-mp! I tried again after pulling the changes, and again got blocked at the script. I'm attaching the full output.txt. It's much better than not starting at all like last time, but still fails.
I was hoping the realsense patch wouldn't touch already patched modules but it seems it is. Hopefully it will keep the preemption. I used default choices all the way down as is likely what was needed, but correct me if this wasn't the case.
Some (Boost?) warnings seem to lead to the error, which comes when installing the built modules.
The relevant dmesg returns:
[29899.077497] media: Linux media interface: v0.10
[29899.080004] videodev: loading out-of-tree module taints kernel.
[29899.080238] videodev: module verification failed: signature and/or required key missing - tainting kernel
[29899.080379] videodev: Unknown symbol mutex_lock (err 0)
[29899.080396] videodev: Unknown symbol __mutex_init (err 0)
[29899.080404] videodev: Unknown symbol mutex_lock_interruptible (err 0)
[29899.080417] videodev: Unknown symbol mutex_trylock (err 0)
[29899.080428] videodev: Unknown symbol mutex_unlock (err 0)
[29899.080444] videodev: Unknown symbol _raw_spin_unlock (err 0)
[29899.123271] Linux video capture interface: v2.00

Do you face the same error?

Hello @aPonza , sorry for the intermittent response, the referred patch applies correctly to Ubuntu kernel as well as unmodified 4.8.15.
Looking deeper into the unresolved symbols it is probably due to differences in kernel configuration.
More specifically, the "#defines" are probably out of sync:
CONFIG_DEBUG_MUTEXES
CONFIG_UNINLINE_SPIN_UNLOCK
Can you provide the .config file that should be found in the root of the /ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1/ folder ?
I'll try to use the RTPREEMPT patch to try and reproduce the exact error

Sure! the_dot_config.txt

Thanks! Everything seems to work from a superficial test. The only errors/warnings were:

during installation:

ERROR (dkms apport): kernel package linux-headers-4.8.15-rt10 is not supported
Error! Bad return status for module build on kernel: 4.8.15-rt10 (x86_64)

makes sense, it's also stated in the installation guide and you reiterated it yourself;

W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

the second one doesn't apply, but I do have a Kaby Lake processor... the firmware is here, and I installed following this answer;

while trying realsense-viewer:

03/10 12:26:37,299 WARNING [139929276324416] (sensor.cpp:338) Unregistered Media formats : [ UYVY ]; Supported: [ ]

happens systematically at application startup, but it doesn't seem worth worrying over (?)
If everything seems normal to you as well, then this can be closed. Thanks for the help!

It is not clear from the warning which dkms it refers to. anyhow, I'd suggest to remove librealsense dkms if installed since it is not verified to work with vanilla kernel in the first place, let alone real-time patch.
The rest seem normal.
You can attach a snapshot from the realsense-viewer with live stream and info overlay turned on (little (i) in viewport upper right) to verify that librealsense patches are in place

I still had the aptitude librealsense2-dkms installed from when I was trying the other kernel, maybe I had marked it as manually installed by mistake, now that's gone. This is a screenshot.

The patches are in place. You can tell it by reading "HW Timestamp" parameter that confirms metadata retrieval. So far for integrating librealsense patches with a 3rd party patches.
The thing I find weird that in the attached image in place of RGB stream there was a snapshot of the viewer taken from a different POV with a recursive view :), though as if the RGB sensor was detached and physically moved outside the camera's case....

No no, the camera is all in one piece: I did say that is a screen-shot :) after all, the point of buying pre-built stereo cameras is also for their stable baseline, isn't it?
Thanks for the help in setting everything up, mr. Raikhel!

Hello @aPonza , I'm glad everything is back on track.
Thanks for the feedback.


Update exporter_cirq.py

An error was encountered while exporting the generic Toffoli gate in question to Cirq, specifically a 'TypeError: tuple indices must be integers or slices, not list.' It was modified in the code, and it worked. The other parts related to the gates were not changed because they were not tested.

Thank you for the contribution Federico, I also fixed the CZ which had the same issue.


[CELEBORN-1371] Update ratis with internal port endpoint address as well

What changes were proposed in this pull request?
MasterNotLeaderException should include not just the rpc address for applications, but also the internal rpc address (based on internal port) for workers to connect to the leader.
I am leveraging adminAddress in order to persist this information in ratis state - and have client reconnect to the right rpc endpoint based on whether it is application or worker.
Why are the changes needed?
Without this fix, workers connect to rpc endpoint which applications use (and not at internal port) when MasterNotLeaderException is thrown - resulting in failures.
Does this PR introduce any user-facing change?
No, bug fix.
How was this patch tested?
Tested with a local deployment - 3 masters + 2 workers, with authentication and internal port enabled.
Without the fix, one or more worker fails to come up and fails with exception.
Additionally, existing tests pass and test updated.

Codecov Report
Attention: Patch coverage is 71.42857% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 39.25%. Comparing base (6153ba4) to head (f60760c).

Files
Patch %
Lines

...rg/apache/celeborn/common/client/MasterClient.java
50.00%
0 Missing and 1 partial :warning:

...leborn/common/client/MasterNotLeaderException.java
80.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2446      +/-   ##
==========================================
+ Coverage   39.24%   39.25%   +0.02%
==========================================
  Files         217      217
  Lines       13432    13437       +5
  Branches     1173     1174       +1
==========================================
+ Hits         5270     5274       +4
- Misses       7863     7864       +1
  Partials      299      299

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Oooh, that is a legitimate test failure - let me double check

+CC @otterc

BTW, it is recommended to use ./dev/merge_pr.py to merge PR.

BTW, it is recommended to use ./dev/merge_pr.py to merge PR.

Oh ok. Will use that next time. Thank you for letting me know.

@otterc could you please open PR to apache/celeborn-website to update your committer info?


[Feature Request]: Next Js Docs

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
I would like to add the Next js Documentation under the docs folder (docs/Nextjs)
Use Case
This would be used to understand the basics of the Next Js implementaion where the user could undestand it properly from the scratch
Benefits
This would Benefit all the people of learning Next js and all other frameworks under this repo
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Pls do add the GSSOC Label


Converted FIRAuthUserDefaults and FIRAuthKeychainServices

WIP - converted a few more types to Swift. Please note the comments and the additions to the "Auth Swift Open Questions" spreadsheet.

Thanks @mortenbekditlevsen


extend Run() signature to include baseDir; unify agentInit options

A few changes in this PR, closely related. None should change functionality, but let's let CI be the judge of that.
1. Extend the pillar service Run() signature to include baseDir and inline
There are a few activities that take place inside start of each service, notably creating a pidfile.
That has been hard-coded to /run/<agentName>.pid in the past. The previous PR #3911 created an option pass a different base directory than /run/.
This PR plumbs the option for the basedir through to each agent via adding an option to Run(), and then passes it on when creating the pidfile. In normal use case, nothing changes. This creates override options.
2. Unify creation of pidfile
Each service does pidfile creation a wee bit differently:

Some services use agentbase.Init(agentbase.WithPidFile())
Some run agentbase.Init() without that option, and then call pidfile.CheckAndCreatePidfile() a few lines later.
Still others do not create a pidfile
Others create a pidfile unless a "no pidfile" option is set (on a struct that is create a few lines above and therefore cannot be set, but let's ignore that here)

This unifies all of those to call WithPidFile() unless they do not create a pidfile. Those that have it optional, set the argument optionally.
3. Create a WithBaseDir() option to agentbase.Init()
With this, agentbase.Init() can know where to create the pidfile.
4. Remove unused options from services
The pkg/pillar/cmd/* services all have options for -v for version and -p for "do not check for pid file. None of these is used, at all. I clarified this with @eriknordmark (to give credit, he pointed out to me that these are unused), so they have been removed, in 2 separate commits.

yetus found some minor nits in the modified files. I fixed them. It also found some false positives, which I ignored.

A few changes in this PR, closely related. None should change functionality, but let's let CI be the judge of that.
1. Extend the pillar service Run() signature to include baseDir
There are a few activities that take place inside start of each service, notably creating a pidfile.
That has been hard-coded to /run/<agentName>.pid in the past. The previous PR #3911 created an option pass a different base directory than /run/.
This PR plumbs the option for the basedir through to each agent via adding an option to Run(), and then passes it on when creating the pidfile. In normal use case, nothing changes. This creates override options.
2. Unify creation of pidfile
Each service does pidfile creation a wee bit differently:
* Some services use `agentbase.Init(agentbase.WithPidFile())`

* Some run `agentbase.Init()` _without_ that option, and then call `pidfile.CheckAndCreatePidfile()` a few lines later.

* Still others do not create a pidfile

* Others create a pidfile unless a "no pidfile" option is set (on a struct that is create a few lines above and therefore cannot be set, but let's ignore that here)

This unifies all of those to call WithPidFile() unless they do not create a pidfile. Those that have it optional, set the argument optionally.
3. Create a WithBaseDir() option to agentbase.Init()
With this, agentbase.Init() can know where to create the pidfile.

can you please put this text also into the commit message?

A go test failure:
zedbox/zedbox.go:96:27: cannot use zedkube.Run (value of type func(ps *pubsub.PubSub, loggerArg *logrus.Logger, logArg *"github.com/lf-edge/eve/pkg/pillar/base".LogObject, arguments []string, baseDir string) int) as "github.com/lf-edge/eve/pkg/pillar/types".AgentRunner value in struct literal

There is also a Version global variable and a line in the Makefile to set main.Version which makes sense removing as part of removing versionPtr.

I removed it from the Makefile.

Well, some eden tests pass, which is a distinct improvement.


No navigation line displayed on dreamview

I just take use of the demo.bag and demo_2.5.bag in apollo project, and follow the instructions in  apollo_2.5_navigation_mode. when running, there is no red line in Baidu map, and the white lines in the main interface is there even I do nothing.  What's the problem? How should I do?

Thank you very much! I will try it later.


Made button using Javascript

a wave button made using html, css and basic javascript.

Please modify Data.js, refer Readme

@PoorviShetty sorry, i didn't go through readme in the first place, do i just add the folder name in Data.js ? It says to add the code too but all i see are the folder names in Data.js.

Just make a new commit with the changes, you don't need to make a fresh PR

@PoorviShetty thanks just made a commit to add name in Data.js. Please check it out now