403 on getOffers

So I am able to getOffers when I run my brothers account (Which has games, playtime, etc), but when I run my bots, I get this 403 error.
Seems to be related to these, but I've tried everything suggested:
https://github.com/Alex7Kom/node-steam-tradeoffers/issues/32
https://github.com/Alex7Kom/node-steam-tradeoffers/issues/48
Here's my code
function getData() {
          var setTimer = setTimeout(getData, 10000);
          if (Date.now() - start > 300000){
            steamOfferObj.cancelOffer({
              tradeOfferId: data["tradeofferid"]
            }, function(){
              clearTimeout(setTimer);
              eventEmitter.emit('requestOfferExpired');
              return;
            })

          }
          steamOfferObj.getOffer({
              "tradeOfferId": data["tradeofferid"] // The tradeoffer id
          }, function(error, body) {
              console.log(body);
              console.log(error);
              if (error == null) {
                //console.log(body);
                console.log(body.response.offer.trade_offer_state);
                  if (body.response.offer.trade_offer_state == 3) {
                      eventEmitter.emit('requestOfferAccepted');
                      clearTimeout(setTimer);
                      return "Offer Accepted" //on accept
                  } else if(body.response.offer.trade_offer_state == 7){
                      eventEmitter.emit('requestOfferExpired');
                      clearTimeout(setTimer);
                      return "Offer cancelled";
                  } else {

                  }
              }
          });
        }

I was getting a 403 error a while ago. I found that this is occurs when you attempt to send a steam message or trade offer before being successfully logged in. Try having your program wait 5 seconds before getting offers and see if that works.

Well thing is, I can send tradeOffers fine, I just can't pole the offer using the getOffer command, so I don't think its an issue of not being signed in.

Yes that is strange. I'll try your code any see what happens for me. It could just be that the steam inventory servers are down or slow at he moment.

But also weird, because my alt account works, but not the bots.

I think I found your issue. When I used your code with a random string of numbers for the tradeOfferId, i too got an error 403. However, after using a tradeOfferId that I had just sent, I received the correct output.
My guess is that you are trying to use the same tradeOfferId as your alt account with your bots. Your bots can only check their own trade offers, so try using a tradeOfferId that your bot has and see if that works.

The trade offer ID is generated in the callback for the makeOffer call.
steamOfferObj.makeOffer({
partnerSteamId : steamID,
accessToken : userAccessToken,
itemsFromMe: '{}',
itemsFromThem: objectArray
}, function(err, data) {
console.log(err);
console.log(data);
var start = Date.now();
        function getData() {
          var setTimer = setTimeout(getData, 10000);
          if (Date.now() - start > 300000){
            steamOfferObj.cancelOffer({
              tradeOfferId: data["tradeofferid"]
            }, function(){
              clearTimeout(setTimer);
              eventEmitter.emit('requestOfferExpired');
              return;
            })

          }
          steamOfferObj.getOffer({
              "tradeOfferId": data["tradeofferid"] // The tradeoffer id
          }, function(error, body) {
              console.log(body);
              console.log(error);
              if (error == null) {
                //console.log(body);
                console.log(body.response.offer.trade_offer_state);
                  if (body.response.offer.trade_offer_state == 3) {
                      eventEmitter.emit('requestOfferAccepted');
                      clearTimeout(setTimer);
                      return "Offer Accepted" //on accept
                  } else if(body.response.offer.trade_offer_state == 7){
                      eventEmitter.emit('requestOfferExpired');
                      clearTimeout(setTimer);
                      return "Offer cancelled";
                  } else {

                  }
              }
          });
        }

        getData();

      })

Try outputting that tradeOfferId to the console and make sure it looks reasonable. I'm almost sure it has to do with some error with the tradeOfferId

http://i.imgur.com/HCOV2Ys.png
Seems reasonable to me.

Yep, that does seem fine. Here's the code I used to try and imitate what I saw in your code:

Works fine:

function getData() {
  setTimeout(function () {
    offers.getOffer({
      "tradeOfferId": "364875551" // Real tradeofferid
    }, function(error, body) {
      console.log(body);
      if (error == null) {
        //console.log(body);
        console.log(body.response.offer.trade_offer_state);
        if (body.response.offer.trade_offer_state == 3) {
         return "Offer Accepted" //on accept
        } else if(body.response.offer.trade_offer_state == 7){
          return "Offer cancelled";
        } else {
          // do something
        }
      } else {
        console.log(error);
      }
    });
  }, 5000);
}

Doesn't work:

function getData() {
  setTimeout(function () {
    offers.getOffer({
      "tradeOfferId": "123456789" // Random numbers
    }, function(error, body) {
      console.log(body);
      if (error == null) {
        //console.log(body);
        console.log(body.response.offer.trade_offer_state);
        if (body.response.offer.trade_offer_state == 3) {
         return "Offer Accepted" //on accept
        } else if(body.response.offer.trade_offer_state == 7){
          return "Offer cancelled";
        } else {
          // do something
        }
      } else {
        console.log(error);
      }
    });
  }, 5000);
}

For testing purposes, try using one of those with data["tradeofferid"] and see if that works.

This seems to work perfectly for me:
function getData() {
  setTimeout(function () {
    offers.makeOffer({
      partnerSteamId: "76561198092490523",
      itemsFromMe: [
        {
          "appid": 440,
          "contextid": 2,
          "amount": 1,
          "assetid": "3585401379"
        }
      ],
      itemsFromThem: {}
    }, function(err, data) {
      console.log(data);
      console.log(err);
      offers.getOffer({
        "tradeOfferId": data["tradeofferid"] // The tradeoffer id
      }, function(error, body) {
        console.log(body);
        console.log(error);
        if (error == null) {
          //console.log(body);
          console.log(body.response.offer.trade_offer_state);
            if (body.response.offer.trade_offer_state == 3) {
                return "Offer Accepted"; //on accept
            } else if(body.response.offer.trade_offer_state == 7){
                return "Offer cancelled";
            } else {
              //do something
            }
        }
      });
    });
  }, 5000);
}

http://i.imgur.com/L3HH5rw.png

What did you change there?

I didn't change much there. It seems, though, that the error is on the bot's side. Have you disabled email confirmation for the bot? Has it been logged in from your Node-Steam for at least 7 days?

The trade requests seem to send off fine, I just can't poll the trades. It's incredibly odd. Bots have a scraper that activates when the email comes in and auto verifies the trade, and the trades seem to send out fine so its not that, or the 7 day thing.
Spent a couple hours last night trying to tweak it but came up dry.

Very odd. Hopefully someone more knowledgeable can shed some light on this.

I think i found the reason for 403 problem.
it's related to the apikey. The getOffer or getOffers method do not get apikey for you.
Anyway,this solve my 403 problem.

@l419351633 There is no SteamTradeOffers.prototype.getAPIKey and never was, what version you are using? getAPIKey function is not exposed to users.

@Alex7Kom When I was using 1.0.3 version, the 403 problem was fixed by the getAPIKey.
And i thought the 403 problem should be related to the apikey issues.
And apikey relates to the account. So that different accounts show different results.

I have same problem with code from example (storehouse.js).
can someone help me?


backend: Add local authentication

provide a way to login
We will need to be able to configure certain routes to be secured by auth (Preferably this can be done as middleware).

I will do it @dfirebaugh

sweet, thanks!


Provide data context methods with different equality

Currently, Blaze uses to store data context a reactive variable with default equality function:

A function of two arguments, called on the old value and the new value whenever the ReactiveVar is set.  If it returns true, no set is performed.  If omitted, the default equalsFunc returns true if its arguments are === and are of type number, boolean, string, undefined, or null.

This makes content being rerendered potentially unnecessarily. In fact, often just helpers are rerun and Blaze notices that there is nothing to update DOM with and does nothing, but still. More complex logic we have in components, more complicated it can get.
Currently, Blaze Components improve on the situation because there is no automatic dependency on the data context, but it is registered only when you access .data() or .currentData(). But still. Dependency is registered using the default equality.
It might be useful to provide alternative data context access methods using different equality functions:

referential equality (===), assuming that data context is immutable (or that you do not care if content inside objects in data contexts change, only if the whole object change)
EJSON.equals for structural equality

So maybe someting like .dataReferential() and .dataStructural()?

sounds sensible.
how about if you use .data() inside constructor: -> it is considered structural, and anywhere else it's referential?

I do not think that having different semantics based on where you call a function is a good API.

could have the default behaviour as referential, and a parameter for setting as structural
.data({structural:true})

I think we should leave default behavior as it is in Blaze. Just to minimize surprises. Default Blaze behavior is the most conservative one, it means functions/methods are rerun more often, but then Blaze does not necessary really modify DOM if everything stays the same. So this is a good default. It does not introduce any errors.

In fact, because I have not seen really non-object data contexts in practice, this means that the whole Blaze behavior is more similar to React.js: rerun everything and then compare with DOM and patch it if there are changes. The issue is that React.js uses virtual DOM do make comparison, while Blaze I think compare with real DOM. And reading real DOM is a bit slower than virtual DOM.

I think now that we have computed fields this is not really necessary. If you need different equality you can do:
onCreated: ->
  @structuralData = new ComputedField (=> @data()), EJSON.equals

And this is it. :-) And then you can call @structuralData() to get data context which will trigger reactive change only when data is structurally different.
For referential equality:
onCreated: ->
  @referentialData = new ComputedField (=> @data()), (a, b) => a is b


Rc522 card reading UI has no pop-up window and scanning is abnormal.

The new window does not pop up in the development version rc522 card reading, and the scanning is abnormal.

let's keep the discussion on the main repo: https://github.com/esprfid/esp-rfid/issues/506
I'm going to get back to you soon, sorry I've been quite busy lately


Adding my app to the list of react native apps

I just want to add my app to the showcase

By analyzing the blame information on this pull request, we identified @brentvatne and @manonthemat to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Hey, I'm really sorry for the churn, but we are changing up how the showcase works, and just focusing on apps that have some media presence or technical blog posts / other content. So I appreciate the spirit behind this pull request but I think we should close it.


Editable colors for charts?

I haven't looked at the source code yet, but would it be difficult to make each chart color customizable?
This is something I could probably do in a pull request if there is interest.

I am pending to rewrite completely count loc and github star history backend into nodejs and some changes in frontend  in the nexts months.
I like your idea about chart color customizable and I will accept pull requests when that work is done
Thanks for your feedback

Excellent - I'll give it a shot!

Version 0.5.5 includes this


Small qrcode output

Support small qrcode output by combine adjacent row and using unicode character.
Screenshot:

Related issue: #9

This is really awesome @goorockey!
I think I'd prefer the small QRCode to be the default on. What do you think @gtanner?

I like the small one for the default as well. @mwbrooks, @goorockey.
I will merge this in and bundle up a release :)

Small seems distorted to me.

Same :( with 13pt Source Code Pro font.

Thoughts?
Sadly I merged this in blind :(  I didn't publish so isn't that bad.
I could roll back or rebase out the commit, or leave it in while we figure out a good way to get the small version working.

No bright ideas on my end. @goorockey?

According to unicode standard, there should not be gaps.

When emulating terminal applications, fonts that implement the block element characters should be designed so that adjacent glyphs for characters such as U+2588 full block create solid patterns with no gaps between them.

So I consider it's the issue of fonts that don't implement block elements correctly.
Anyway, the distorted qrcode can still be decoded correctly. :joy:

I think it's reasonable to notice in README that the small qrcode depends on the font that you are using.


Ensure ThreadedTaskScheduler eventually disposes

Stressed the test by sticking a [Repeat(100)] on it, got no fails; tested with my hang scenario on a framework checkout - seems like this alleviates the most pressing issue of the game not closing. :+1:
Still probably more work required game-side to perhaps allow cancellation of beatmap conversion and fix the actual conversion bug itself.


Custom query parameters

New concept of custom parameters for map-layers; allowing to pass any custom query parameters:
http://server/service?customParam=customParamValue
This can also be used to provide custom API keys.
A catalog of named custom parameters can now be created:

When a map-layer source is created, in can be associated with an existing custom parameter:

@jason-crow New incoming feature.

I see that pnpm-lock.yaml file at root of the repo changed for some reason. I believe it was a culprit of failing CI builds in the past. Could you try removing it and running pnpm install at the repo root again?

I see that pnpm-lock.yaml file at root of the repo changed for some reason. I believe it was a culprit of failing CI builds in the past. Could you try removing it and running pnpm install at the repo root again?

yea I dont understand how it happens, maybe Im not running the right node version?


Add license header check for rust files

Added binary that can check for and add Apache 2.0 licenses. Run this binary during the build-rust workflow.

There was an issue in a dependency, so waiting for that to be resolved before I continue here.

Ok, issue in dependency has been fixed.

Ready to mege?

Ready for merge 👍


AddressSanitizer finding in lookup3.c

Hi Everyone,
I'm building Unbound 1.9.1 from the tarball on Fedora 29, x86_64. It has a modern version of GCC with sanitizers. The build adds CFLAGS+=-fsanitize=address and CXXFLAGS+=-fsanitize=address (and LDFLAGS+=-fsanitize=address as needed). Then I run make check to see what happens.
make check
...
libtool: link: gcc -I. -I/var/sanitize/include -DNDEBUG -I/var/sanitize/include -I/var/sanitize/include -I/var/sanitize/include -DSRCDIR=. -g2 -O2 -fsanitize=address -march=native -fPIC -pthread -fsanitize=address -Wl,-R -Wl,/var/sanitize/lib64 -Wl,--enable-new-dtags -o testbound .libs/testbound.o .libs/replay.o .libs/fake_event.o .libs/testpkts.o .libs/worker.o .libs/acl_list.o .libs/daemon.o .libs/stats.o .libs/shm_main.o .libs/dns.o .libs/infra.o .libs/rrset.o .libs/dname.o .libs/msgencode.o .libs/as112.o .libs/msgparse.o .libs/msgreply.o .libs/packed_rrset.o .libs/iterator.o .libs/iter_delegpt.o .libs/iter_donotq.o .libs/iter_fwd.o .libs/iter_hints.o .libs/iter_priv.o .libs/iter_resptype.o .libs/iter_scrub.o .libs/iter_utils.o .libs/localzone.o .libs/mesh.o .libs/modstack.o .libs/view.o .libs/outbound_list.o .libs/alloc.o .libs/config_file.o .libs/configlexer.o .libs/configparser.o .libs/fptr_wlist.o .libs/edns.o .libs/locks.o .libs/log.o .libs/mini_event.o .libs/module.o .libs/net_help.o .libs/random.o .libs/rbtree.o .libs/regional.o .libs/rtt.o .libs/dnstree.o .libs/lookup3.o .libs/lruhash.o .libs/slabhash.o .libs/tcp_conn_limit.o .libs/timehist.o .libs/tube.o .libs/winsock_event.o .libs/autotrust.o .libs/val_anchor.o .libs/validator.o .libs/val_kcache.o .libs/val_kentry.o .libs/val_neg.o .libs/val_nsec3.o .libs/val_nsec.o .libs/val_secalgo.o .libs/val_sigcrypt.o .libs/val_utils.o .libs/dns64.o .libs/cachedb.o .libs/redis.o .libs/authzone.o .libs/respip.o .libs/ub_event.o .libs/keyraw.o .libs/sbuffer.o .libs/wire2str.o .libs/parse.o .libs/parseutil.o .libs/rrdef.o .libs/str2wire.o .libs/strlcat.o .libs/strlcpy.o .libs/arc4random.o .libs/arc4random_uniform.o .libs/arc4_lock.o  -L/var/sanitize/lib64 -L/var/sanitize/lib -lssl -ldl -lpthread -lcrypto -lhiredis -pthread  -Wl,-rpath -Wl,/var/sanitize/lib
./unittest
Start of unbound 1.9.1 unit test.
test authzone functions
=================================================================
==23867==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff1d847e80 at pc 0x0000004e0f5f bp 0x7fff1d847e30 sp 0x7fff1d847e20
READ of size 4 at 0x7fff1d847e80 thread T0
    #0 0x4e0f5e in hashlittle util/storage/lookup3.c:378
    #1 0x45ccac in rrset_key_hash util/data/packed_rrset.c:170
    #2 0x543ca5 in auth_packed_rrset_copy_region services/authzone.c:179
    #3 0x545b7e in msg_add_rrset_an services/authzone.c:234
    #4 0x545b7e in msg_add_rrset_an services/authzone.c:219
    #5 0x547621 in az_generate_positive_answer services/authzone.c:2811
    #6 0x547621 in az_generate_answer_with_node services/authzone.c:3062
    #7 0x547621 in auth_zone_generate_answer services/authzone.c:3157
    #8 0x557363 in auth_zones_lookup services/authzone.c:3194
    #9 0x4382fc in q_ans_query testcode/unitauth.c:775
    #10 0x4382fc in check_az_q_ans testcode/unitauth.c:830
    #11 0x4382fc in check_queries testcode/unitauth.c:852
    #12 0x4382fc in authzone_query_test testcode/unitauth.c:888
    #13 0x4382fc in authzone_test testcode/unitauth.c:899
    #14 0x406e2c in main testcode/unitmain.c:888
    #15 0x7fa0a952a412 in __libc_start_main ../csu/libc-start.c:308
    #16 0x40a54d in _start (/home/jwalton/Build-Scripts/unbound-1.9.1/unittest+0x40a54d)

Address 0x7fff1d847e80 is located in stack of thread T0 at offset 32 in frame
    #0 0x45cbcf in rrset_key_hash util/data/packed_rrset.c:163

  This frame has 1 object(s):
    [32, 34) 't' <== Memory access at offset 32 partially overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow util/storage/lookup3.c:378 in hashlittle
Shadow bytes around the buggy address:
  0x100063b00f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b00f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b00fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b00fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b00fc0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
=>0x100063b00fd0:[02]f2 f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00
  0x100063b00fe0: 00 00 f1 f1 f1 f1 00 00 00 00 00 00 00 00 00 00
  0x100063b00ff0: 00 00 00 00 00 00 00 f2 f2 f2 f3 f3 f3 f3 00 00
  0x100063b01000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b01010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100063b01020: 00 00 00 00 f1 f1 f1 f1 04 f2 f2 f2 f2 f2 f2 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==23867==ABORTING
gmake: *** [Makefile:311: test] Error 1
Failed to test Unbound
Failed to build Unbound

Oh my, you can't do this...
If that read crosses a page boundary and the following page is not allocated, then the application will crash. You need to memcpy the tail into a variable, or read the tail one byte at a time into a variable.
The "read off the existing page" got riskier since Stack Clash remediation are in place. Guard pages are no longer readable in some instances.
    /*----------------------------- handle the last (probably partial) block */
    /*
     * "k[2]<<8" actually reads beyond the end of the string, but
     * then shifts out the part it's not allowed to read.  Because the
     * string is aligned, the illegal read is in the same word as the
     * rest of the string.  Every machine with memory protection I've seen
     * does it on word boundaries, so is OK with this.  But VALGRIND will
     * still catch it and complain.  The masking trick does make the hash
     * noticeably faster for short strings (like English words).
     */
#ifndef VALGRIND

    switch(length)
    {
    case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
    case 11: c+=k[2]&0xffffff00; b+=k[1]; a+=k[0]; break;
    case 10: c+=k[2]&0xffff0000; b+=k[1]; a+=k[0]; break;
    case 9 : c+=k[2]&0xff000000; b+=k[1]; a+=k[0]; break;
    case 8 : b+=k[1]; a+=k[0]; break;
    case 7 : b+=k[1]&0xffffff00; a+=k[0]; break;
    case 6 : b+=k[1]&0xffff0000; a+=k[0]; break;
    case 5 : b+=k[1]&0xff000000; a+=k[0]; break;
    case 4 : a+=k[0]; break;
    case 3 : a+=k[0]&0xffffff00; break;
    case 2 : a+=k[0]&0xffff0000; break;
    case 1 : a+=k[0]&0xff000000; break;
    case 0 : return c;              /* zero length strings require no mixing */
    }

#else  /* make valgrind happy */

    k8 = (const uint8_t *)k;
    switch(length)                   /* all the case statements fall through */
    {
    case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
    case 11: c+=((uint32_t)k8[10])<<8;  /* fall through */
    case 10: c+=((uint32_t)k8[9])<<16;  /* fall through */
    case 9 : c+=((uint32_t)k8[8])<<24;  /* fall through */
    case 8 : b+=k[1]; a+=k[0]; break;
    case 7 : b+=((uint32_t)k8[6])<<8;   /* fall through */
    case 6 : b+=((uint32_t)k8[5])<<16;  /* fall through */
    case 5 : b+=((uint32_t)k8[4])<<24;  /* fall through */
    case 4 : a+=k[0]; break;
    case 3 : a+=((uint32_t)k8[2])<<8;   /* fall through */
    case 2 : a+=((uint32_t)k8[1])<<16;  /* fall through */
    case 1 : a+=((uint32_t)k8[0])<<24; break;
    case 0 : return c;
    }

#endif /* !VALGRIND */

Hi noloader,
Yes, indeed, that hash function has some troublesome optimisations.
The page argument is not valid.  The page boundaries are also on word boundaries, so that is not going to crash.  Otherwise that would already crash.
But your other arguments are very real, and I agree that fixing this is good for security.
Thanks for the finding, I have closed it by making it respect the array boundaries.


Rc clone vs av 117786

These changes have been tested in the field several times now with no issues.

F5 Migration tool UT FAILED
No test results found.

NS Migration tool UT FAILED
No test results found.


Move graph cannonization inside sym check

Move the graph cannonization and isomorphic hashing to be after the sym hash check. Since the sym hash check is less expensive, do that first.

This worked will, commit soon


Win7 x64 Beaker 0.8.10 not working at all

Operation System: Win 7 x64 Ultimate
Beaker version: 0.8.10
Installed update initially through Beaker and it failed to run properly and looked like the screenshot attached.
So uninstalled Beaker and reinstalled from beaker-browser-setup-0.8.10.exe downloaded from main Beaker site.  Same problem. Programs seems to run without formal crash, but just yields blank screen.

If you hit Alt, you should see the window's menu (file, edit, view, etc) across the top. From there, can you go View > Advanced Tools > Toggle Shell-Window DevTools and see if any errors show up in the console?

Hi Paul
The problem I'm having is that if I hit Alt no text or sign of any text appears. I get the same white screen. The only clues I'm getting is when I hover over certain areas I can see the cursor change and "New tab" displays, apart from that it's a complete whiteout and I'm having difficulty navigating anywhere. I've managed to resize the window but that's about it in terms of functionality.
Is there an error log (or any clues to be found) written to the Beaker directory?
Cheers and yes Yikes!
P.

Update:
Just wanted to make sure of this issue.  So uninstalled Beaker 0.8.10 and this time also deleted ...\AppData\Roaming Beaker folder. Re-booted.  Reinstalled Beaker 0.8.10.  Same result (as per original screenshot). So at least it's consistent.
Are there .exes for older versions. I could install them going back by version and see when this issue arose.
Thoughts?
P.

(Sorry for the delay.) I'm totally unsure what could be causing this. It's probably just some silly bug that's halting setup. Do try a 0.8.8 install and see if it happens. That will at least help us narrow down the causes.

Hi Paul
No problem - I imagine you're rather busy.

beaker-browser-setup-0.8.8 works fine.
Hope that helps and good luck bug hunting!
Cheers,
P.


RBAC: Implement a default role

Issue submitter TODO list

[X] I've searched for an already existing issues here
[X] I'm running a supported version of the application which is listed here and the feature is not present there

Is your proposal related to a problem?
Hi,
When new kafka consumer gives me a request to approach kafka ui (for readonly),
i have to rewrite rbac yaml file.
I deployed two Kafka UI to solve this problem.
First one has basic authentication is for admin users.
The other one is readonly for kafka consumers.
Describe the feature you're interested in
I think it is useful if the way i can setup default role is exists.
rbac:
  roles:
    - name: "admins"
      clusters:
        - development
      subjects:
         - provider: oauth_github
           type: user
           value: 'seono'
      permissions:
        ...
    - name: "readonly"
      clusters:
        - development
      subjects:
        - provider: oauth_github
          type: default
      permissions:
        ...

Describe alternatives you've considered
I know there is other type organization and team.
If someone wants readonly permission, I can invite them to the group.
But.. In my case, my company has too many organzations and teams so i can not use it properly.
Version you're running
https://github.com/kafbat/kafka-ui/commit/9843ee0
Additional context
No response

hi @Haarolean any update on this feature, it's very important for us since default role is needed for company wide

@sankhyan As development is done in the spare time of our team members, our bandwidth is limited. You (or your company) can sponsor the development of this feature: https://github.com/sponsors/kafbat/sponsorships?tier_id=384551

Being able to use regex will also help in my particular case.


Fix indexing for undo

As per title.

Codecov Report
Base: 64.09% // Head: 64.16% // Increases project coverage by +0.07% :tada:

Coverage data is based on head (20ed2ff) compared to base (bad8413).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #229      +/-   ##
============================================
+ Coverage     64.09%   64.16%   +0.07%
  Complexity      607      607
============================================
  Files            96       96
  Lines          2309     2308       -1
  Branches        303      303
============================================
+ Hits           1480     1481       +1
+ Misses          708      707       -1
+ Partials        121      120       -1

Impacted Files
Coverage Δ

...main/java/seedu/address/model/VersionedSurvin.java
75.00% <100.00%> (+7.00%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Support for locally present bundles

I would like to run code-scanning with a custom code-scanning bundle
that already is present on my local disk.  I can currently do that by
making the following hack:
1 Install bundle in tool cache:
Use toolCache.cacheDir to install the bundle with a specially crafted ID:
tc.cacheDir(localBundlePath, 'CodeQL', "0.0.0-XXX-DUMMY-BUNDLE-ID");

2 Convince codeql to look in the tool cache:
The codeql action is then invoked with a dummy URL that will make codeql.ts lookup the bundle with the specially crafted ID:
        ...
        tools: dummy://codeql-bundle-XXX-DUMMY-BUNDLE-ID/dummy
        ...

This works, but I would like a more reliable solution.  I am not sure
what the best approach is for supporting my use case, but I am happy
to look into implementing a suggestion.

I think the tools: property could be made to allow file:// URL.

Agreed, this is something we also need for https://github.com/github/codeql-coreql-team/issues/1264 so I will be looking at it in the near future.


Verify checkbox is checked

It would be awesome if it was possible to easily check whether a checkbox is checked. Could be via. a method called seeIsChecked or verifyIsChecked.
Real world example:
Settings page, where a user can check multiple checkboxes, and after submitting the form, you would need to verify that the checkboxes are now checked. As of now, you could only verify that the settings are stored in the database, but not that they are visually presented to the user.

Sure. Will add this.

+1


Roll engine 36be89da497b..fce8be3a68c0 (1 commits)

git@github.com:flutter/engine.git/compare/36be89da497b...fce8be3a68c0
git log 36be89da497b..fce8be3a68c0 --no-merges --oneline
2019-09-18<EMAIL_ADDRESS>Roll src/third_party/dart f22f62c85d..cb80ea7ba9 (8 commits)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Auto-roller completed checks. About to merge.

https://github.com/flutter/flutter/issues/40910


Check https://github.com/akx/pylint-to-ruff, https://pypi.org/project/flake8-to-ruff/ for anything useful

https://github.com/pylint-dev/pylint/commit/1198113b5f1d515b895a35ebec0da7448e34f183 and/or if ruff handles it?

Also
    - name: Lint with Ruff
      run: ruff check . --output-format github

?


[Fix][MOD-180] Show the preprint banner regardless of preprint status

Purpose
Show the preprint banner on projects to contributors regardless of preprint status.
Display the preprint status on the banner.
This is because contributors are used to getting to their preprint from the projects page but it doesn't show up if the preprint is pending or rejected.

Changes

Add new properties to node model
Update node view
Update project.mako template

If preprint provider supports moderation

If preprint provider doesn't support moderation

Side effects

Note
This PR against master branch replaces closed PR #7886 which were against develop branch.
Ticket

https://openscience.atlassian.net/browse/MOD-180

Sorry, I should have included more information. The help icon should be the same as the one on the "My Projects" page -- including the color (see below).

The second sentence -- "Learn more about how to work with preprint files." -- should be kept in both situations. Just the first sentence should be dependent on moderation.
Other then those small changes this is looking good! The users will be much happier once it's in.

@laurenbarker updates 👍  🐼

One more thing

One more thing (sorry, closed it by misclicking): Instead of the built-in browser hover text, the tooltip should be whatever is used elsewhere on the OSF, so it pops up right away and is more clearly visible, like on the "My Projects" page:

@aaxelb OSF is using default bootstrap style. I just added data-toggle="tooltip" data-placement="bottom" to look the same as OSF


Add Toggle Vertical Layout hotkey and menu

Add new menu and shortcut  Shift+Ctrl+\  for quickly toggle vertical layout mode without open App Preferences.

Closed as stale.


Fatal error: Uncaught InstagramScraper\Exception\InstagramAuthException

Hi...
I'm not sure if instagram killed this ?
Let me know if you think i've done a mistake?

I can still use it.  Sometimes I get InstagramAuthException and have to confirm the new device on my phone but the library is working.

Thanks - I will give it another try , any recommendations for best use ?

The error I get on trying to log in is
$twofactorAuthenticator must be an instance of TwoFactorAuthenticatorInterface
I guess instagram made it harder. Now every time I try to login they give me a prompt on my devices whether its me logging in or not. Irrespective of what I select from the options they ask me to change password which makes it almost impossible to use as every request sent leads to a password change.
I was trying to download stories with it. If you have any work around, please let me know.

@joy-dey did u fix it ?

Thanks - I will give it another try , any recommendations for best use ?

If you just need to retrieve public IG profile info , and last 12 posts, check https://github.com/skmachine/instagram-php-scraper - it does not require your IG auth details and uses cloud proxies to access public data (requires subscription). Note that this new package won't help if you need to extract followers or emails (as these endpoints require authentication).

@joy-dey did u fix it ?

Unfortunately no. Any updates on your side?


Optional Logger Interface

Having the optional logger as an interface allows plugging in custom logging libraries such as logrus, and allows integration with an app's custom logging machinery.
Also added quotes around user registration log, since without them it isn't clear that when generating an anonymous user it is just using empty string.

Hello @dkumor and thank you for your contribution!
I'm not sure that changing it to an interface will solve the base issue as we again add a constraint that the external logger must implement a Printf function. After giving this a bit of thought - wouldn't accepting an io.Writer solve this problem in a more general way?

In that case, no change is needed at all, since you can set up the stdlib logger to use an io.Writer:
var mywriter io.Writer
acme.Logger = log.New(mywriter, "", 0),

Also note that the log lines are manually prefixed with [acme] in the code, but a logger can be set to use the [acme] prefix automatically.

you can set up the stdlib logger to use an io.Writer

Yes that was my thought. By allowing this to be passed in we can continue to use our internal logger but log to whatever output the user wants. Would this be a solution for you?

Yes - I didn't think of setting up the logger with a custom io.Writer. As it stands, this means that there are no changes needed to the code at all.
I think this PR can be closed - using an io.Writer proxy is a bit more roundabout than what I was thinking, but it will work.

using an io.Writer proxy is a bit more roundabout than what I was thinking, but it will work.

Well I guess we could make this a bit more convenient to do. As it stands now the user needs to create the logger himself and manage the io.Writer. Maybe it would make sense to just allow passing in of an io.Writer and let the library use it transparently.

Sorry, I meant it the other way around. My specific use case is with Logrus, which fits a logger interface compatible with the stdlib logger.
I was aiming at directly passing in my logger with this PR, since it would fit the interface.
As it stands, it is just a 2 step process:
acme.Logger = log.New(mylogger.Writer(),"",0)

vs
acme.Logger = mylogger

I don't know if replacing the optional logger with an io.Writer would be useful, especially when going from writer to logger is a one liner.

You are right, that was a bad thought :smile:
I'll close this PR then as this is resolved.


Publish GitHubActionsCore in the PowerShell Gallery

Please consider publishing the GitHubActionsCore module in the PowerShell Gallery, so it's available outside of this action. That way, one may utilize Get-ActionInput and Set-ActionOutput too.

@Piedone I have never published anything there - do you have any good references I could use to do that?


Create Number of Dice Rolls With Target Sum.cpp

This is a dynamic programming problem   in leetcode solved in C++

Well done,
Kindly star the repository on top right corner!


chore: add @ScriptedAlchemy to Rspack core

Welcome welcome!

You may update Rspack Team page in rspack-website too :-)


Replace KeyValuePair with Tuple

Just noticed in the examples that KVP is used for many of the "pairs" - not just in the samples but within method signatures e.g. GroupBy. Perhaps these could (should?) be replaced with Tuples.

Native support in F# already e.g.

var wordCounts = words.Map(w => new KeyValuePair<string, int>(w.Trim(), 1))
                      .ReduceByKey((x, y) => x + y);

becomes
let wordCounts = words.Map(fun w -> w.Trim(), 1)
                      .ReduceByKey(fun (x, y) -> x + y)

Next version of C# will probably have similar syntax. Even with C#6 the experience is nicer: -

var wordCounts = words.Map(w => Tuple.Create(w.Trim(), 1))
                      .ReduceByKey((x, y) => x + y);

More importantly, Tuple is a well known type across many languages (including Scala) and I think better represents what the intent is.

:+1:

Could someone just give high-level opinion on this change? I'd be happy to make this change myself, it's hopefully just a boilerplate menial change - but there's no point my spending time on it if there's no agreement that it has value.

If that KeyValuePair'2 is a struct, then we should not replace it with Tuple'2, because it's a referential type.

Why?

performance

premature optimization? :-)

As it seems to be created on each data piece (line, record, whatever), there will be very large number of unnecessary allocation.

I'm thinking the cost of GC allocation would probably be massively outweighed by the IO costs normally associated with a distributed data application like Spark. At least in work I've done before, that's been the case.

From: Vasily<EMAIL_ADDRESS>Sent: 17/03/2016 11:51
To<EMAIL_ADDRESS>Cc: Isaac<EMAIL_ADDRESS>Subject: Re: [Mobius] Replace KeyValuePair with Tuple (#340)
As it seems to be created on each data piece (line, record, whatever), there will be very large number of unnecessary allocation.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/Microsoft/Mobius/issues/340#issuecomment-197843641

Replacing KVP with Tuple will achieve conceptual parity with scala and make the code a bit less verbose as @isaacabraham has pointed out but the performance/memory implications may not be worth it as called out by @vasily-kirichenko. With the worker implementation getting multithreaded (https://github.com/Microsoft/Mobius/pull/349) we need to be careful with every bit of overhead especially in streaming workloads.
The other consideration is to think about changes to Mobius public API and the implementation in https://github.com/Microsoft/Mobius/blob/master/csharp/Adapter/Microsoft.Spark.CSharp/Core/PairRDDFunctions.cs.
If we can validate that the performance and memory usage in KVP and Tuple implementations are comparable, we could consider making this change along with other major changes that will happen with Spark 2.0 upgrade.

@skaarthik OK - what sort of performance and memory metrics would you like to see to validate this?

Thanks @isaacabraham.
Mobius perf suite can be used for validating if the memory usage and run time are comparable. Check out RunRDDMaxDeletionsByUser perf test @ https://github.com/Microsoft/Mobius/blob/master/csharp/Perf/Microsoft.Spark.CSharp/FreebaseDeletionsBenchmark.cs#L47. It uses KVP and ReduceByKey.
Once the PR is ready I can also perform the validation using a streaming workload we have at Microsoft to test UpdateStateByKey implementation that uses KVP. https://github.com/Microsoft/Mobius/blob/master/csharp/Adapter/Microsoft.Spark.CSharp/Streaming/PairDStreamFunctions.cs#L342

Is there a reason for so little use of var in the codebase? Even though C# has somewhat limited type inference, even using that a little more would help with both readability and refactoring. I've been looking into this briefly this evening and it's been an absolute pain to replace the types on both sides of the equals.

I'm sure it can be done in one click with ReSharper.

@vasily-kirichenko or maybe a few "one click" :-)

@isaacabraham R# can apply any refactoring to the whole file, project and even solution.

FYI... http://vaskir.blogspot.de/2016/05/upcoming-f-struct-tuples-are-they.html?m=1

Any update on this, please?

I have a active pull request open which addresses this: #605.

Oh, yes, indeed. Posted this comment before seeing those two prs. Does it make sense to close the issue to do not fork the discussion on this matter?

Merged b95520eff8ea63914fd58bb83a932d1015bcce46


Fix/528 Use fields from parent - Create Collection form behavior

What this PR does / why we need it:
In the Create Collection form, when the user checks the “Use fields from [parent]” checkbox, we are now sending metadata block names and input levels as undefined to the js-dataverse use case.
This was tested also using the GHCR container image generated from https://github.com/IQSS/dataverse/pull/10985 PR and it works great.
This comment from @pdurbin explains what this is fixing very well.
Which issue(s) this PR closes:

Closes #539

Suggestions on how to test this:
Step 1: Run the Development Environment

Execute npm i.
Navigate with cd packages/design-system && npm i && npm run build.
Return with cd ../../.
Ensure you have a .env file similar to .env.example, with the variable VITE_DATAVERSE_BACKEND_URL=http://localhost:8000.
Navigate with cd dev-env.
Start the environment using ./run-env.sh unstable.
To verify the environment, visit http://localhost:8000 and check your local Dataverse installation.

Step 2: Test the fix

Create a collection called "One", but not using fields from Root, select an extra metadata block.
Create another collection called "One child" within the "One" collection, leave the "Use fields from One" checked.
Navigate to create a collection within "One child" and check that in the metadata fields section the default metadata blocks checked are the same from collection "One", its not necessary to create another collection here.

Go to the "One child" collection within the SPA, navigate to create a collection in it and verify now that in the metadata fields section, the default metadata blocks checked are now the same from collection "One", its also not necessary to create another collection here.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:
No
Is there a release notes update needed for this change?:
No
Additional documentation:
No

This change is causing an error in Create Dataset, when the parent collection is not the Root.  We need a fix in the Dataverse API to get the correct metadata fields for the Create Dataset form.  Added a waiting tag to this issue.
Here is the error:
https://github.com/user-attachments/assets/6552d8ab-d301-4f05-9949-6fcdd1e78380

@ekraffmiller working great on my end after pulling new unstable dataverse image.
https://github.com/user-attachments/assets/3cc1ffa9-56bf-4b53-995b-e9ad6e7b913f

@ekraffmiller working great on my end after pulling new unstable dataverse image.
Screen.Recording.2024-11-05.at.14.49.43.mov

Working for me now too, needed to get the newest image


Feature/GitHub Actions

Added:

github action to run tests
updated readme
added github badges to readme

@m-terra
Thanks for your contribution. This change seems to conflict with my change, can you please resolve the it?

@ureuzy done. it seems we had the same thoughts :)


Provide a hook when runtimeConfig variable is resolved

Describe the feature
Given the documentation here

Your desired variables must be defined in your nuxt.config. This ensures that arbitrary environment variables are not exposed to your application code.

Only a specially-named environment variable can override a runtime config property. That is, an uppercase environment variable starting with NUXT_ which uses _ to separate keys and case changes.

Example
.env
NUXT_API_SECRET=api_secret_token
NUXT_PUBLIC_API_BASE=https://nuxtjs.org

nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    apiSecret: '', // can be overridden by NUXT_API_SECRET environment variable
    public: {
      apiBase: '', // can be overridden by NUXT_PUBLIC_API_BASE environment variable
    }
  },
})

I am not sure it is possible to sanitize the environment variables when they are resolved so that we don't need to sanitize them everywhere. I tried using hooks so I could read the value, sanitize it, then reassign it, but I'm not sure it works that way. I have NUXT_PUBLIC_PLATFORM_URL defined and set.
// nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      platformUrl: '',
    },
  },
  hooks: {
    ready(nuxt) {
      console.log({ url: nuxt.options.runtimeConfig.public.platformUrl }) // resolves to empty string
      // Sanitize here
      nuxt.options.runtimeConfig.public.platformUrl = trimTrailingSlash(nuxt.options.runtimeConfig.public.platformUrl)
    }
  }
})

This hook says that the nuxt instance is ready to work, but the env variables seem not to be read at this moment. Would it be useful to provide a hook for when the env variables resolve, so we could sanitize them ?
// nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      platformUrl: '',
    },
  },
  hooks: {
    'env:resolve'(env: Record<string, string>) {
      env.NUXT_PUBLIC_PLATFORM_URL = trimTrailingSlash(env.NUXT_PUBLIC_PLATFORM_URL);

      return env;
    }
  }
})

Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

We can certainly implement this as a build/dev time hook both within Nuxt and Nitro (@pi0 and I will align to ensure the implementation is compatible).
Does that meet your use case or do you think there's also a need for a runtime hook?

Given they are environment variables, I don't think they can change at runtime, so unless someone has this requirement I think build/dev time should be enough

+1, I've been trying to find solution for this too. In Nuxt 2 I handled it via runtime module but it's impossible in Nuxt 3 :/

It looks like someone else is having exactly the same requirement than us: stackoverflow.com/questions/76488291/how-to-fetch-data-as-part-of-server-start-up-in-nuxt-3
So it's definitely a runtime hook, maybe before:ready

If you can shift that logic at build time, it would be easy to achieve with a module.
const configKey = "yourKey"

export default defineNuxtModule({
  meta: {
    name: "config-environment",
  },
  async setup(userOptions, nuxt) {
    const response = await fetch(stuff)
    const options = extractOptions(response.data)
    nuxt.options.runtimeConfig.public[configKey] = options
  }
})

If your docker requirements, given that you can just use the NUXT_ prefix for your environments variables and access them, I assume that you just want them to be sanitized ?
In this case, maybe we should just sanitize all environments variables by default, so that you end-users don't need additional logic. @danielroe  Is there any reason to not do this by default ?

@Hebilicious I guess that's the whole point to do it on runtime. If it was done in built time then we would have to ship whole repo to each env, doing npm installs (with installing dev depencencies which are often full of vulnerabilities ) and build.
From CI/CD perspective it's much more optimal to have app builded only once and then ship small package anywhere.

@Hebilicious I guess that's the whole point to do it on runtime. If it was done in built time then we would have to ship whole repo to each env, doing npm installs (with installing dev depencencies which are often full of vulnerabilities ) and build. From CI/CD perspective it's much more optimal to have app builded only once and then ship small package anywhere.

It depends on your setup. For node.js, you could argue that installing deps and building is more optimal that sending large folders of built files that contains node modules anyways. You could also run into issue where your build env and your prod env are incompatible etc.
@noook said initially : "Given they are environment variables, I don't think they can change at runtime, so unless someone has this requirement I think build/dev time should be enough"; hence my answer.
@wolodek are you trying to sanitise environments variables or are you trying to achieve something else?

@Hebilicious Sanitising and validating is what we need right now but similarly to @noook we would like to fetch config in future.

@Hebilicious It was indeed my first requirement, but we figured we would also need the possibility to fetch values before allowing requests to the server.
I imagined a hook, but the hook could serve many objectives, such as sanitizing environment variables, or fetching data that serves as runtime config

@danielroe I think that for build/dev time this is un-necessary as this is easily done as a module.
I suggest  :

We automatically sanitize environment variables (does this happens only here ? https://github.com/unjs/nitro/blob/main/src/runtime/config.ts)

We add a new nitro runtime hook that runs within createNitroApp, or we expose the nitro config to the nitro plugins, which would allow nitro plugins to modify it, either through a hook or directly within the plugin. (I'm assuming that Nitro plugins only run one time when the server start if you're not using a serverless environment ?)

And then the public variables are passed from Nitro to Nuxt through the renderer.

Might be related to https://volta.net/unjs/nitro/issues/339


select database()

Describe the bug
When I want to get the currently used database, I find that it cannot be parsed
To Reproduce
Steps to reproduce the behavior:

Example SQL
String sql = "select database()";
Parsing this SQL using JSqlParser with this statements
CCJSqlParserUtil.parse(sql);
Exception

Encountered unexpected token: "database" "DATABASE"
    at line 1, column 8.

Was expecting one of:

    "*"
    "STRAIGHT_JOIN"

Expected behavior
System

mysql 8.0.27
jdk-liberica-11.0.13
4.2 or 4.3

Keyword issues, which is solved in PR #1382 (pending).


Added in support for Running Stride SDM (Stride based Speed and Distance Monitor) to RSC (Running Speed and Cadence_

Added in support for running stride SDM sensors (like the Garmin foot pod). This converts the ANT+ Stride SDM sensor to broadcasting a BLE Running Speed and Cadence sensor. I tried to follow the coding style as much as possible in this repo.
I wanted to get this working since the USB C iPad Pros do not support ANT+. The iPad version of Zwift does not support the Zwift companion app which bridges an Android phone sensors with a PC. The only other solution would have been to buy a Cable Ant+ to BLE but that is around $63 USD + Shipping + Duty. Now I can use Zwift on my iPad pro with my Android phone bridging the ANT+ Garmin foot pod 😄.
Notes:

The ANT+ device reports instantaneous speed as m/s, there is an exact field for this in BLE
The ANT+ device reports total strides taken. BLE reports strides per minute. A rolling linked list is used to track the average cadence within the last 10 seconds. When displaying this value it is multiplied by 2 to get cadence.

I didn't support a few features since Zwift doesn't read them and I didn't spend the additional time:

Total distance. It is an optional BLE feature so it is disabled.
BLE supports instantaneous stride length, but ANT+ does not. You could calculate an estimate for the value based on the data you have, but since Zwift doesn't read it so I left it out since I cannot test it.

User Interface Changes:

Added in the new fields in both landscape and portrait
Although the user interface doesn't make as much sense now, it still works 😄.

Testing Environment:

Android Device: OnePlus 7 Pro with Garmin Ant+ usb
Ant+ Device: Garmin Foot Pod
Bluetooth Device to Connect to: iPad Pro running Zwift

Fantastic! I don't have that sensor to test but those screenshots look awesome! I'll review the code and get back soon!!

Thanks for this awesome PR!


[Proposal] Numeric is in a Box Space

Proposal
I think it makes sense that a single numerical value could be in a box space. For example, suppose I have space
space = Box(0, 4, (1,))
a = space.sample()[0] # This will give me a single numerical value
a in space # This will be false

A single number is not in a Box space. This fails because np.asarray(SOME_NUMBER) produces a 0-dimensional array.
Motivation
I write simulations that rely on Box observation spaces of one dimension. It's natural for me that those simulations just output a single numerical value for observation instead of an array or list of that value.
Pitch
Change the contains function in Box to allow for single numbers when the Box space has shape (1,).
Alternatives
No response
Additional context
No response
Checklist

[X] I have checked that there is no similar issue in the repo

I think similar proposals bounced around the issues and potentially the discord, but I don't think this is a good thing to do. The idea of a box is that a specific element of that space is an array. While there is an obvious correspondence between numbers and arrays of size [1], they are not the same objects, and the only reason why they can sometimes be treated similarly is python's insanity.
The good news is that a Box(0, 4, ()) might be what you're looking for, since zero-dim arrays have more of a claim to being the same thing as numbers.

the only reason why they can sometimes be treated similarly is python's insanity.

For the record, I don't think this is insanity. It's not precise, but I'm okay with that because I like python for its flexibility over its precision. If this is an idea that has bounced around a bit, then I think that many people may feel the same way. What do we gain by distinguishing between [1] and 1 in Box(0, 4, (1,))? Precision for precision's sake? Then everything fits perfectly in the little list of rules that we have for this object? So what? I think [1] and 1 are functionally the same in this case, so unless there are important use cases that require this distinction, then I believe functionality and flexibility should win over precision and neatness.


Bot updating itself?

Expected Behavior
Only update if I git pull.
Actual Behavior
Updates config.json after first run.
Steps to Reproduce
Initial: I deleted the folder PokemonGo-Bot with sudo rm -rf PokemonGo-Bot and copied a backup on my Pi again (backup is an 2 days old dev with an old config.json, see below).
I start the bot, everything runs fine, map is also working. If I stop it now and open my config.json it's the newest config file with these 'tasks'. If I start the bot again now it will transfer all pokemons like instructed in the example file. I lost all my high CP pokemon and the map isn't working anymore... :disappointed:
old config layout:
{     "auth_service": "google",     "username"<EMAIL_ADDRESS>    "password": "haagoteem",     "location": "37.797904, -122.408905",     "gmapkey": "elgoog",     "max_steps": 300,     "catch_pokemon": true,     "websocket_server": true,     "spin_forts": true,     "walk": 20,     "action_wait_min": 1,     "action_wait_max": 4,     "debug": false,     "test": false,     "health_record": true,     "location_cache": false,     "distance_unit": "km",     "reconnecting_timeout": 15,     "item_filter": {       "1": { "keep" : 40 },       "2": { "keep" : 80 },       "101": { "keep" : 10 },       "102": { "keep" : 20 },       "103": { "keep" : 30 },       "201": { "keep" : 30 },       "701": { "keep" : 30 }     },     "evolve_all": "NONE", ...
Other Information
OS: Raspbian on a Raspberry Pi
Git Commit: 3dc8e8ba39151130e987e39796ad6151c9ee5c67
Python Version: Python 2.7.9

The config has changed throughout the dev-builds the last couple of days so whenever you do a git pull you should compare your config.json with the configs/config.json.example to make sure it's still good to go.

whenever you do a git pull

The funny thing is that I never did a git pull. Just re-ran the bot and everything changed.

paste your full config file

That was my old config file where everything was fine. The updated config.json transfered all pokemon < 300 CP or < 0.8 IV (i think)

I really hope for you that's not your real email and password

Don't worry :D

@KLVN well, the bot shouldn't update itself, 99.9% sure that isn't a thing :P

I know, it's really strange :D And if I open the config.json via FTP it's the old file again. Like dafuq.

@KLVN that's.. not possible, sorry to say, but you must've done something wrong along the way or forgotten about something you did ;) computers simply do what they're told to do :P


chore: update links after repo rename

also start preparing for the release

closing in favor of #22


Nick: Watch appxperts.sg

Nick requests the watch of the watch_keyword appxperts\.sg. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

appxperts\.sg has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Adding Prioritized Experience Replay

Hi, I was wondering if a Prioritized Experience Replay buffer could be added to PPO?
They do something similar to that here - Leveraging Demonstrations for Deep Reinforcement
Learning on Robotics Problems with Sparse Rewards, with DDPG.
I'm guessing though PPO would be more stable?
Perhaps OpenAI's prioritized replay_buffer, from the baselines repo could be used?

For PPO, it will probably have a much smaller effect since the replay buffer is much smaller.


'Like' button shouldn't appear if you're not logged in

From @mialondon on August 1, 2017 15:32
Copied from original issue: LibCrowds/libcrowds-viewer#141

See Presenter.vue


refactor: let exportMapKey accepts bad symbol name

this is required for #49297 because a symbol may can contains | in its name

@rbuckton are you familiar with this spec change?

@rbuckton are you familiar with this spec change?

this basically allows any string (valid Unicode maybe?) to be the export name, so you can export { x as "a|b" } and then break the compiler.
But I doubt this already happens in CommonJS module in form of exports["a|b"] = 0

@typescript-bot pack this
@typescript-bot test this
@typescript-bot test top100
@typescript-bot user test this
@typescript-bot user test tsserver
@typescript-bot test tsserver top100
@typescript-bot run dt
@typescript-bot perf test this


[Documentation] TUNNEL

Describe the feature request
This is a request for user/usage documentation for the new TUNNEL feature introduced in the istio.
Describe alternatives you've considered
I've tried going through https://docs.google.com/document/d/1QbjsBwM0QyQxJIs2LJBUvITap2QeqOKmsHQrGFK9lWQ/edit?usp=sharing and https://github.com/istio/istio/blob/1aca7a67afd7b3e1d24fafb2fbfbeaf1e41534c0/tests/integration/pilot/testdata/tunneling/ but as noob it's really hard to understand how things are working or make it work.
We can maybe add a section in https://istio.io/latest/docs/tasks/traffic-management/egress/http-proxy/
Affected product area (please put an X in all that apply)
[ ] Ambient
[x] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context

Thanks a ton, @jewertow for adding this feature.
(Tagging him for more visibility)

Hey, this documentation is on my todo list and I was going to do it, but this solution has some limitations and flaws. I was working recently on an RFC that addresses all these issues, so I was not sure whether it's worth to document it now or later.
But on the other hand, it may take long time until the RFC will be implemented, so it makes sense to not wait for it. I will submit a PR next week.

Hi @jewertow, I have a query about the feature which I haven't yet figured out an answer to:
My use-case is:

applications should not be aware of the forward-proxy's IP/port and should continue to send HTTP/HTTPS requests business as usual

However, they can choose to force a request through a proxy using a header (say: X-PROXY-THIS)

The istio sidecar, intercepts all outbound requests

If X-PROXY-THIS exists, there should be HTTP CONNECT to the forward-proxy, and the rest of HTTP/S payload should be tunneled to the destination, via the proxy.
If X-PROXY-THIS doesn't exist, egress should use the default way of egress (PassthroughCluster I guess)

The other thing is there's no known list of destination server-names (like *.cnn.com, *.google.com, etc). The application, based on some business logic, can choose to proxy requests to any random server, or not proxy.

Is it feasible to implement this solution using the TUNNEL feature in istio?
PS: It has been great learning experience reading through your Github issues, samples, and RFCs, especially: this , this and this!

Hi @shibin-george!
I'm sorry for the late reply. I'm glad to see that my issues and notes were helpful.
I think that you should be able to force tunneling when a particular header is sent, however it will be only possible with an egress gateway. Why? To make a header-based routing, you need a VirtualService with an HTTP route, but DestinationRule with tunnel settings can be only applied to TCP or TLS services. To avoid this limitation, you need an egress gateway that will expose TCP/TLS port and tunnel received traffic. A quick prototype (I didn't test it):
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-egressgateway
spec:
  selector:
    istio: egressgateway
  servers:
  - port:
      number: 443
      name: tls
      protocol: TLS
    hosts:
    - www.google.com
    tls:
      mode: PASSTHROUGH
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: force-tunneling-mesh
spec:
  hosts:
  - www.google.com
  gateways:
  - mesh
  http:
  - match:
    - header:
        exact: "X-PROXY-THIS"
    route:
    - destination:
        host: istio-egressgateway.istio-system.svc.cluster.local
        subset: originate-tls-to-google-com
        port:
          number: 443
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: originate-tls-to-google-com
spec:
  host: istio-egressgateway.istio-system.svc.cluster.local
  subsets:
  - name: originate-tls-to-google-com
    trafficPolicy:
      tls:
        mode: SIMPLE
        sni: www.google.com
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: force-tunneling-mesh
spec:
  hosts:
  - www.google.com
  gateways:
  - istio-egressgateway
  tls:
  - match:
    - sniHosts:
      - www.google.com
    route:
    - destination:
        host: connect-proxy.net
        subset: tunnel-traffic-to-google-com
        port:
          number: 3128
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: originate-tls-to-connect-proxy-and-tunnel-traffic-to-google-com
spec:
  host: connect-proxy.net
  trafficPolicy:
    tls:
      mode: SIMPLE
      sni: connect-proxy.net
  subsets:
  - name: tunnel-traffic-to-google-com
    trafficPolicy:
      tunnel:
        targetHost: www.google.com
        targetPort: 443

If it comes to the last question - it's not possible. If Istio supported command operator %REQUESTED_SERVER_NAME%, then your case could probably work. I filed an issue to support this option, but first I have to change implementation of tunneling to use an internal listener or implement my RFC that I mentioned in the previous comment. Currently to enable tunneling, you have to define a destination rule with subsets for every target host. You could achieve all your goals with EnvoyFilter, but it's inconvenient to use and difficult to maintain.


Add LaTeX support by MathJax

See Discussion in #4 (https://github.com/csz-academy/csz.academy/pull/4#discussion_r780826983).
Please give feedback on this - especially whether it is a problem to include MathJax via CDN and whether MathJax is an appropiate option.

Using KaTeX for server side rendering might be the better option, at least as soon as there's a page which massively abuses LaTeX https://github.com/linjer/jekyll-katex

Think this can be closed if #12 merges. I really prefer server side rendering for this.


Show cumulative compile time

This change groups all identical lines together and shows their summed up build time. It also removes the 20 results limit and only logs files whose cumulative compile time exceeds 10ms. Also if a single line in the same source file produces multiple results, but with a different column, they are summed up too.
This unfortunately also disables the live update (for now).
Closes #26

Nice one. Let me try it out later. I can sort out the live updates so don't worry about that.

The problem with the live updates is that the results can only be generated after all values are known (since the compile times are accumulated)

No problem. I know how to workaround that. 🙂

Hmmm... I just did a test and the values look a bit odd. For this
let indicatorSize = CGSize(width: 20, height: 20)
lazy private var labelOffset: CGPoint = CGPoint(x: -self.indicatorSize.width * 0.15, y: -20)

I got a build time of 820ms for the labelOffset getter and it's only referenced twice. If I stick the same two lines of code in a new project, the labelOffset is built in nearly 0.0ms.

When I have a moment, I'll try to make my fresh project behave this way to and measure the overall build time to verify that this is actual compiler time. ...which it does seem to be.

Could you please direct this pull request to the branch called "cumulative-compile-time" instead of master? Will fix the live update on there. Also noted an issue if all compile times are less than 10ms which I can fix.


Adds azd installation for devcontainer definition

This PR adds a post create command to the devcontainer definition, so that the container spins up with azd already installed (which is a project dependency).

Closing because the main branch on the fork has changed too much in between, will open a separate branch for this change.


Add Marionette capability for Selenium2Driver

Marionette is this new thing to interact with Firefox browsers.
I haven't heard of it, until today. According to this Mozilla help page you'll have to tell your Selenium driver to request marionette capability, until Marionette will be the default one.
This PR adds the capability, so I can add the following to my behat.yml to use Marionette with (at least Selenium 2.53). Without it, MinkExtension complains that it doesn't know the option.
default:
  extensions:
    Behat\MinkExtension:
      sessions:
        default:
          selenium2:
            capabilities: { "marionette": true }

thanks


⚠ Bofrost.at has degraded performance

In 025b565, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1492 ms

Resolved: Bofrost.at performance has improved in 11461d3.


Conexant CX20756: Wrong codec files

Hi, thanks for this awesome kext but i think the files for Conexant CX20756 are the wrong ones because it doesn't work on my laptop. The audio is greyed out and no inputs/output are available. I'm using a vanilla AppleHDA and i checked if the AppleALC loads first and it does. If you can find what's wrong you will be my saviour. Thanks.

Hm... You right... I'll contact @Mirone about this codec...

Well @Mirone will update resources as soon as he can. I'll post here after update.

@vandroiy2013 ,
I find this files from Old AppleHDA Patcher
Are correct. CX20756

@Mirone , Thanks. i will update them as soon as possible!

@Mirone , Sorry but a unpack layout3.xml.zlib from your link and see Codec-id from CX20751

@vandroiy2013 ,
ok, it's very easy fixed, you make me a favor?
you can fix typo for me?
351359252 = 0x14F15114,
other files is correct.

OK. Changed!
@STiXzoOR , Test it please and report back. Here is updated prebuild AppleALC.kext
AppleALC.kext.zip

Thanks @Mirone and @vandroiy2013 for the support. I'm gonna try it as soon as i can and report back.

So the sound now works(both speakers and headset) but the external mic doesn't. It doesn't even show up in inputs. When connecting my headset the input stays the same(internal mic).

Ask @Mirone to help you with this issue...

@STiXzoOR ,
send me your codec_dump.

Here, straight from linux: card1-codec#0.txt

@Mirone also i'm sending you the Pathmaps that i played with the other day, which seems they kinda work. Actually here is the report:
Speakers: Yes
Headphone: Yes
Internal Mic: Yes
External Mic: No (but shows up in the inputs)
Platforms.xml.zip

Please try this: http://www.insanelymac.com/forum/topic/293863-applehda-patch-requests/page-42?p=2383785#entry2383785

I barely understand what he is saying and i can't download the SSDT for some reason :-/ :-/

Yes, but some issues are needed,
I can do this for you, but only at night (Brazil time).

Yeah sure no problem i can wait. thanks man

@STiXzoOR,
try this files, delete AppleALC, install AppleHDA+CodecCommander in: System/Library/Extensions.
put SSDT-1 in: EFI/Clover/ACPI/Patched.
try both versions of AppleHDA in the Attached files.
AppleHDA-278.56-CX20756_v2.zip

@Mirone, i tested both versions and non of them was working. No audio at all.

@STiXzoOR,
try AppleALC+DSDT+CodecCommander.

@Mirone emm ok for some reason the audio is not greyed out but no sound is coming out of the speakers and headphones. In fact it doesn't switch to headphone output when i plug in the headset.
Also @vandroiy2013 can you please compile me the AppleALC with node 19 instead of 18 for the external mic since i think it's the problem for not showing external min in inputs when i have the headset plugged in? Thanks.

@STiXzoOR, Try to compile it yourself))) Xcode is free of charge in App Store and AppleALC source code is open and ready for download. In Tools folder you'll find scripts for unpacking/packing zlib's. Don't forget to put in AppleALC folder debug version of Lilu.kext.  Sorry, but i'm not a compile bot:).


Add headers to download images

Some image urls (e.g., wikipedia images) requires a policy for the requester to have an explicit user-agent header. This PR adds the header to the download_image function.

cc @patrickvonplaten Let me know if this is the best way to do this! We have something similar in vLLM, but open to change the header content to anything else!


⚠ Bofrost.at has degraded performance

In f0d3ded, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 4349 ms

Resolved: Bofrost.at performance has improved in b3b3617 after 20 minutes.


Problem with breakpoints

Great plugin!
Just one issue, when I try to add fluid breakpoints, it doesn't work.
Basically it always behaves like its going from default smallest to default biggest.
In the screenshot, you can see that I added md to lg breakpoint, but it doesn't work for some reason.

As far as I can see, it adds css but without breakpoints.
Any help would be appreciated.

Hi 👋, thanks for the kind words! Is it working like this for you locally?

I started new project with ti and I am loving it.
Yea it works exactly like that.
Maybe I was wrong. I thought that when it for example reaches "sm" breakpoint, that padding will be 0 in that example

Ah yeah, the fluid variant (~md/lg in this case) only changes the start/end breakpoints for the clamp() and doesn't wrap the whole thing in media queries 👍 . You can combine them with media queries if you want though, e.g.
<div class="md:max-lg:~md/lg:~p-5/16">

Sandbox
Is that closer to what you were looking for?

No problem! ✌


add typescript section; add ts-jsonapi

ts-jsonapi is a port of jsonapi-serializer written purely in Typescript with a minor additions

Nice! Could you switch the order of the two though please? We keep the list in chronological order.

done

Could you also please move ngrx-json-api.

you may also add katharsis as java client library, most recent releases support both client and server use

@remmeier there should be another PR/Issue for the Java libs I believe :)

@steveklabnik this LGTM now. What do you think?

Sorry to take so long to merge this. And thanks again for the contribution!


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 940 ms

Resolved: Bofrost.be performance has improved in 7a8b330.


Should waitUntil() fast fail if a single extension promise rejects?

Currently the waitUntil() logic says:

Wait until the result of waiting for all of extendLifetimePromises settles.

The waiting for all text links to Promise.all():
https://www.w3.org/2001/tag/doc/promises-guide#waiting-for-all
In turn, Promise.all() fast fails if a single promise in the array rejects.
This means that for things like FetchEvent.waitUntil() where rejection has no direct impact on SW life cycle or behavior, a rejection in one waitUntil() can cut off the behavior blocking another waitUntil().  Or it may not cut them off.  Its basically a race between that second waitUntil() and the SW idle grace timer killing the worker.
Maybe this is ok, but I'm not sure its what people expect when they look at the API.  Perhaps we should consider using an algorithm that waits for all promises to settle (one way or another) and then if any rejected passed the first error message it saw.

F2F:

Agree with @wanderview - rather than Promise.all we should wait on all promises to settle
This is what Chrome does already

Is it agreed? Should the "decided" label go on this issue?


Orderindex fields can be a floating point value.

I just ran into a json parsing error from calling GetTaskByID() where orderindex came back as 0.5.

Another option is to just use json.Number instead - then we don't have to worry about int vs float vs string-ified number. It'll then be up to the caller to get the value.


Add inSync/deSync state machine in the chain.Synchronizer

Following the state machine example of loop.Phase, similarly the sync/async state of the Synchronizer is best modeled through a state machine function.

Closed via #792


Documentation don't work

https://puikinsh.github.io/gentelella/ isn't working, so I don't know how to make a graph using the template.

hallo,you can use this website instead.
https://colorlib.com/polygon/gentelella/index.html


How to configure scoped_routes with scoped_rds ?

Description:

I am trying configure scoped_rds with filesystem rds. But I got an error Unexpected RDS resource length: 2. How can I configure scoped_routes with multi-routes. configure as followed.

start.sh
#!bin/bash

docker run --rm \
    --name envoy \
    -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml \
    -v $(pwd)/xds:/etc/envoy/xds \
    -p 10002:10002 \
    -p 9081:9081 \
    envoyproxy/envoy:v1.24.0

envoy.yaml
node:
  cluster: cluster-1
  id: envoy-instance-1

dynamic_resources:
  lds_config:
    resource_api_version: V3
    path_config_source:
      path: "/etc/envoy/xds/lds/lds.yaml"
      watched_directory:
        path: "/etc/envoy/xds/lds"

admin:
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 9081

xds/lds/lds.yaml
resources:
  - "@type": type.googleapis.com/envoy.config.listener.v3.Listener
    name: "listener_0"
    address:
      socket_address:
        address: <IP_ADDRESS>
        port_value: 10002
    filter_chains:
      - filters:
          - name: envoy.filters.network.http_connection_manager
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
              stat_prefix: ingress_http_scoped
              http_filters:
                - name: envoy.filters.http.router
                  typed_config:
                    "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
              scoped_routes:
                name: rds_scoped
                scope_key_builder:
                  fragments:
                    - header_value_extractor:
                        name: "X-Route-Selector"
                        element_separator: ";"
                        index: 0
                scoped_rds:
                  scoped_rds_config_source:
                    resource_api_version: V3
                    path_config_source:
                      path: /etc/envoy/xds/rds/rds_scoped.yaml
                      watched_directory:
                        path: /etc/envoy/xds/rds
                rds_config_source:
                  resource_api_version: V3
                  path_config_source:
                    path: /etc/envoy/xds/rds/rds_scoped_route.yaml
                    watched_directory:
                      path: /etc/envoy/xds/rds

rds_scoped.yaml
resources:
  - "@type": type.googleapis.com/envoy.config.route.v3.ScopedRouteConfiguration
    name: route_scope_1
    route_configuration_name: rds_scoped_config_1
    key:
      fragments:
        - string_key: "web1"

  - "@type": type.googleapis.com/envoy.config.route.v3.ScopedRouteConfiguration
    name: route_scope_2
    route_configuration_name: rds_scoped_config_1
    key:
      fragments:
        - string_key: "web2"

rds_scoped_route.yaml
resources:
  - "@type": type.googleapis.com/envoy.config.route.v3.RouteConfiguration
    name: rds_scoped_config_1
    virtual_hosts:
      - name: direct_response_service
        domains: ["*"]
        routes:
          - match:
              prefix: "/"
            direct_response:
              status: 200
              body:
                inline_string: "scoped yay 1\n"

  - "@type": type.googleapis.com/envoy.config.route.v3.RouteConfiguration
    name: rds_scoped_config_2
    virtual_hosts:
      - name: direct_response_service
        domains: ["*"]
        routes:
          - match:
              prefix: "/"
            direct_response:
              status: 200
              body:
                inline_string: "scoped yay 2\n"

cc @envoyproxy/api-shepherds

Can be reopened this issue? it keeps failing in version 1.25.0 of envoy


Hystrix 1.4.23 is not available on Maven Central

Looks like again the similar issue where the build process only got the artifacts to bintray and not maven central :'(

Finally figured out how to do the Bintray -> Sonatype sync myself this morning.  In a couple hours, Maven Central should have 1.4.23.  Will close when I confirm that

Sync worked, so this should no longer be an issue going forward


Document composite:minmax_per_element_operator

Document that the composite:minmax_per_element_operator returns 1-based indices.

Codecov Report

Merging #366 (dad47a4) into main (e8dfb77) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #366   +/-   ##
=======================================
  Coverage   91.73%   91.73%
=======================================
  Files          47       47
  Lines        3038     3038
=======================================
  Hits         2787     2787
  Misses        251      251

Files
Coverage Δ

src/ansys/dpf/composites/_composite_model_impl.py
86.50% <ø> (ø)

src/ansys/dpf/composites/select_indices.py
94.44% <ø> (ø)


Block Issues? Is this an Bug on 1.20.1?

Hey, we don't know, if this should been as it is?
Here some Screens to look on the issues?

This is intended! It's a specific effect, you can read more about it here if you're curious.


Lookup joins can use partial indexes

Fixes #8516.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/5c456cb1d9a74c2403ed0f336ec8f9bd95ad5d79/
Edited pages:

v20.2/joins.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/1cdc329a9e28e724f65fab89bb67779f57d1122c/
Edited pages:

v20.2/joins.md


Add options to sort based on repository tags

It would be nice if we could also have starred be able to retrieve and sort repos by their tags. Something like being able to search all repos that have tui as a tag. A lot of awesome lists are sorted by categories like this instead of just by language.

will support by csv format

https://github.com/maguowei/starred/commit/b7821f8a17f3b5e09480017bfde1e0e6d44edda9
use latest version with new --topic option
pip install starred==4.2.0
starred --username xxx  --token xxx  --repository my-stars --sort --topic
example: https://github.com/maguowei/awesome-stars/blob/master/topics.md


Bulk Add / Quick Add

For B2B advanced users, allow them to add multiple items to the bag in one shot with the stock code & quantity based csv.


FilterTool reacts to all mouse inputs

Currently the FilterTool applies the filter on all mouse inputs. Which causes problems since panning is done with the scrollwheel.
Fix: Set the FilterTool to apply when left-clicking.

Fixed in commit 10f70c77d303e6e2502b8d12bdaa8361314becd1.


⚠ Bofrost.fr has degraded performance

In cb620c7, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1756 ms

Resolved: Bofrost.fr performance has improved in 25c0927 after 13 minutes.


Fix dropup in navbar for all the breakpoints

Related to this comment : https://github.com/twbs/bootstrap/pull/23520/files#r142664776
Following: #23520
/CC @wojtask9

Thank you @wojtask9 for your code review :+1:


Fix logshipping monitor

Type of Change

[X] Bug fix (non-breaking change, fixes #)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
For versions prior to SQL Server 2014 the log shipping works a little different. To add the monitoring server a couple of workarounds need to be put in place to make sure SQL Server is able to create them.
Approach
The changes in the commands check if the version of SQL Server is SQL Server 2012 or lower and with that execute some additional code.
Commands to test
Invoke-DbaDbLogShipping

fantastic gorgeous green! thanks sander 💯


Replace unambiguous of throw Throwables.propagate with definition

In the SDK the path taken by Throwables.propagate is always statically known, and the inlined logic is more explicit and readable:

If an exception e is already a checked exception, Throwables.propagate(e)
is the same as throw new RuntimeException(e).
If an exception e is already a RuntimeException or Error,
Throwables.propagate(e) is the same as throw e.

R: @lukecwik
It also looks like there might be some poor handling of an InterruptedException here. LMK what you think.

pong

LGTM
Waiting on tests to finish running.


Emergency patch - 2022.9.1

The main CMakeLists project ID didn't get changed so the CMake target get the old version instead of the new one

Fixed in https://github.com/jfalcou/eve/releases/tag/v2022.09.1


do not persist version info in browser local storage [backport 2.0]

Backport the fix to #22210 to the 2.0 branch

Closed by influxdata/ui#2654


Test and Fixed for SharedPtr leak

See #45.

@Araq any word on this?
It'd be nice to get the standard repo stable since I am also getting memory allocator corruption when using the master branch.
I suspect use after frees. I don't have the time to prove it, but this branch works like a charm.
There's probably a sequence where one thread gets 0 thinking its ready to free, but before doing so another takes it's first copy that'd lead to a double free or use-after-free.

Rename it back to val please.

Rename it back to val please.

Ah, that was my favorite part. Ok done.


Incorrect order when outputting errors inside generated def

I searched and didn't see anything about this so I think this is not a duplicate.
Let's say I have something like this
macro gen_tag_helpers
  {% for tag in [:a, :img, :hr, :div] %}
    def {{ tag.id }}(text)
      puts text.upcase
    end
  {% end %}
end

gen_tag_helpers

not_string = 1
# This will blow up because `1` does not implement `upcase`
img(not_string)

The output is this:
Error in macro_errors.cr:12: instantiating 'img(Int32)'

img(not_string)
^~~

in macro_errors.cr:9: expanding macro

gen_tag_helpers
^

in macro 'gen_tag_helpers' /Users/paulcsmith/learning/crystal-playground/macro_errors.cr:1, line 7:

   1.
   2.     def a(text)
   3.       puts text.upcase
   4.     end
   5.
   6.     def img(text)
>  7.       puts text.upcase
   8.     end
   9.
  10.     def hr(text)
  11.       puts text.upcase
  12.     end
  13.
  14.     def div(text)
  15.       puts text.upcase
  16.     end
  17.

undefined method 'upcase' for Int32
Rerun with --error-trace to show a complete error trace.

The problem here is that I would expect this to be last
img(not_string)
^~~

This may be how the compiler sees it, but as a developer I expect to see macro output go above the macro debug output. This is especially problematic when the macro generates a lot of code and you have to scroll up to see what code caused the failure.

The most important stuff is usually put first, not last. Location in code, error messages, code excerpt... and only after that comes the callstack or as in this case contextual information like expanded macro code.
If you're running the compiler in a terminal, that would mean to burden yourself with scrolling upwards to read the top of the error output if there is a lot. But this is merely a question of the user interface. In a terminal you could pipe the output through a pager to read from the top.

Usually that is the case, but it's not the case for compiler errors in crystal. They're opposite of a normal stack trace. I'm also fine with it being first like most stacktraces, but it should be consistent.
Here is an example:
class User
  def normalize_name(name)
    name.upcase
  end
end

name = User.new.normalize_name(1)

And the errors, notice that the order is opposite the normal order. I actually prefer this and think it should be consistent with macros as well.
Error in compile_errors.cr:7: instantiating 'User#normalize_name(Int32)'

name = User.new.normalize_name(1)
                ^~~~~~~~~~~~~~

in compile_errors.cr:3: undefined method 'upcase' for Int32

    name.upcase
         ^~~~~~

Rerun with --error-trace to show a complete error trace.

Duplicate of #4700
The order is exactly the same, be it a method or a macro.

@asterite Sorry I was unclear in my descriptions and titles. This issue is not a duplicate of #4700, though they both stem from the same root problem of unclear (IMO) compiler errors when the error is in generate code from a macro.

The suggestion in #4700 was to only show a few lines surrounding the error when there is a lot of generated code, rather than everything. Macros that generate a lot of code make it really hard to find where in my app code the problem lies, because I have to slowly scroll up until I get to the app code that I wrote.
I incorrectly labelled this issue (#4699) as "incorrect order" when the root problem is that it's unexpected/less helpful order. I see your point now that technically the macro is the last thing to be called so it comes at the bottom so it's not a bug. Though that is technically correct, it makes debugging very difficult. I have to go through a bunch of macro output to see what code I wrote that is the problem. Usually the last line of compiler output is what I wrote, but when calling a macro in another library/stdlib it's code that I didn't write. So I think that the code I called should be last. Otherwise I have to slowly scroll through the stack trace until I found the code that I wrote that was the problem.

Does that make sense? So neither of these two things are bug, but implementing one or both would help improve finding what code I wrote that caused the issue.
So maybe the best bet is to always put the user's app code (not the generate code) at the bottom of the output? Maybe separate and with a different color to make it clear what code I wrote caused the issue?
Maybe this?
Error in macro_errors.cr:12: instantiating 'img(Int32)'

img(not_string)
^~~

in macro_errors.cr:9: expanding macro

gen_tag_helpers
^

in macro 'gen_tag_helpers' /Users/paulcsmith/learning/crystal-playground/macro_errors.cr:1, line 7:

   1.
   2.     def a(text)
   3.       puts text.upcase
   4.     end
   5.
   6.     def img(text)
>  7.       puts text.upcase
   8.     end
   9.
  10.     def hr(text)
  11.       puts text.upcase
  12.     end
  13.
  14.     def div(text)
  15.       puts text.upcase
  16.     end
  17.

undefined method 'upcase' for Int32

---------------------------------------------------
# And maybe highlight the code in red?
undefined method 'upcase' for Int32 in file xxx/xxx.cr

12. img(not_string)
^~~

Rerun with --error-trace to show a complete error trace.


How to do exactly the same ui in vscode ?

Hello,
It's from CodeSandox cloud container ;) Not VS Code.
See this:

oh.. thx )


Changes to cover pages (University of Malaya to Universiti Malaya)

The official English name of the university is now Universiti Malaya. This affects the cover page, the wording in the declaration page.
~Edit: The citation format is now APA 7. I will try to port to biblatex-apa and PR later.~ Found a blog here

The official DOCX template is as attached.
8.  Format of Thesis  Dissertation (3).docx

Copy and paste
\makeatletter
\patchcmd{\makecoverandtitlepage}{UNIVERSITY OF MALAYA}{UNIVERSITI MALAYA}{}{}
\patchcmd{\faculty@block}{UNIVERSITY OF MALAYA}{UNIVERSITI MALAYA}{}{}
\makeatother

before \begin{document} of thesis.tex for now, pending future update of umalayathesis.cls itself.


feat: Add pin/unpin commands to persist important buffers

Great idea for a plugin! I saw this comment in the reddit thread and slapped a quick pin/unpin command together to address having to 'poke' important buffers with a quick switch to Insert mode. Don't know if this is something you're interested in or if it's something you'd rather implement yourself from scratch, but I thought I'd share.
The threshold is respected. Say the threshold is 4 and you have four buffers open. You pin the oldest buffer. Open a new buffer, the second oldest buffer gets popped. And so on up until you pin four buffers. Then if you open a new buffer, your four pinned ones persist, and the new one also opens. You pin the fifth and open a new one, five persist, the new one also opens, and so on. Unpinned buffers seem to be removed with respect to their actual age along others that weren't pinned in the first place.
I didn't add completion because I don't know nvim apis well enough to implement it with relatively few lines of code.

Hi! Thank you for the PR! Since some people do seem to prefer a mapping instead of i, I find this functionality will be useful. Furthermore the addition of unpinning a buffer is interesting, although I don't know if I would personally use it.
Lastly, since you are adding functionality, there need to be updates to the README as well.

@al-ce hi, I added a bunch of refactors in the last commit, check them out please, and tell me if you find them sensible. It is mainly about modularization, but there are some improvements to the code also. On the user side I though that I can expose just the toggle command without separate pin unpin actions, tell me if that is ok for you.

The refactors are great, sorry I misunderstood what you were saying about exposing a single command instead of two. That makes sense. I had considered splitting up the modules but I didn't know how you preferred it. This looks good!
Thanks for working with me on this! I enjoyed the learning experience, you gave great guidance. Btw let me know if you need me to do any commit squashing on my end

Let's go with best practices and keep the commit history minimal and easy to read. Should I force push the rebase to this branch or can you do it all when you merge?

@al-ce Feel free to force push here and tell me when you are ready for me to merge


Change "None" to "Points" in the aggregation methods

Current Result

Expected result
Below Aggregation, instead of "None" it should say "Points".

In production! :rocket:

VAMOS!!


Compatibility with Paper 1.20.5+

As of Paper 1.20.5, you can no longer just parse the version but have to use the Bukkit API instead.

Pls approve, supervanish is super helpful for my server and I really want to move up to 1.20.6

waiting for this one.

Leon hasnt made any movement on github in 2 months though, @daWinzig would you be able to compile your fork and make a release of it? I would compile it myself but dont have the knowhow.

Done. Just be aware that I do not plan to maintain or support this, especially outside the few changes I made to make it work in general.

totally understand, i wouldn't expect you to. Thanks so much for compiling it for me, and anyone else who sees this before leon returns, i hope all is well.

Done. Just be aware that I do not plan to maintain or support this, especially outside the few changes I made to make it work in general.
@TwoPointInfinity

it works in 1.21 too so thanks :)


[Feature request] replace hard-coded tag "theme-color" with variable

Hi :)
It would be nice if the hard-coded meta tag "theme-color" is changed with a variable, I'd love to do it myself and send my PR, but I'm learning Ruby and I don't know if what I'm asking is even possible, but it would be nice since I've been looking for that value like 10 times on each CSS file.
Thanks

@ChrisADR if you replace the hard-coded theme color in https://github.com/pages-themes/cayman/blob/93ce3c3895f733a27064dd48555a27d61065eb5a/_layouts/default.html#L8 with {{ site.theme_color | default: "#15787" }}, I believe it should achieve your desired functionality.

#19 then this may help a bit to make it easier to find :)
thanks for the info, hope it helps
Christopher Díaz Riveros