Feat: Logs Cleaner

Supabase Cron Job (logs-cleaner)
Dashboard > Project > Database > Extensions

Search PG_CRON and Enable it.

Dashboard > Project > SQL Editor
-- Runs everyday at 03:00 AM to cleanup logs that are older than a week
-- Use the cron time format to modify the trigger time if necessary
select
  cron.schedule (
    'logs-cleaner', -- Job name
    '0 3 * * *', -- Everyday at 03:00 AM
    $$DELETE FROM logs WHERE timestamp < now() - INTERVAL '1 week'$$
  );

-- Cancel the cron job
select cron.unschedule('logs-cleaner');

Resolves #655

@0xcodercrane Would you mind setting this up

@0xcodercrane Would you mind setting this up

Yep! let me try to setup it on staging first.

The random idea here: I am thinking of an automatic way to setup the cron job in github ci/cd like we did database migration in development/main.

The random idea here: I am thinking of an automatic way to setup the cron job in github ci/cd like we did database migration in development/main.

added migration script @0xcodercrane

The random idea here: I am thinking of an automatic way to setup the cron job in github ci/cd like we did database migration in development/main.

added migration script @0xcodercrane

Let me do a cherry-pick to staging database and post the result soon. Next is the merge!

It seems worked!

Btw, where can I see the runtime log of the cron? If you have any links you've used, please let me know @Steveantor

Btw, where can I see the runtime log of the cron? If you have any links you've used, please let me know @Steveantor

Table Editor > Schema > Cron

Looks good to me


.gitignore

mage in the .gitignore is stopping any modules that use mage in their directory path from being added to the repo.

Oh that's a good one. Guess everything in the .gitignore should be prepended with /

I'll have a look at fixing this, probably tomorrow night

Yeah, same for any Model's that end with Index.php. I'll fix it today, need it for a project :)

awesome, can you add a test for it also? :)

Of course

Fixed in 1bb0799607d94d355cb70f7594772206301bd043

This is a good bug fix.  I look forward to it being tagged so I don't have to specify :dev-master

@clockworkgeek it is already tagged as 1.2.1 😀

I must be seeing another bug because with 1.2.1 some paths in .gitignore don't have the leading slash.  Perhaps because [e59fea860ba90754397565b4eac6dbf8099347c0] was committed afterwards.

Ah yeah. I've tagged 1.2.2 just now 🐊


github: fix create_rc workflow

What does this PR do?
Fix the RC creation workflow
Motivation
We need the authentication to persist until the push & PR creation
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


Add nukeop's Nuclear to the list

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x] Content (and my changes are in index.md)

Nuclear is a music app focused on streaming from free sources aiming to be a free replacement to Spotify.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

<EMAIL_ADDRESS>


Add documentation in the API comments for priority between rules in a single ANP object

In the KEP we specify https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2091-admin-network-policy#priority:
The relative precedence of the rules within a single ANP object (all of which share a priority) will be determined by the order in which the rule is written. Thus, a rule that appears at the top of the ingress/egress rules would take the highest precedence.

But I don't think I know this from reading the actual API types :)
Pretty simple update to the API comments should fix this

thanks.. on it! will submit a PR tomorrow.


Could we get the ability to set the rootQueryPath per search?

Currently the root query path always returns the following:
/pm/${this.version}/${this.source}/
With the availability API, it has a different URL, something like this:
/availability/<version>/<method>/<source>.  We can specify pathname in the search function but that is just appended to the root path.  Would be nice if we could override the root query path either when calling search or as part of the query builder process

Makes sense to me.  The SDK was built around us only having access to that one API.  I would assume the version and source are the same?

Unfortunately the version is not, the source is though. The availability api is only on v2 while the /pm/ base is on v8. I was thinking of adding a function to override the base for a single query which would a simple string, maybe something like this:
const query = kyruus.query()
  .param('provider_id', 123456)
  // path could set some internal variable like _overridePath
  .path('/availability/v2/get/<source>');

query.search();

// Change how root query path works in kyruus-sdk.js
__rootQueryPath () => this._overridePath ? this._overridePath : <originalRootPath>;

I can submit a PR later today or early tomorrow to support this


History.Push(): Request to retain query component “?” even when the query parameter is null/empty

http://server/?#fragment seems like a valid syntax (RFC 2234, section 3.6).
However, the createPath module (of History package) removes the query component (?) if the query parameter is null/empty resulting in http://server/#fragment
Following is the code snippet for your reference (This code resides in PathUtils.js) :
var createPath = function createPath(location) {
  var pathname = location.pathname,
      search = location.search,
      hash = location.hash;

  var path = pathname || '/';
  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;
  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;
  return path;
};

Is there a way we can modify/override this behavior to retain the query component (?)

What is the use case where you would want an empty query component?

We have encountered 3rd party solutions that leverages specific route patterns (for instances abc.com?#foo) in their angular router implementation.
Also, as per RFC 2234, section 3.6, it seems to be a valid syntax.
However, because of this issue, the downstream solutions break.


"datatype" CHUNK

IMO using a "datatype" CHUNK is confusing and makes the code weird and quite unreadable.
Why don't you drop that and substitute it by the genuine datatype uint8_t ?

There are 3 reasons to do this:

It simplifies modification for different platforms. This library is primarily meant to be used on Arduinos (ATMEL) and therefore caters for the restricted memory on that platform by only supporting up to 255 memory slots (aka. chunks) and a maximal chunk size of 255 bytes. However, on platforms with more RAM available it might be helpful to have more memory slots or bigger memory slots available. Instead of rewriting the whole code you'd only have to redefine CHUNK and CHUNK_SIZE to, say uint16_t to increase the number of available chunks to 2^16-1 and the maximum size of a single chunk to 2^16-1.

Introducing those defines helps to differentiate between different uses of the same type. Take for example the definition of the function alloc_chunk() which could be written as uint8_t alloc_chunk(uint8_t size). Thanks to the self-explanatory name of the function and the parameter you know that it allocates a new memory slot/chunk with the given size. But what is the return value meant to represent? Thanks to the used type identifier in the actual defintion CHUNK alloc_chunk(CHUNK_SIZE size) you can derive from the function definitions where this value is meant to be used, like in bool resize_chunk(CHUNK number, CHUNK_SIZE size) or bool copyOffsetLength_chunk(CHUNK source, CHUNK destination, CHUNK_SIZE sourceOffset, CHUNK_SIZE destinationOffset, CHUNK_SIZE length);.

It's implemented as a macro. Thus, all occurences will be replaced by the preprocessor before the actual compiler kicks in. So if you don't like to use CHUNK, CHUNK_SIZE or whatever in your code then just use uint8_t. It shouldn't make any difference.

I know how #define macros work, but the naming is not intuitively understandable and not easily detectable.
CHUNK does not dignify anything meaningful, e.g. tInt would be better.
OTOH IMO using #defines (anyway if obscured or not) are generally a bad practice anyway, better would be using templates or typedefs, e.g.
typedef tInt uint8_t;
as to me, this would be reasonable then:
#define tIntSize sizeof(tInt)
and all those type defines I would suggest to put into a seperate header file
cryptdefs.h

IMHO tInt wouldn't be better thank the current CHUNK, but I guess this is a matter of taste - as is using define instead of typedef for this case of usage. At least I couldn't find any source that says that using the preprocessor for this kind of stuff is considered bad practice.
Furthermore I don't see that putting the keyword definitions in separate header file like cryptdefs.h would be helpful either. There is a clear hierarchy of dependencies: memuino -> chunkuino -> arc64uino/base64uino/sha1uino -> outputuino. Putting the definitions in one place would turn that into one blob of interdependance.

As to me I was totally confused about finding a datatype CHUNK in your code...
CHUNK ?? What is that ??? Is that proprietary??  Or is that a new C++ class or datatype I never heard of??
OTOH, tInt or intType or something like that is supposed to indicate that it's just a interger type, not a class or a struct or a container.


Amazing work!

Hi! I was reviewing SolidHack submissions and noticed your work on this project. I attempted a very simple implementation myself a few months back for a project but your is far more advanced.
I'd love to offer you the solid-mapbox handle on GitHub and NPM if you'd take it. I think this project deserves to be in its place. Let me know and I'd be happy to transfer.

Hi David,
Thanks for the appreciation. While working on this library, I came across your project as well. :-)
I based the name of this library on the two libraries I used to start on this one:

visgl/react-map-gl
urbica/react-map-gl

I'd like to take your offer on using solid-mapbox. Do you think it makes devs find it more easy?
And how can I migrate the project without loosing the devs which are already using this library?
It it possible to run the project under two different names or make one deprecated?
Sorry for so many questions. I'm very professional in Mapbox development but new to SolidJS, GitHub and NPM.
Are you maybe interested in contributing or co-maintaining this project?
Thanks again.
Kai

Hi Dave,
I will close this one since it's not an issue with the library.
Please feel free to contact me if you still want to offer me your GitHub and NPM handles.
Thanks.

@KaiHuebner , I'm working at MapLibre, an open alternative to Mapbox that started as a fork a few years ago. The API is still quite similar. Could you consider supporting both, like react-map-gl does?

@birkskyum this is a wonderful idea! I'm a big MapLibre fan and hope to use it and this plugin on my project in the next 2-3 weeks!


Infinite redirect loops

Hello, we are getting redirect loops on our local developer machines. We use react-oidc-context and oidc-client-ts in combination with Keycloak. I could track it down to the monitorSession flag. if this flag is true, we get the redirect loop as auth.isAuthenticated turns "false" for unknown reason.
For unknown reason as well, this is only in Chrome (v129+) but not in Chrome Incognito Mode or i.e. Firefox. It also is only on localhost and not on our Staging or Prod env.
It is a persistent problem on multiple developer machines (Windows & Mac) and resetting / deleting cache, cookies, storages does not help.
We did update to Keycloak v26 yesterday, but as other browsers are not affected, i think that is a cold trace.
Any ideas what the problem is or what we can try to figure this one out?
import { Log, UserManager } from 'oidc-client-ts';
import { StrictMode } from 'react';
import ReactDOM from 'react-dom/client';
import { AuthProvider, AuthProviderProps } from 'react-oidc-context';
import { BrowserRouter } from 'react-router-dom';
import AuthenticationContext from './authentication/KeycloakAuthenticationContext.tsx';
import getEnvVar from './getEnvVar.ts';
import './index.css';
import './localization/i18n.ts';
Log.setLogger(console);

const oidcConfig: AuthProviderProps = {
  authority: getEnvVar('VITE_OICD_AUTHORITY'),
  client_id: getEnvVar('VITE_OICD_CLIENT_ID'),
  redirect_uri: window.location.origin + window.location.pathname,
};

export const userManager = new UserManager({
  authority: getEnvVar('VITE_OICD_AUTHORITY'),
  client_id: getEnvVar('VITE_OICD_CLIENT_ID'),
  redirect_uri: window.location.origin + window.location.pathname,
  monitorSession: true,           // ** if true: infinite loading loop, if false: no loops**
});

ReactDOM.createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <AuthProvider {...oidcConfig} userManager={userManager}>
      <BrowserRouter>
        <AuthenticationContext>Hello</AuthenticationContext>
      </BrowserRouter>
    </AuthProvider>
  </StrictMode>,
);

import { CircularProgress, Grid, Typography } from '@mui/joy';
import { ReactNode, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { hasAuthParams, useAuth } from 'react-oidc-context';
import { Navigate } from 'react-router-dom';

interface AuthenticationContextProps {
  children: ReactNode | ReactNode[];
}

const AuthenticationContext = (props: AuthenticationContextProps) => {
  const auth = useAuth();
  const { t } = useTranslation();
  const [hasTriedSignin, setHasTriedSignin] = useState(false);

  useEffect(() => {
    const a = hasAuthParams();
    const b = auth.isAuthenticated;  //** for whatever reason this turns to false -> redirect**
    const c = auth.activeNavigator;
    const d = auth.isLoading;
    const e = hasTriedSignin;

    if (!a && !b && !c && !d && !e) {
      auth.signinRedirect();
      setHasTriedSignin(true);
    }
  }, [auth, hasTriedSignin]);

  if (auth.error) {
    console.error(auth.error.message);
    console.error(auth.isAuthenticated);
    console.error(auth.error);
  }

  if (auth.isLoading) {
    return (
      <Grid
        container
        direction="column"
        justifyContent="center"
        sx={{ minHeight: '50vh' }}
      >
        <Grid
          container
          direction="column"
          alignItems="center"
          justifyContent="center"
        >
          <CircularProgress size="lg" />
          <Typography>{t('Loading')}</Typography>
        </Grid>
      </Grid>
    );
  }

  if (!auth.isAuthenticated) {
    return <Navigate to="/" />;
  }

  return <>{props.children}</>;
};

export default AuthenticationContext;

monitorSession: true,           // ** if true: infinite loading loop, if false: no loops**

I guess the monitorSession does no loner work in your Chorme v129+ case for unknown reasons. Try enabling logging of this library.
The affected code is here: https://github.com/authts/oidc-client-ts/blob/main/src/SessionMonitor.ts. In _callback  you can see the _raiseUserSignedOut calls. react-oidc-context listens on that events...

Hi @jochen-lise - I tried reproducing this in the sample repo, which uses monitorSession, Keycloak 26.0.2, and I used Chrome 130.x, but was unable to.
In addition to the debug logging that @pamapa mentioned, could you try reproducing your issue in that sample repo please?

Hello, thank you very much! I can reproduce it when i connect the react app via the env vars to our v26.0.0 Keycloak.
https://github.com/user-attachments/assets/d358de61-c021-4f10-b804-ed7dd2b1d33c
When i try to start the sample app with docker compose etc and without changes i get an error. I could not figure out what the problem is.

Either way, I think it looks like that indeed our v26.0.0 could be part of the issue. I checked the changelog but for me, there was nothing obvious that could cause this problem. We will soon update to v26.0.2 and hope that this will fix the problem.

Interesting. I dropped my kc version down from 26.0.2 to 26.0.0 but was still not able to reproduce with the included react sample app.
Reviewing your original snippet, I wonder about this block, if it's causing the infinite loop, since if not auth'd then redirect to home, which will check if not auth'd, then again and again.
if (!auth.isAuthenticated) {
  return <Navigate to="/" />;
}

Could you try changing it to something like this, without the redirect, just to see what happens?
if (!auth.isAuthenticated) {
  return
Unable to sign in
;
}

When i try to start the sample app with docker compose etc and without changes i get an error. I could not figure out what the problem is.

If you open an issue on the sample app repo with your error details, I'd be glad to look into it with you.

I also experienced this issue but instead of this happening on Chrome its happens on Firefox only.
As I debugged this it seems that the Authentication is first up fine until the Page loads, but then I get a state update from useAuth() where both Properties isLoading and isAuthenticated are false wich in our case then triggert the signinRedirect().
When I set the mentioned flag monitorSession to false it works fine and I keep it currently like it is.
We are using
"oidc-client-ts": "^3.1.0",
"react-oidc-context": "^3.2.0"

currently just for reference.
Sadly I also cannot affort an small example repository to reproduce this, but maybe this helps anyone in the future.


Succeed to delete one blob container which contains a blob that has a snapshot

OS: Windows
Build Version: 20200519.1
Repro Steps:

Delete a blob that has a snapshot
Fail to delete the blob and pops up an error message:

Delete this blob container that has a snapshot
Check the result

Expect:
Fail to delete the blob container.
Actual:
Succeed to delete the blob container.

Closing as by design. Since we make an SDK call to delete, that functionality isn't something we can change. Feel free to confirm with @v-xianya if needed


[FLINK-27669][tests] Migrate flink-file-sink-common to JUnit5

What is the purpose of the change
Update the flink-file-sink-common module to AssertJ and JUnit 5 following the JUnit 5 Migration Guide
Brief change log
Use JUnit5 and AssertJ in tests instead of JUnit4 and Hamcrest
Verifying this change
This change is a code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

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

Documentation

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

@flinkbot run azure


Add support for broadcast in module init function

Problem:
I cannot use the 'context.broadcast' to notice another module what happens when I do something in the init part of current module.
Solution:
When one module added to framework, record the message list for it. And when broadcast called, firstly, check if the message handler module already instantiated, if not, instantiate it immediately

Hi @renkaixin, thanks for the pull request. Before we can merge it, we need you to sign our Contributor License Agreement. You can do so electronically here: http://opensource.box.com/cla
Once you have signed, just add a comment to this pull request saying, "CLA signed". Thanks!

CLA signed

Verified that @renkaixin has just signed the CLA. Thanks, and we look forward to your contribution.

I may suggest that if you are dealing with race conditions where modules are emitting messages before all your modules have started, you can just wrap the broadcast in a setTimeout or setImmediate to make sure they execute after the synchronous startAll.

Thank you for your advice and this way actually was the first idea in my mind when I found this problem. Currently I use the setTimeout(function(){ context.broadcast("event") }, 0) in init part of my project, but I also think this is not the best way to resolve the problem.Since message's listener do the handling job synchronously and the handler module already added, obviously we should start the module when someone wants to use it.

@renkaixin we can't know that another module is supposed to be started. You can register a module via addModule and intend to start it at some later point in time. So, it's not safe to automatically start a module just because a message it's interested in was broadcast.


Drop Python3.6 support

Trinity version: master
OS: osx/linux/win
Python version (output of python --version): NA
Environment (output of pip freeze): NA

What is wrong?
Trinity is a client rather than being a library, so it feels weird to me that we're using tox and also testing against Python 3.6 and 3.7. I feel more like keeping one or the other.
It slows down the CI and local testing, hence slows down development speed.
I discussed it with @cburgdorf Gitter and he explained that the concern was to support Ubuntu LTS 18.04. This is a valid concern, but Ubuntu 18.04 does come with Python3.7 support without playing with backport which. It simply needs to be installed via apt install python3.7, refs https://packages.ubuntu.com/bionic/python3.7
I always use Ubuntu LTS on my docker containers and I can always install python3.7 out of the box without any struggle.
Christoph agreed and suggested me to create a ticket to further discuss it with other developers.
How can it be fixed
I would be happy to make a PR that drops python3.6 support from tox.ini and documentation if any.

This landed


Unable to sign in to Azure Storage Explorer

Storage Explorer Version:  1.7
Platform/OS: _ Windows 10
Architecture: x64
Two issues:
I am trying to login to Azure Storage Explorer but get this error:
{
"message": ""ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY""
}
2nd my colleague is trying to access and he gets this error . I have made sure his system is meets our Azure conditional access rule, added the Chrome extension, but error continues to appear.

just read on the troubleshooting site. Does anyone know when this will be supported?
Conditional access is not supported when Storage Explorer is being used on Windows 10, Linux, or macOS. This is due to a limitation in the AAD Library used by Storage Explorer.

Correct @wyuen81 , conditional access is not supported. So for colleague, there isn't a way around their error message for now. Were you able to fix yours though?

Closing due to inactivity.

Is there a plan to remedy this situation? I am basically unable to use this application without it in my company.

When we switch to the new MSAL library, this will be supported.  The new MSAL library is going through testing by few other applications. We will be switching to it soon after that, but we don't have a specific date yet.

What is the status of the tests of the new MSAL library? Is there any progress in this subject?

The preview of MSAL is already in the recent releases of Storage Explorer.  Since it's still in preview it's unchecked/off by default. You need to go to the settings page to turn it on if you want to use MSAL.  The latest release is v1.18.1.


[Feature] Make Filter structure in Search package more extendible

What is the problem?
There is an inherent coupling between Resource and Order structures in Filter and it is quite difficult to extend when we try to add more resources or order by classes. That is., there is a requirement for every Resource to support each Order bys which will not be the case at all times.
When trying to add a new Resource:

We will need to add a method to the Order interface with the name ArrangeResource. That would mean that we need to implement those methods in all existing structures which implements Order(say CreatedTime ). But, the newly added Resource may not even have any field related to created time.

When trying to add a new Order:

When we have a requirement to add a new Order By(say a new column which tracks number of times the short link is visited), we cannot add this Order By as that would mean, we will have to implement all the methods in the Order interface (currently has ArrangeShortLinks, ArrangeUsers). But, this new Order By is related only to ShortLinks.

Your solution
Will have to think through to come up with a more generic solution.
Alternatives considered
For resources not supporting a particular order by, we can throw NotApplicable error when the package's client tries to order by the unsupported order by. This will also include validating in NewFilter that the resource and order arrays are compatible with each other.

@rohithbalaji123

I don't think all resources has to support the same order. When can do unchanged order for those not supported.
We don't have generics support in Go 1. Waiting for Go 2. It's already in experimentation stage

@byliuyang Yes, we can do unchanged order for unsupported resource. My concern is, what should ArrangeNewResource method's implementation be in CreatedTime structure when NewResource doesn't have a column called createdAt?

@rohithbalaji123 It doesn’t do anything? Is this avoidable?

@byliuyang , I am not sure how to avoid it. When we add more and more resources and Order By implementations, there will be a lot combinations where the method implementations will be empty.

We can also reverse things here, so each resource implements each order, and in case that an implementation is not possible we keep the slice unchanged. So we can have a resource type []entity.ShortLink which implements all the order types


[5.4] Strange code of instance in container

Laravel Version: 5.4.23
PHP Version:7.1
Database Driver & Version:NA

Description:
I am learning the source code of container, there is something that  confused me :
file: /illuminate/Container/Container.php-line356
public function instance($abstract, $instance)
{
    $this->removeAbstractAlias($abstract);

    unset($this->aliases[$abstract]);
    $this->instances[$abstract] = $instance;//this is problem

    if ($this->bound($abstract)) {
        $this->rebound($abstract);
    }
}

file: /illuminate/Container/Container.php-line151
public function bound($abstract)
{
    return isset($this->bindings[$abstract]) ||
           isset($this->instances[$abstract]) || ////this is problem
           $this->isAlias($abstract);
}

In instance() function, the code set the array of instances[$abstract]. And next, the code check to determine if type has been bound before,.However in bound(),  this->instances[$abstract]) always be true because it is set just in last line.
so the code:
 if ($this->bound($abstract))

is true forever.
Am I wrong with somewhere?

This is not a bug. Open an issue in the laravel/internals repo

@Dylan-DPC  - this is a bug in the container - it incorrectly always fires rebound()


"widget was rebuilt outside the build phase" assert

15:39:00.293: I/flutter : ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
15:39:00.296: I/flutter : The following assertion was thrown building Flexible(flex: 1):
15:39:00.300: I/flutter : scheduleBuildFor() called for a widget for which a build was already scheduled.
15:39:00.303: I/flutter : The method was called for the following element:
15:39:00.306: I/flutter :   DecoratedBox(dirty; renderObject: RenderDecoratedBox DETACHED)
15:39:00.309: I/flutter : The current dirty list consists of:
15:39:00.312: I/flutter :   [DecoratedBox(dirty; renderObject: RenderDecoratedBox DETACHED), RawGestureDetector(state:
15:39:00.315: I/flutter :   RawGestureDetectorState(192277613; gestures: tap; behavior: opaque)), Text("Suggestion Ichi";
15:39:00.318: I/flutter :   inherit: true; color: Color(0xffffffff); size: 16.0; letterSpacing: 1.92x; height: 1.5x),
15:39:00.321: I/flutter :   Image(image: AssetImage(bundle: null, name: packages/armadillo/res/flutter-mark-square-100.png);
15:39:00.324: I/flutter :   color: Color(0xffffffff); fit: ImageFit.cover; state: _ImageState(623862140; stream:
15:39:00.327: I/flutter :   ImageStream(OneFrameImageStreamCompleter; [100×100] @ 1.0x; 65 listeners); pixels: [100×100] @
15:39:00.330: I/flutter :   1.0x)), Image(image: AssetImage(bundle: null, name: packages/armadillo/res/Armadillo.png); fit:
15:39:00.333: I/flutter :   ImageFit.cover; state: _ImageState(435251538; stream: ImageStream(OneFrameImageStreamCompleter;
15:39:00.336: I/flutter :   [1230×1230] @ 1.0x; 25 listeners); pixels: [1230×1230] @ 1.0x)), DecoratedBox(renderObject:
15:39:00.340: I/flutter :   RenderDecoratedBox), RawGestureDetector(state: RawGestureDetectorState(604374343; gestures: tap;
15:39:00.342: I/flutter :   behavior: opaque)), Text("Suggestion Ni"; inherit: true; color: Color(0xffffffff); size: 16.0;
15:39:00.345: I/flutter :   letterSpacing: 1.92x; height: 1.5x), Image(image: AssetImage(bundle: null, name:
15:39:00.348: I/flutter :   packages/armadillo/res/flutter-mark-square-100.png); color: Color(0xffffffff); fit:
15:39:00.351: I/flutter :   ImageFit.cover; state: _ImageState(460373810; stream: ImageStream(OneFrameImageStreamCompleter;
15:39:00.353: I/flutter :   [100×100] @ 1.0x; 65 listeners); pixels: [100×100] @ 1.0x)), Image(image: AssetImage(bundle: null,
15:39:00.356: I/flutter :   name: packages/armadillo/res/Armadillo.png); fit: ImageFit.cover; state: _ImageState(224197766;
15:39:00.359: I/flutter :   stream: ImageStream(OneFrameImageStreamCompleter; [1230×1230] @ 1.0x; 25 listeners); pixels:
15:39:00.362: I/flutter :   [1230×1230] @ 1.0x))]
15:39:00.364: I/flutter : This usually indicates that a widget was rebuilt outside the build phase (thus marking the element
15:39:00.367: I/flutter : as clean even though it is still in the dirty list). This should not be possible and is probably
15:39:00.370: I/flutter : caused by a bug in the widgets framework.

I think I may have had two or more widgets in a block that had the same key.

We should assert about that much earlier in that case...

I think I hit this one too. Here is a short reproduction:
import 'package:flutter/material.dart';

void main() {
  runApp(new ScrollableList(
    itemExtent: 218.0,
    children: [new Text("A"), new Text("B")],
  ));
}

Run this on a nexus 5x starting in portrait.
Rotate to landscape.
Scroll to the bottom.
Rotate back to portrait.
I/flutter : ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter : The following assertion was thrown during performLayout():
I/flutter : Build scheduled during frame.
I/flutter : While the widget tree was being built, laid out, and painted, a new frame was scheduled to rebuild
I/flutter : the widget tree. This might be because setState() was called from a layout or paint callback. If a
I/flutter : change is needed to the widget tree, it should be applied as the tree is being built. Scheduling a
I/flutter : change for the subsequent frame instead results in an interface that lags behind by one frame. If
I/flutter : this was done to make your build dependent on a size measured at layout time, consider using a
I/flutter : LayoutBuilder, CustomSingleChildLayout, or CustomMultiChildLayout. If, on the other hand, the one
I/flutter : frame delay is the desired effect, for example because this is an animation, consider scheduling the
I/flutter : frame in a post-frame callback using SchedulerBinding.addPostFrameCallback or using an
I/flutter : AnimationController to trigger the animation.
I/flutter :
I/flutter : When the exception was thrown, this was the stack:
I/flutter : #0      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding._handleBuildScheduled.<anonymous closure> (package:flutter/src/widgets/binding.dart:199)
I/flutter : #2      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding._handleBuildScheduled (package:flutter/src/widgets/binding.dart:197)
I/flutter : #3      BuildOwner.scheduleBuildFor (package:flutter/src/widgets/framework.dart:1553)
I/flutter : #4      BuildableElement.markNeedsBuild (package:flutter/src/widgets/framework.dart:2528)
I/flutter : #5      State.setState (package:flutter/src/widgets/framework.dart:852)
I/flutter : #6      ScrollableState._setScrollOffset (package:flutter/src/widgets/scrollable.dart:438)
I/flutter : #7      ScrollableState.scrollTo (package:flutter/src/widgets/scrollable.dart:487)
I/flutter : #8      ScrollableState.didUpdateScrollBehavior (package:flutter/src/widgets/scrollable.dart:524)
I/flutter : #9      ScrollableState.handleExtentsChanged (package:flutter/src/widgets/scrollable.dart:539)
I/flutter : #10     ScrollableList._buildViewport.<anonymous closure> (package:flutter/src/widgets/scrollable_list.dart:131)
I/flutter : #11     _VirtualListViewportElement.layout (package:flutter/src/widgets/scrollable_list.dart:354)
I/flutter : #12     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1669)
I/flutter : #13     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:919)
I/flutter : #14     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1669)
I/flutter : #15     RenderList.performLayout (package:flutter/src/rendering/list.dart:156)
I/flutter : #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #17     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #19     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #21     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #22     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #23     RenderView.performLayout (package:flutter/src/rendering/view.dart:113)
I/flutter : #24     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1448)
I/flutter : #25     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:897)
I/flutter : #26     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.beginFrame (package:flutter/src/rendering/binding.dart:207)
I/flutter : #27     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.beginFrame (package:flutter/src/widgets/binding.dart:297)
I/flutter : #28     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:152)
I/flutter : #29     BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:608)
I/flutter : #30     BindingBase&SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:543)
I/flutter : #31     _beginFrame (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:48)
I/flutter : (elided one frame from class _AssertionError)
I/flutter :
I/flutter : The following RenderObject was being processed when the exception was fired:
I/flutter :   RenderList
I/flutter : This RenderObject had the following creator information:
I/flutter :   ListViewport ← IgnorePointer ← Listener ← _GestureSemantics ← RawGestureDetector-[GlobalKey
I/flutter :   591536602] ← Scrollable ← ScrollableList ← [root]
I/flutter : This RenderObject had the following descendants (showing up to depth 5):
I/flutter :   RenderRepaintBoundary
I/flutter :     RenderParagraph
I/flutter :   RenderRepaintBoundary
I/flutter :     RenderParagraph
I/flutter : ════════════════════════════════════════════════════════════════════════════════════════════════════

@sigurdm your case is actually https://github.com/flutter/flutter/issues/6063 (note the different stack traces).

Is this still an issue?  If so, how would I repro?

Yeah. Just create an app and put the same GlobalKey on two widgets.


Migrate to Github Actions

Migrate to Github Actions from Travis CI. Improve test coverage if necessary

Closing at #6 was merged


Deadlock workaround

I was able to create a workaround for the catalog page not loading by deserializing the catalog page results sequentially instead of concurrently. When @ef4 gets back I'd like to pair with him on this issue, as I'd like to have his feedback on potentially adding a new loader state to address this. As part of this I backed out the previous deadlock fix attempt, and added a skipped test that reveals the deadlock bug.

I'll leave the ticket for this issue open as well


proposal: encoding/base64: add AppendEncode and AppendDecode methods to Encoding

The problem
Currently encoding/base64.Encoding provides not very convenient Encode and Decode methods when working with dst byte slices. These methods require the caller to pre-allocate dst byte slice with the space required for encoding or decoding to succeed. This significantly complicates the resulting code, which should just append base64-encoded (or -decoded) value to the provided dst byte slice. For instance:
// AppendB64Encoded appends base64-encoded src to dst and returns the dst.
func AppendB64(e *base64.Encoding, dst, src []byte) []byte {
    // the caller should make this memory allocation or further complicate the code
    // with byte slice hacks in order to avoid the memory allocation.
    buf := make([]byte, e.EncodedLen(len(src)))
    e.Encode(buf, src)
    return append(dst, buf...)

The solution
It would be great if encoding/base64 would provide AppendEncode and AppendDecode methods on the Encoding with the following signatures:
// AppendEncode appends encoded src to dst and returns the dst (which may be newly allocated).
//
// The encoding pads the output to a multiple of 4 bytes, so AppendEncode is not appropriate for use
// on individual blocks of a large data stream. Use NewEncoder() instead
func (e *Encoding) AppendEncode(dst, src []byte) []byte

// AppendDecode appends decoded src to dst and returns the dst (which may be newly allocated).
//
// If src contains invalid base64 data, it will return CorruptInputError.
// New line characters (\r and \n) are ignored
func (e *Encoding) AppendDecode(dst, src []byte) ([]byte, error)

This would simplify and optimize third-party code that currently uses Encode and Decode methods of Encoding struct.
Standard go packages already contains similar Append* functions - see strconv.Append* for details.

Prepared the CL

The appending functions in strconv allow callers to avoid the string allocation. That's not necessary with encoding/base64: Encode and Decode already operate on caller-provided buffers.
This change wouldn't allow you to do something you can't do today.  It's a minor convenience issue which I don't think warrants additional API surface.

The appending functions in strconv allow callers to avoid the string allocation. That's not necessary with encoding/base64: Encode and Decode already operate on caller-provided buffers.

The current API requires at least three additional steps from the caller in order to use Encode or Decode:
// 1. Determine the required dst buffer size:
dstLen := enc.EncodedLen(len(src))

// 2. Allocate the dst buffer
dst := make([]byte, dstLen)

// 3. Encode src into dst
enc.Encode(dst, src)

// 4. Use dst. Usually this means appending dst to another buffer
someBuf := append(someBuf, dst...)

Compare it to the equivalent one-liner if this proposal will be accepted:
someBuf := enc.AppendEncode(someBuf, src)

Additional benefits:

someBuf may be nil.
with new API it is easy to avoid memory allocations like strconv.Append* do.

Below are random links to real code found on github via this search, which could benefit from AppendEncode and AppendDecode:
https://github.com/twstrike/otr3/blob/88562eb4677900a21ecfa13a8c92613dd79b505d/b64.go
https://github.com/Andals/gobox/blob/8b83ba308f0a1dae2e5640be98ccb5295c24f88c/encoding/encoding.go
https://github.com/betterjun/vs/blob/8cde8837dac2c1af83aa5ac1e050a1dae7fe2297/b64/base64.go
https://github.com/olegshs/goweb/blob/a06f03fff539c7025fc8539c3bd31d300b481d5d/session/storage/encoder/base64.go
https://github.com/morikuni/gipher/blob/5c622d38764de4fcb827fc21e0a86cd8db5f8176/ciphertext.go
https://github.com/lifezq/goutils/blob/6c6eda4caf6981242e8f0e238da91b5e7fb43a99/encode/base64.go
https://github.com/benpence/matasano/blob/68d03f220c607337047a3aac8b4cabc6659249bd/src/matasano/encoding/base64.go

Upgraded this to a proposal. @golang/proposal-review, there is also some discussion in https://golang.org/cl/37639 but let's keep it here.

I think what you really want is:
// AppendB64Encoded appends base64-encoded src to dst and returns the dst.
func AppendB64(e *base64.Encoding, dst, src []byte) []byte {
    // the caller should make this memory allocation or further complicate the code
    // with byte slice hacks in order to avoid the memory allocation.
    old := len(dst)
    need := e.EncodedLen(len(src))
    for cap(dst) - len(dst) < need {
        dst = append(dst[:cap(dst)], 0)
    }
    e.Encode(dst[old:], src)
    return dst[:old+need]
}

Or something like that. It's unclear this needs to be in the standard library.

Based on not much interest and on the fact that one can already write this function without additional help from the standard library, I'm leaning toward declining this proposal. Objections?

No objections.


Development/Lab 9

For the new development of Lab-9 the Localization Lab, this pull request encompasses the full structure of the lab ready to be merged into the development branch for further testing in staging, the production clone.
Closes #409

[x] No discrepancies across browsers. Eg. Chrome vs Safari
[x] Pages pass W3C Validation for HTML (https://validator.w3.org)
[x] CSS (https://jigsaw.w3.org/css-validator/)
[x] Google sign-in is operational
[x] Accessibility functions
[ ] Pages can scale without distorting page
[ ] No dead links
[ ] Navbar is consistent across the site
[ ] Pages are screen-reader accessible
[ ] Contrast meets standards for accessibility
[ ] Pages are keyboard accessible
[ ] Passes WAVE Evaluation Tool chrome extension

Repair Page Comments:  an error message is displayed but again there is no context to what is going on. The comments also are ambiguous for an href it would need to be in enclosing quotes. ie. href="bookcase.svg" and if you meant a variable it would need to be href={bookcase.svg} which again would be wrong because bookcase.svg would be a path so it would be href={bookcase} this should be addressed. Also if there is something wrong it needs to disable being able to continue. Also like in the old lab repairs the green box should appear saying success and otherwise red box other wise.
Lab Comments: A reducer will need to be added in regards to game state. Navigation controls arent disabled when doing the lab when they need to be.
Nit: I would like better url paths. They seem random and out of place and dont make sense
Lab Flow Comments:
When starting the lab it explains what you are doing then you are launched onto the inaccessible page. During this you have nothing telling you what you are supposed to do Its relying on memory for people to understand context which is something the evaluators talked about previously and goes against some of the accessibility teachings we have in lab 5.
I would recommend adding context to whats going on and what they are doing on the page.

Pop-up is implemented

Error messages have been updated to include custom error handling and standard red error coloring in

Nit: I also wanted to add another thing to be changed. Can the files for lab 9 be organized and follow a standardized naming convention? I think it would make things more readable.
Example:


Why the CJS in svelte.config.cjs?

Why does svelte.config.cjs use CommonJS? Seems like a design that won't age well. It also prevents sharing logic between the dev and build steps. Can't every file in a project of "type": "module" use ES modules?

This was a limitation of language tools and VS Code, not a deliberate decision. Work is already done to support ESM config files with sveltejs/language-tools#930 (feat) support ESM configs, but we're playing it safe for the moment and seeing if there are any bugs with the language tools update before we swap SvelteKit's config over to ESM.

It was a limitation of the language server used in editor tooling I believe. Part of this has been resolved, and I think the intention is to also accept ESM here before too long.

#936 will add support for it


MAINT: Make sklearn optional dependency (close #85)

duplicate of https://github.com/fracdiff/fracdiff/pull/91


French keyboard trouble with light

Hi, as I say in the title I have a french keyboard and when i press Q it's illuminate A and when i press Z it's illuminate W (Sorry for my bad english i try to do my best :D ) So can you do something to fix it please it's would be cool :) Thank you.

I have fixed the Q/A and W/Z issue. But I would like to know if some of the other keys function properly. Can you tell me if any of the circled keys are not working or not illuminating correct keys?

I hope you will understand what i mean :D

I hope you will understand what i mean :D

And for league of legends i don't know why but it's don't work maybe should i open another topic for this?

Oh, for LoL, you need to enable LightFX in config. "Riot Games\League of Legends\Config\game.cfg" and set "EnableLightFx=0" to "EnableLightFx=1"

Oh thank you :)

Can you add me on steam, I would like to get the key information from French input. http://steamcommunity.com/id/pupant/

Added tell me how can i help you

[INFO] 10/06/2016 21:11:14: Key pressed: Escape.
[INFO] 10/06/2016 21:11:15: Key pressed: F1.
[INFO] 10/06/2016 21:11:15: Key pressed: F2.
[INFO] 10/06/2016 21:11:16: Key pressed: F3.
[INFO] 10/06/2016 21:11:16: Key pressed: F4.
[INFO] 10/06/2016 21:11:17: Key pressed: F5.
[INFO] 10/06/2016 21:11:17: Key pressed: F6.
[INFO] 10/06/2016 21:11:17: Key pressed: F7.
[INFO] 10/06/2016 21:11:18: Key pressed: F8.
[INFO] 10/06/2016 21:11:18: Key pressed: F9.
[INFO] 10/06/2016 21:11:19: Key pressed: F10.
[INFO] 10/06/2016 21:11:19: Key pressed: F11.
[INFO] 10/06/2016 21:11:19: Key pressed: F12.
[INFO] 10/06/2016 21:11:20: Key pressed: PrintScreen.
[INFO] 10/06/2016 21:11:20: Key pressed: Scroll.
[INFO] 10/06/2016 21:11:20: Key pressed: Pause.
[INFO] 10/06/2016 21:11:22: Key pressed: Oem7.
[INFO] 10/06/2016 21:11:22: Key pressed: D1.
[INFO] 10/06/2016 21:11:23: Key pressed: D2.
[INFO] 10/06/2016 21:11:23: Key pressed: D3.
[INFO] 10/06/2016 21:11:24: Key pressed: D4.
[INFO] 10/06/2016 21:11:24: Key pressed: D5.
[INFO] 10/06/2016 21:11:25: Key pressed: D6.
[INFO] 10/06/2016 21:11:25: Key pressed: D7.
[INFO] 10/06/2016 21:11:25: Key pressed: D8.
[INFO] 10/06/2016 21:11:26: Key pressed: D9.
[INFO] 10/06/2016 21:11:26: Key pressed: D0.
[INFO] 10/06/2016 21:11:26: Key pressed: OemOpenBrackets.
[INFO] 10/06/2016 21:11:27: Key pressed: Oemplus.
[INFO] 10/06/2016 21:11:27: Key pressed: Back.
[INFO] 10/06/2016 21:11:27: Key pressed: Insert.
[INFO] 10/06/2016 21:11:28: Key pressed: Home.
[INFO] 10/06/2016 21:11:28: Key pressed: PageUp.
[INFO] 10/06/2016 21:11:28: Key pressed: NumLock.
[INFO] 10/06/2016 21:11:29: Key pressed: Divide.
[INFO] 10/06/2016 21:11:29: Key pressed: Multiply.
[INFO] 10/06/2016 21:11:29: Key pressed: Subtract.
[INFO] 10/06/2016 21:11:30: Key pressed: Tab.
[INFO] 10/06/2016 21:11:31: Key pressed: A.
[INFO] 10/06/2016 21:11:31: Key pressed: Z.
[INFO] 10/06/2016 21:11:32: Key pressed: E.
[INFO] 10/06/2016 21:11:32: Key pressed: R.
[INFO] 10/06/2016 21:11:32: Key pressed: T.
[INFO] 10/06/2016 21:11:33: Key pressed: Y.
[INFO] 10/06/2016 21:11:33: Key pressed: U.
[INFO] 10/06/2016 21:11:33: Key pressed: I.
[INFO] 10/06/2016 21:11:34: Key pressed: O.
[INFO] 10/06/2016 21:11:34: Key pressed: P.
[INFO] 10/06/2016 21:11:34: Key pressed: Oem6.
[INFO] 10/06/2016 21:11:35: Key pressed: Oem1.
[INFO] 10/06/2016 21:11:35: Key pressed: Return.
[INFO] 10/06/2016 21:11:36: Key pressed: Delete.
[INFO] 10/06/2016 21:11:36: Key pressed: End.
[INFO] 10/06/2016 21:11:36: Key pressed: Next.
[INFO] 10/06/2016 21:11:37: Key pressed: Home.
[INFO] 10/06/2016 21:11:37: Key pressed: Up.
[INFO] 10/06/2016 21:11:37: Key pressed: PageUp.
[INFO] 10/06/2016 21:11:38: Key pressed: Add.
[INFO] 10/06/2016 21:11:39: Key pressed: Capital.
[INFO] 10/06/2016 21:11:39: Key pressed: Q.
[INFO] 10/06/2016 21:11:39: Key pressed: S.
[INFO] 10/06/2016 21:11:40: Key pressed: D.
[INFO] 10/06/2016 21:11:40: Key pressed: F.
[INFO] 10/06/2016 21:11:40: Key pressed: G.
[INFO] 10/06/2016 21:11:41: Key pressed: H.
[INFO] 10/06/2016 21:11:41: Key pressed: J.
[INFO] 10/06/2016 21:11:41: Key pressed: K.
[INFO] 10/06/2016 21:11:42: Key pressed: L.
[INFO] 10/06/2016 21:11:42: Key pressed: M.
[INFO] 10/06/2016 21:11:42: Key pressed: Oemtilde.
[INFO] 10/06/2016 21:11:43: Key pressed: Oem5.
[INFO] 10/06/2016 21:11:43: Key pressed: Return.
[INFO] 10/06/2016 21:11:44: Key pressed: Left.
[INFO] 10/06/2016 21:11:44: Key pressed: Clear.
[INFO] 10/06/2016 21:11:45: Key pressed: Right.
[INFO] 10/06/2016 21:11:45: Key pressed: Add.
[INFO] 10/06/2016 21:12:07: Key pressed: LShiftKey.
[INFO] 10/06/2016 21:12:07: Key pressed: OemBackslash.
[INFO] 10/06/2016 21:12:08: Key pressed: W.
[INFO] 10/06/2016 21:12:08: Key pressed: X.
[INFO] 10/06/2016 21:12:09: Key pressed: C.
[INFO] 10/06/2016 21:12:09: Key pressed: V.
[INFO] 10/06/2016 21:12:09: Key pressed: B.
[INFO] 10/06/2016 21:12:10: Key pressed: N.
[INFO] 10/06/2016 21:12:10: Key pressed: Oemcomma.
[INFO] 10/06/2016 21:12:10: Key pressed: OemPeriod.
[INFO] 10/06/2016 21:12:11: Key pressed: OemQuestion.
[INFO] 10/06/2016 21:12:11: Key pressed: Oem8.
[INFO] 10/06/2016 21:12:12: Key pressed: RShiftKey.
[INFO] 10/06/2016 21:12:12: Key pressed: Up.
[INFO] 10/06/2016 21:12:13: Key pressed: End.
[INFO] 10/06/2016 21:12:13: Key pressed: Down.
[INFO] 10/06/2016 21:12:13: Key pressed: Next.
[INFO] 10/06/2016 21:12:14: Key pressed: Return.
[INFO] 10/06/2016 21:12:17: Key pressed: LControlKey.
[INFO] 10/06/2016 21:12:17: Key pressed: LWin.
[INFO] 10/06/2016 21:12:18: Key pressed: LMenu.
[INFO] 10/06/2016 21:12:18: Key pressed: Space.
[INFO] 10/06/2016 21:12:19: Key pressed: LControlKey.
[INFO] 10/06/2016 21:12:19: Key pressed: RMenu.
[INFO] 10/06/2016 21:12:19: Key pressed: RWin.
[INFO] 10/06/2016 21:12:20: Key pressed: Apps.
[INFO] 10/06/2016 21:12:20: Key pressed: RControlKey.
[INFO] 10/06/2016 21:12:20: Key pressed: Left.
[INFO] 10/06/2016 21:12:21: Key pressed: Down.
[INFO] 10/06/2016 21:12:21: Key pressed: Right.
[INFO] 10/06/2016 21:12:21: Key pressed: Insert.
[INFO] 10/06/2016 21:12:22: Key pressed: Delete.
[INFO] 10/06/2016 21:12:22: Key pressed: Return.

Resolved.


Text color doesn;t change while change darkTheme

Widget _buildSettingRowWidget(String title, String detail, Widget leading,
      Widget trailing, Function tapFunc) {
    return new GestureDetector(
      behavior: HitTestBehavior.translucent,
      child: Container(
        // color: listViewConvertColor,
        height: 68,
        padding: EdgeInsets.symmetric(horizontal: 16, vertical: 1),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            leading != null ? leading : Container(),
            Padding(
              padding: EdgeInsets.only(left: 6),
            ),
            new Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                new Text(
                  title,
                  style: TextStyle(
                    fontWeight: FontWeight.w500,
                  ),
                ),
                detail != null
                    ? Column(
                        children: <Widget>[
                          Padding(
                            padding: EdgeInsets.only(top: 4),
                          ),
                          new Text(
                            detail,
                            style: TextStyle(fontSize: 13, color: Colors.grey),
                          )
                        ],
                      )
                    : Container(),
              ],
            ),
            Expanded(
              child: Container(),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.end,
              children: <Widget>[
                trailing != null
                    ? trailing
                    : new Icon(
                        Icons.chevron_right,
                        color: Colors.grey,
                      ),
              ],
            )
          ],
        ),
      ),
      onTap: tapFunc,
    );
  }

return new Container(
      child: new Column(
        children: <Widget>[
          _buildSettingRowWidget(
              "主题色",
              null,
              null,
              null,
              () => Navigator.of(context).push(
                    CupertinoPageRoute<bool>(
                      builder: (BuildContext context) => ChangeThemePage(),
                    ),
                  )),]));

return CupertinoTheme(
        data: gThemeData,
        child: DefaultTextStyle(
            style: gThemeData.textTheme.textStyle,
            child: new CupertinoPageScaffold(
              navigationBar: new CupertinoNavigationBar(
                border: Border(),
                padding: EdgeInsetsDirectional.only(start: 2),
                leading: CupertinoButton(
                  padding: EdgeInsets.all(0),
                  child: Row(
                    children: <Widget>[
                      new Icon(
                        MyFlutterApp.left_open,
                        color: globalMainChatColor,
                        size: 25,
                      ),
                      Text("设置",
                          textAlign: TextAlign.center,
                          style: TextStyle(
                              fontFamily: gDefaultFontName,
                              color: globalMainChatColor))
                    ],
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ),
              child: new Container(
                padding: EdgeInsets.only(top: 20.0),
                child: new ListView(
                  children: <Widget>[
                    _buildListRows(),
                  ],
                ),
              ),
            )));

Hi, I changed the gGlobalThemeData to :
gThemeData =
                          gThemeData.copyWith(brightness: Brightness.light);

But the listRows text color doesn't change at all.
Why the text color doesn't change, while other page can change text color except this one

gGlobalThemeData

new Text(
title,
style: TextStyle(
fontWeight: FontWeight.w500,
),
),
This text will change dynamically according to the theme.
new Text(
detail,
style: TextStyle(fontSize: 13, color: Colors.grey),
)
This text will always be grey
Text("设置",
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: gDefaultFontName,
color: globalMainChatColor))
Without the globalMainChatColor code you can't tell what color it is.
If you want to change the text color dynamically, use:
color: Theme.of (context) .accentColor
And create a custom theme with the "accentColor" property of the color you want.
This works as expected, and I believe Stackflow would be better suited for support. This channel is for bug reporting.

@jonataslaw nononono, i mean this text:
new Text(
                  title,
                  style: TextStyle(
                    fontWeight: FontWeight.w500,
                  ),
                ),

I haven't set color of this widget though

Hi @jinfagang
This platform is not met for assistance on personal code.
Please see https://flutter.dev/community for resources for asking questions like this,
you may also get some help if you post it on Stack Overflow.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


Add the ability to get the difficulty per-world

The return type can be subject to change depending on how sponge handles difficulty

You could just have this like gamemodes, but make it implement Compareable so you can rank any added difficulty levels.

I need this in an enum-like list unless you choose not to @jacklin213
If so, we'll need to delegate this to a team member and close.

@Zidane So return a list of game modes?

How about setting the difficulty per world?

@Bammerbom ah right i need to add that in, @turt2live I'll change that while im at it as well

There should also be getter methods in GameRegistry

Not sure if the javadoc was done properly on the last commit, can someone go over the "ies" for me please

I would just stick with the plural form.

How about getting the default difficulty defined in the server.properties file?
Something like Server#getDifficulty()
Also, this has merge conflicts - needs fixing.

@simon816 Then wouldn't it make sense to also have a Server#setDifficulty()

Pinging @SpongePowered/developers one last time before merge -- I'll probably also squash some smaller commits


Update readme to suggest BGR instead of RGB

On an imx7d board at-least, If you try to send Color.X to this library it should expect it in BGR not RGB. This is more apparent if you use a compound color like Color.YELLOW where the effect will be more obvious.

@devunwired let me know what you think about this change.


Add lru cache over existing caches

I did it for myself but I guess it could benefit others, especially that it works in front of any existing cache storage.

How does this compare to last two entries of https://github.com/gregjones/httpcache#cache-backends?

github.com/die-net/lrucache provides an in-memory cache that will evict least-recently used entries.
github.com/die-net/lrucache/twotier allows caches to be combined, for example to use lrucache above with a persistent disk-cache.

Well something in the readme would have been great :/ The presence of third
party cache backends in the core is misleading...
On Mon, Oct 3, 2016, 8:00 PM Dmitri Shuralyov<EMAIL_ADDRESS>wrote:

How does this compare to last two entries of
https://github.com/gregjones/httpcache#cache-backends?

github.com/die-net/lrucache provides an in-memory cache that will
evict least-recently used entries.
github.com/die-net/lrucache/twotier
https://github.com/die-net/lrucache/tree/master/twotier allows
caches to be combined, for example to use lrucache above with a persistent
disk-cache.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gregjones/httpcache/pull/58#issuecomment-251194619,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABkX9nsmQ_7wqVXzkXOQNaThX3w--yjkks5qwVDBgaJpZM4KMvSR
.

Well something in the readme would have been great :/ The presence of third
party cache backends in the core is misleading...

I had a more thorough look at the other option, thank you for reminding me the first rule of programming: has it been done?
But the difference is that one is a LRU in front of any other backend. Upon creation you have to give it an existing cache: func New(c httpcache.Cache, cap int) httpcache.Cache {}. It's like a decorator. So you can have a LRU with diskcache, s3cache, memcached, memorycache, etc.
But since some of the options out there were not merged into the core, and since I will be open sourcing the project that its part of, I guess I will just send a PR to update the readme to include it.
Sorry for the noise

Sorry for the noise

First of all, no problem, and thanks for contributing.

But the difference is that one is a LRU in front of any other backend. Upon creation you have to give it an existing cache: func New(c httpcache.Cache, cap int) httpcache.Cache {}. It's like a decorator. So you can have a LRU with diskcache, s3cache, memcached, memorycache, etc.

Gotcha, that's what I saw too from a brief look-through.

But since some of the options out there were not merged into the core, and since I will be open sourcing the project that its part of, I guess I will just send a PR to update the readme to include it.

Let me confirm I understand you correctly, do you mean that you'll put up the lru httpcache.Cache implementation in another repo, and then send a PR to update this project's README to refer to it?
If so, that sounds great. I think it's better for the individual cache implementations to live outside, since there's no benefit to have them in the exact same repo. Will happily review that PR once you're ready.
Thanks again!


build: choose highlighted

This PR...
Fixes

#2009

How to test it

Click on compare resources

Screenshots
Choose color before fix

Choose color after fix

Checklist

[x] tested locally
[ ] added new dependencies
[ ] updated the docs
[ ] added a test

Tested. This one is UX UI approved, can be merged, on my side.


Catch simtel error before analysis in ray tracing

If simtel fails to run because of problem in the model, ray tracing raises error while trying to read the empty photons list. Somehow we should catch this error at the simulation stage.

Fixed by https://github.com/gammasim/gammasim-tools/commit/5df2671c86765fcf4a5cf833a5896cd6fe55bab0
SimtelRunner now raises SimtelExecutionError.


Added details on using classes with SVG

Using SVG elements with classes has two issues due to className being readonly for these elements and some browsers not accepting classlist on them. Added details and workaround.

Really great! Thank you.


Optimize Presto self-join queries

Case study tpcds/q95:
WITH
  ws_wh AS (
   SELECT
     "ws1"."ws_order_number"
   , "ws1"."ws_warehouse_sk" "wh1"
   , "ws2"."ws_warehouse_sk" "wh2"
   FROM
     ${database}.${schema}.web_sales ws1
   , ${database}.${schema}.web_sales ws2
   WHERE ("ws1"."ws_order_number" = "ws2"."ws_order_number")
      AND ("ws1"."ws_warehouse_sk" <> "ws2"."ws_warehouse_sk")
)

Web sales tables are large and are currently read twice by Presto. However, since this is a self join Presto could wait until build side is read and feed it back as a probe side. This would save one read of web_sales table. Such optimization requires that join is executed as repartitioned join (which for large tables would be the case).
It seems that we could try to optimize self joins both before and after reorder joins rule:

before reorder joins: we can optimize self join when cost of evaluating output of self join is smaller than cost of reading one extra copy of the table. This way even if source tables are filtered with reordered joins, the advantage of not reading one copy if the source table would still be beneficial
after reorder joins: whenever there is a hash self join, we could optimize that join.

In case of queries like:
                   InnerJoin[x.a = y.a]
                  /                    \
             TS[x]                      InnerJoin[y.a = z.a]
                                          /              \
                                      TS[y]             TS[z]

it can still be simplified to:
                        SelfJoin[x.a = y.a]
                                 |
                        InnerJoin[y.a = z.a]
                          /              \
                     TS[y]              TS[z]

because nested right join could potentially be applied below left join too.


Generating binary segmentation label file and instance segmentation label file

I have several images of lane.Now i want to use them to train my  own model but i don't know how to create  binary segmentation label file and instance segmentation label file.Is there any tool to label them or how to do it?
Kindly help
Regards

@Raj7kumar7 You may check the tusimple lane dataset and it's readme file to get some help:)

@MaybeShewill-CV  Can you provide the link to the tusimple lane dataset? Thanks

@MaybeShewill-CV I still can't figure out how to generate the instance and binary images from https://github.com/TuSimple/tusimple-benchmark/blob/master/doc/lane_detection/readme.md. Still reading the repo.
Can I just create an image similar to these? And just convert it to grayscale?


KeyError: 'data'

Hello when running this code I have created the yaml and azure endpoints but this error pops up in this line
data_only = res_json["data"]

Thanks for reaching out. I have a few follow up questions. My guess is you are getting an error and therefore the json payload doesn't have an object called data.
Which file are you running? Have you been able to make a successful request to the Twitter API? Do you have a project set up in the developer portal?


Use Store Cache and merge optimistic cache with Memory cache

Replace our in-house LRUCache that required guarding with a lock with the Cache from the Store project (which is a KMP port of Guava's Cache).
Benchmarks after this change looked promising, but we still used a lock upstream inside OptimisticCache which reduced these gains.
To improve on that, this PR also merges the optimistic cache with the memory cache, and uses a thread-safe map (backed by ConcurrentHashMap on the JVM and a regular map behind a lock on other platforms) to store the RecordJournals.

CacheIncubatingTests
cacheOperationMemory
cacheResponseMemory
concurrentCacheOperationMemory
concurrentCacheResponseMemory

Before
87,918,019
82,278,491
210,223,423
213,267,240

After
80,766,616
80,221,426
42,095,053
39,544,423

Improvement
8.13%
2.50%
79.98%
81.46%

ApolloStoreIncubatingTests
concurrentReadWritesMemory

Before
45,964,577

After
18,559,416

Improvement
59.62%

CacheIncubatingIntegrationTests
concurrentQueriesTestNetworkTransportMemory

Before
47,139,692

After
38,322,750

Improvement
18.70%

A few changes to get there:

NormalizedCache is now an interface, and chaining is removed (MemoryCache still supports chaining)
OptimisticNormalizedCache is now an interface, implemented by MemoryCache and OptimisticNormalizedCacheWrapper (new name for what OptimisticCache was)

The Store cache was copied to the project, but I'll see if we can depend on it instead - I had to make one addition: the  getAllPresent() fun, also the wasm target is missing - so opening in draft for now.

Merging this for now. I've opened #5689 to circle back if we can use Store as a dependency instead of including it.


API change

Instead of exporting a Class, we could export an object containing all these helper functions
This helps us destructure functions we want resulting in treee shaking and better compression
this also helps  us to write
import { isArray, isSame } from '@kingshott/iodine'

Hmm...
I have a couple of questions in relation to this:

Would this introduce a breaking change to the current approach? If we're no longer exporting a class, would it no longer be possible to do something like Iodine.isEmail(), or are we just reassigning window.Iodine to something else? An example would be very helpful as I'm not familiar with tree shaking etc.

If the motivation is primarily compression, I'm not sure it's worth it. The entire library is only 1.5 KB when gzipped and is even less with Brotli. Will shaving off a few hundred bytes make much difference?

Thanks for your feedback!

like how lodash does

I'm still not really sold on the idea for this. I'd like to see an example highlighting how this would be beneficial before taking it any further. Simply referencing another library is also not ideal, as I'm not sure what I'm supposed to be looking for. Thanks!

Ok just tell me that if I can,
import { isEmail } from '@kingshott/iodine'

I think I'm going to close this for the reasons mentioned earlier.
If you really want this implemented, I'm going to need an example of how this would be done, not simply the end result of a destructurable import statement. It would also have to be done in a way that wouldn't introduce a major breaking change.


Order default retry codes alphabetically

There's a lot of refactoring to be done for proto annotations support in the near future, and having an ordered list of values in the baseline tests will make for a cleaner baseline diff in future PRs.

PTAL

Codecov Report

Merging #2293 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master    #2293   +/-   ##
=========================================
  Coverage     86.75%   86.75%
  Complexity     5134     5134
=========================================
  Files           452      452
  Lines         20400    20400
  Branches       2190     2190
=========================================
  Hits          17699    17699
  Misses         1930     1930
  Partials        771      771

Impacted Files
Coverage Δ
Complexity Δ

...gle/api/codegen/configgen/mergers/RetryMerger.java
100% <100%> (ø)
8 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #2293 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master    #2293   +/-   ##
=========================================
  Coverage     86.75%   86.75%
  Complexity     5134     5134
=========================================
  Files           452      452
  Lines         20400    20400
  Branches       2190     2190
=========================================
  Hits          17699    17699
  Misses         1930     1930
  Partials        771      771

Impacted Files
Coverage Δ
Complexity Δ

...gle/api/codegen/configgen/mergers/RetryMerger.java
100% <100%> (ø)
8 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #2293 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master    #2293   +/-   ##
=========================================
  Coverage     86.75%   86.75%
  Complexity     5134     5134
=========================================
  Files           452      452
  Lines         20400    20400
  Branches       2190     2190
=========================================
  Hits          17699    17699
  Misses         1930     1930
  Partials        771      771

Impacted Files
Coverage Δ
Complexity Δ

...gle/api/codegen/configgen/mergers/RetryMerger.java
100% <100%> (ø)
8 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Shape must be rank 1 but is rank 0 for 'CTCLoss' (op: 'CTCLoss')

Have I written custom code: yes
OS: Windows 8.1
Tensorflow installed from: conda
Tensorflow version: 1.4
I've successfully converted a Tensor into a SparseTensor with this code:
def dense_to_sparse(dense_tensor, out_type):
    indices = tf.where(tf.not_equal(dense_tensor, tf.constant(0, dense_tensor.dtype)
    values = tf.gather_nd(dense_tensor, indices)
    shape = tf.shape(dense_tensor, out_type=out_type)
    return tf.SparseTensor(indices, values, shape)

I want to try out using a SparseTensor converted from a dense one:
input_layer = tf.placeholder(tf.float32, [None, 1596, 48])
dense_labels = tf.placeholder(tf.int32)
sparse_from_dense = dense_to_sparse(dense_lables, out_type=tf.int64)
cell_fw = grid_rnn.Grid2LSTMCell(num_units=128)
cell_bw = grid_rnn.Grid2LSTMCell(num_units=128)
bidirectional_grid_rnn = tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, input_layer, dtype=tf.float32)
outputs = tf.reshape(bidirectional_grid_rnn[0], [-1, 256])

W = tf.Variable(tf.truncated_normal([256, 80], stddev=0.1, dtype=tf.float32), name='W')
b = tf.Variable(tf.constant(0., dtype=tf.float32, shape=[80], name='b'))

logits = tf.matmul(outputs, W) + b
logits = tf.reshape(logits, [tf.shape(input_layer)[0], -1, 80])
logits = tf.transpose(logits, (1, 0, 2))

loss = tf.nn.ctc_loss(inputs=logits, labels=sparse, sequence_length=320)

Unfortunately, when I do this, I encounter this error:
Shape must be rank 1 but is rank 0 for 'CTCLoss' (op: 'CTCLoss') with input shapes: [?,?,80], [?,1], [?], [].

hello, i meet the same problem where did you change?


fix typo in readme

Can you please resubmit this but don't submit the PR to master rather to the dev branch, per our guidelines: https://github.com/ngOfficeUIFabric/ng-officeuifabric/blob/master/docs/guides/PULL-REQUESTS.md#submit-your-pull-request


#Question of input

Why don't you use 3d pose for input? Is it less accurate to use 3d pose?

Don't know mate. Try it out.

#Question of 2D coordinates
May I ask whether the 2d data of an input picture refers to the coordinates in the original picture (Picture 1) or the coordinates of the Bbox (Picture 2) obtained by target detection from the original picture?——————————————————————————————————
请问输入的一张图片的二维数据，是指原始图片（图片1）中的坐标，还是从原始图片中进行目标检测得到的bbox（图片2）的坐标呢？
（1）Picture 1
（2）Picture 2
------------------ 原始邮件 ------------------
发件人:                                                                                "tteepe/GaitGraph"                                                                                @.>;
发送时间: 2021年12月2日(星期四) 下午5:19
@.>;
<EMAIL_ADDRESS>主题: Re: [tteepe/GaitGraph] #Question of input (Issue #20)
Don't know mate. Try it out.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


Error when importing with specific release ID

When passing an ID via the -S option of the beets importer (in that case I'm meaning a Discogs release ID) beatport4 doesn't seem to like it:
$ beet -P fromfilename import -S 75310 "/remote/data/music-archive/DrumnbassJungleDrumfunk/0-Single-Tracks/60 Minute Man/60 minute man - the only one.mp3"
Traceback (most recent call last):
  File "/home/jojo/.pyenv/versions/beets/bin/beet", line 33, in <module>
    sys.exit(load_entry_point('beets', 'console_scripts', 'beet')())
  File "/home/jojo/git/beets/beets/ui/__init__.py", line 1304, in main
    _raw_main(args)
  File "/home/jojo/git/beets/beets/ui/__init__.py", line 1291, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/home/jojo/git/beets/beets/ui/commands.py", line 1034, in import_func
    import_files(lib, paths, query)
  File "/home/jojo/git/beets/beets/ui/commands.py", line 974, in import_files
    session.run()
  File "/home/jojo/git/beets/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/home/jojo/git/beets/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/home/jojo/git/beets/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/home/jojo/git/beets/beets/util/pipeline.py", line 193, in coro
    func(*(args + (task,)))
  File "/home/jojo/git/beets/beets/importer.py", line 1408, in lookup_candidates
    task.lookup_candidates()
  File "/home/jojo/git/beets/beets/importer.py", line 661, in lookup_candidates
    autotag.tag_album(self.items, search_ids=self.search_ids)
  File "/home/jojo/git/beets/beets/autotag/match.py", line 422, in tag_album
    for id_candidate in hooks.albums_for_id(search_id):
  File "/home/jojo/git/beets/beets/autotag/hooks.py", line 584, in albums_for_id
    for a in plugins.album_for_id(album_id):
  File "/home/jojo/git/beets/beets/plugins.py", line 399, in album_for_id
    album = plugin.album_for_id(album_id)
  File "/home/jojo/git/beets-beatport4/beetsplug/beatport4.py", line 550, in album_for_id
    release = self.client.get_release(match.group(2))
  File "/home/jojo/git/beets-beatport4/beetsplug/beatport4.py", line 351, in get_release
    response = self._get(f'/catalog/releases/{beatport_id}/')
  File "/home/jojo/git/beets-beatport4/beetsplug/beatport4.py", line 409, in _get
    raise BeatportAPIError(
beetsplug.beatport4.BeatportAPIError: Error 404 for '/v4/catalog/releases/75310/

Disabling beatport4 for that  import works around the problem:
$ beet -P beatport4,fromfilename import -S 75310 "/remote/data/music-archive/DrumnbassJungleDrumfunk/0-Single-Tracks/60 Minute Man/60 minute man - the only one.mp3"

/remote/data/music-archive/DrumnbassJungleDrumfunk/0-Single-Tracks/60 Minute Man/60 minute man - the only one.mp3 (1 items)
Correcting tags from:
    (unknown album)
To:
    60 Minute Man & DJ Touch - Give It Up E.P
URL:
    https://www.discogs.com/release/75310-60-Minute-Man-DJ-Touch-Give-It-Up-EP
...
...
...

Thank you for spotting another one! ❤
Fixed in https://github.com/Samik081/beets-beatport4/commit/3e1558e61dd584d74316a90e8945d07a4a2cef31 v0.2.8


Changing number of incidents to show

On the status page you can see earlier incidents with the buttons provided, but when you enter less than 7 days in the dasboard (i.e. 3) and you browse back ... You keep seeing the first 3 days of the week and the rest of the weekdays are never displayed.
I don't know if this was meant this way, but it looks like it always browses 7 days back in time.

This bug led to a few things:

The fix that @Lavoaster made in #597 wasn't 100% complete. Dates weren't ordered properly to begin with.  That's been fixed.
The $daysToShow variable is 0-n so if you had set app_incident_days to 3, it'd show 4 days.
We still had code for subWeek() which would always jump you back a week, leading to lost days.


Rewrite wrap to borrow from input string

This changes the implementation of Wrapper::wrap to borrow from the input string (where possible). The return type is now Vec<Cow<str>> instead of Vec<String> and so this can be a breaking change (but doesn't have to be if the lines are used in a way compatible with Cow<str>, such as how the layout example works).
Furthermore, the squeeze_whitespace option has been dropped since it seemed cumbersome to implement it with the new algorithm. If this is a concern, please let us know so we can supply a suitable work around.

The AppVeyor failures are due to a problem with the AppVeyor firewall. Since the TravisCI builds work as expected, I'll merge this PR.


How can I change the size of pagefile.sys?

I have some applications that because of legacy issues, they fail if they don't have enough page file memory available. I have not been able to increase the page file size on my servercore container, because I can't do reboot after running the command line parameters required to make it work.
For reference, these are the commands I run, but they require a reboot after using them to make them actually do the changes and create the new pagefile.sys with the size I want:
RUN mkdir C:\SWAPS
RUN wmic pagefileset create name="C:\SWAPS\pagefile.sys"
RUN wmic pagefileset where name="C:\\SWAPS\\pagefile.sys" set InitialSize=128000,MaximumSize=256000
RUN wmic pagefileset where name="C:\\pagefile.sys" delete

Hey! @chaotive Are you running your workloads on k8s by any chance? And to drill into the

because I can't do reboot after running the command line parameters required to make it work.

do you mean this is unacceptable for your workloads for the host to reboot (even once to set this up initially) or you mean you can't because you can't access the host to set this, and you're not able to reboot the host afterwards from within a container.

Hey! @chaotive Are you running your workloads on k8s by any chance? And to drill into the

because I can't do reboot after running the command line parameters required to make it work.

do you mean this is unacceptable for your workloads for the host to reboot (even once to set this up initially) or you mean you can't because you can't access the host to set this, and you're not able to reboot the host afterwards from within a container.

Hi. Thanks for the reply. Everything is acceptable, but the problem is that:

Rebooting the container does not work as a real Windows reboot, it simply loads it from the original state, not applying the pending changes I had.
Performing shutdown -r makes the container to be killed, not rebooted from within. Next start is as if it was from original state.
Also, problem is the same if I apply these changes on the build script. Starting the container does not really "startup" it, it simply makes as if it was continuing after the initial installation, without rebooting. Not sure if this how Windows container behave or something to do with this image.

Right, the reason I'm asking about k8s is because we support a container type named hostprocess containers that is able to make host changes like privileged containers on linux. Reason being is I don't believe pagefile settings are per container, they piggy back off the host setting and location by default as far as I remember so if you were able to edit what you need on the host and reboot, your containers should pick up these changes

Right, the reason I'm asking about k8s is because we support a container type named hostprocess containers that is able to make host changes like privileged containers on linux. Reason being is I don't believe pagefile settings are per container, they piggy back off the host setting and location by default as far as I remember so if you were able to edit what you need on the host and reboot, your containers should pick up these changes

Well, did not considered using k8s at this time, I guess that is something I can explore if no more direct solution exists. So, you mean pagefile.sys can't be changed as part of the image/container configuration?

I can verify, but as far as I know it's a host setting and as you've found (and should stay the case 😆) reboot in a container just effects the container itself


arg test fails

Arg test fails due to a syntax error in the function call using a positional argument after a keyword argument.
I'm going to assume 223a859 commit acknowledges this error, but please correct me if I'm wrong.
Replicate:
python3.9 examples/arg-cpp/app.py
Error:
sushi   saving indexed functions (lib/main.hpp)
Traceback (most recent call last):
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/app.py", line 10, in <module>
    from out.main import helloWorld
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/out/main.py", line 2
    def helloWorld(number):     Execute(file='main.hpp', number)
                                                           ^
SyntaxError: positional argument follows keyword argument

Code in question: https://github.com/dev-sushi/sushi/blob/main/src/sushipy/index.py#L118
With an argument, this will generate an error in the code:
from sushipy.execute import Execute
def helloWorld():	Execute(file='main.hpp', number)

Solution:
index.py should write keyword arguments by default. Positional arguments might be easier to parse.

It looks like it. I will fix that issue later today. It's strange that it was working on my pc

@snacsnoc I merged your PR but the issue is still here. Still confused because its working on my pc

Python 3.9.
The error was present with sushi version 0.1.1, I see that you have now updated the package to 0.1.2. With PR #16, this specific issue with keyword arguments has been fixed.
I'm still not able to run the arg-cpp example. Because examples/arg-cpp/lib/main.hpp does not have a main() function, g++ throws an error:
(base) easto@Eastons-MacBook-Air arg-cpp % python app.py
sushi   saving indexed functions (lib/main.hpp)
Undefined symbols for architecture arm64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status
Traceback (most recent call last):
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/app.py", line 12, in <module>
    helloWorld(1)
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/out/main.py", line 2, in helloWorld
    def helloWorld(number):     Execute('main.hpp', number)
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/site-packages/sushipy/execute.py", line 80, in __init__
    self.function()
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/site-packages/sushipy/execute.py", line 117, in function
    subprocess.call([f"./{path}/out"], shell=False)
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 349, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: './lib/out'

Adding the -c switch to g++ allows it compile by not running the linker.
modified sushi.conf:
[launch]
exec_command = g++ -c -o lib/out [file-name]

Once I do that, I'm still not able to run the arg-cpp example. Output:
(base) easto@Eastons-MacBook-Air arg-cpp % python app.py
sushi   saving indexed functions (lib/main.hpp)
Traceback (most recent call last):
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/app.py", line 12, in <module>
    helloWorld(1)
  File "/Users/easto/Library/Mobile Documents/com~apple~CloudDocs/Projects/sushi/examples/arg-cpp/out/main.py", line 2, in helloWorld
    def helloWorld(number):     Execute('main.hpp', number)
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/site-packages/sushipy/execute.py", line 80, in __init__
    self.function()
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/site-packages/sushipy/execute.py", line 117, in function
    subprocess.call([f"./{path}/out"], shell=False)
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 349, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: './lib/out'

The compiled file:
(base) easto@Eastons-MacBook-Air arg-cpp % file lib/out
lib/out: Mach-O 64-bit object arm64

This may be more related to my build system (arm64), I will try on an amd64 system.

I looked more into the error that you sent and it might be arm64 related issue. Main isn't required for .hpp files, only for .cpp files (which is used here) but I'm not sure.
The compiling works for me (x64) though.

@snacsnoc I think I found the issue. After some testing with nektos/act I found out that nothing was writing to the temporary file. See this:
# cat lib/main.hpp
void helloWorld(int number)
{
    std::cout << "You provided " << number << "\n";
}#
#
# cat lib/temp.cpp
#

That's why it was throwing error about no main function.

Fixed! It turns out that instead of TEMP_FILE there should be self.temp_file (here). But we will need to revert #16 pull request because sushi takes the file name as an argument also.
lib/temp.cpp:2:35: error: expected ‘)’ before numeric constant
    2 |  int main() {helloWorld('main.hpp' 1);}

After reverting that it works without any issue, but if you think we should keep it then let me know.

Thanks for taking the time to investigate, I'll will attempt to fix this and submit a PR. The goal of PR #16 was to fix the arguments in the generated Python 'out' file.
I will re-write this, thanks for looking at it!

It is also missing the comma between the filename and argument:
lib/temp.cpp:2:25: warning: character constant too long for its type
    2 |  int main() {helloWorld('main.hpp' 1);}
      |                         ^~~~~~~~~~
lib/temp.cpp: In function 'int main()':
lib/temp.cpp:2:35: error: expected ')' before numeric constant
    2 |  int main() {helloWorld('main.hpp' 1);}
      |                        ~          ^~
      |                                   )

Yeah, that's what i'm saying. But the file name shouldn't be passed down to cpp. File name is just a note for sushi in what file was it executed.

@ksawery29 Got it working! I'll submit a PR soon

I'll track down that missing semicolon (did you mean comma?)

@snacsnoc yes, I meant comma. Sorry for that mistake haha

@ksawery29 No problem at all. This is fixed in PR #17

@ksawery29 This has been fixed, but as per the discussion on PR #17, your suggestion it to use positional then keyword arguments (file=) when writing to our output file. Can we close this issue and open a new one?

Sure! Just make sure that title isn't the same.


CodeTagFilter also highlights partial word matches

(Original issue 368 created by None on 2008-10-06T08:41:16+00:00)
When using the "codetagify" filter on the following code fragment:
{{{
//#ifdef ALGORITHM_DEBUG
}}}
the "BUG" part of "DEBUG" is highlighted, even though I'd expect it not to be.
Reported by guest

(Original issue was assigned to thatch)
(Original issue 368 last updated on 2008-10-17T22:14:51+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by thatch on 2008-10-09T03:12:36+00:00)
Fix with tests in [9df7cb3b8b1a], not yet in -main.


Status code for no IDs: readSearch

In SearchReads the expected status code for a request with no readgroupids is currently 501, not implemented. However the signature was changed in the reference server to return a 400. Which is correct?
[TESTLOG] FAILED searchReadsWithNoIdsFails(org.ga4gh.cts.api.reads.ReadsSearchIT) due to expected:<[501]> but was:<[400]>

SearchReadsRequest indicates that "The ReadGroups to search. At least one id must be specified."
so 400 is correct.
David Steinberg<EMAIL_ADDRESS>writes:

In SearchReads the expected status code for a request with no readgroupids is
currently 501, not implemented. However the signature was changed in the
reference server to return a 400. Which is correct?
[TESTLOG] FAILED searchReadsWithNoIdsFails
(org.ga4gh.cts.api.reads.ReadsSearchIT) due to expected:<[501]> but was:<[400]>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub*

Agreed, 400 is correct.


Backport MemoryEfficientCrossAttention from Stability-AI/stablediffusion

this is just a copy and paste from original https://github.com/Stability-AI/stablediffusion  codebase. it effectively enables cross attention optimizations via https://github.com/facebookresearch/xformers on invokeai (my 3090 ti goes from 10it/s to 18it/s. still the time from interaction to result is slightly slower than https://github.com/AUTOMATIC1111/stable-diffusion-webui, there's probably more room for optimizations.

xformers is also supported by the attention models in diffusers, so this is something we get with #1583.
Or more accurately: that diffusers PR uses xformers if it is installed. Installing it is still a piece of work that will need to be added to the release packages.

@keturn installing xformers is as easy as conda install xformers -c xformers/label/dev, at least on linux.

@keturn installing xformers is as easy as conda install xformers -c xformers/label/dev, at least on linux (pre-compiled binaries!).

It's quite the headache on Mac and Windows where most of the user base is.

@knoopx;

installing xformers is as easy as conda install xformers -c xformers/label/dev, at least on linux (pre-compiled binaries!).

Not everyone uses Conda

thanks for the contribution, but i think we should hold off on this until diffusers gets merged.

The following part of the code must be changed before this can be merged: https://github.com/invoke-ai/InvokeAI/blob/ce17051b28c7d08560c4f0f102888633933ae83d/ldm/models/diffusion/cross_attention_control.py#L344

I believe this PR has been superseded. OK to close?

closed


Fixed #33194 -- Adjusted Expressions.rename_table_references to only update alias when needed.

https://code.djangoproject.com/ticket/33194

I wonder if we could avoid the deepcopy in the first place by doing something along
self.expressions = self.expressions.relabeled_clone({old_table: new_table})

Brilliant! Looks like that works just fine. Thanks 👍


Consider removing hard-coded experimental flags for core libraries from pkg/dev_compiler/tool/patch_sdk.dart

When trying to enable triple-shift experiment for core libraries (in order to add int.operator>>>), I discovered that it was not enough to enable the experiment in sdk/lib/_internal/allowed_experiments.json.
There is another place where those experimental flags should be updated - in pkg/dev_compiler/tool/patch_sdk.dart:
https://github.com/dart-lang/sdk/blob/6c4f354458dc5f42c6bad44d7edb1082777ece52/pkg/dev_compiler/tool/patch_sdk.dart#L479-L482
This code also uses a fixed language version which can become outdated.
We should probably remove these hard-coded values and obtain them from sdk/lib/_internal/allowed_experiments.json and tools/experimental_features.yaml.
/cc @nshahan @sigmundch

We went ahead and deleted this script in 06a4b109bce970fbd98bf72774a8787124900dee
It was used by a single test and recently we reached a point were the test was no longer providing much value.


How to copy selected frames from one stream to another?

Overview
In my case, I want filter some video frames from the input stream, then write these frames to an output stream (with same codec settings).
Here is the code I failed:
import av

in_file = r'in.mp4'
in_container = av.open(in_file)
in_vid_stream = in_container.streams.video[0]
in_vid_stream.thread_type = 'AUTO'

out_file = r'out.mp4'
out_container = av.open(out_file, 'w')
out_vid_stream = out_container.add_stream(template=in_vid_stream)

index = 0
for frame in in_container.decode(in_vid_stream):
    if index % 2: # only save the even number frames
        for packet in out_vid_stream.encode(frame):
            # error: av.error.ValueError: [Errno 22] Invalid argument
            out_container.mux(packet)
    index += 1

out_container.close()

Expected behavior
The output stream encode the frame decoded from the input stream.
Actual behavior
The output stream can't encode the frame decoded from the input stream.
Traceback:
Traceback (most recent call last):
  File "d:/Users/Haujet/Code/PythonCode/PyAv-test/test.py", line 17, in <module>
    for packet in out_vid_stream.encode(frame):
  File "av\stream.pyx", line 158, in av.stream.Stream.encode
  File "av\codec\context.pyx", line 488, in av.codec.context.CodecContext.encode
  File "av\codec\context.pyx", line 403, in av.codec.context.CodecContext._send_frame_and_recv
  File "av\error.pyx", line 336, in av.error.err_check
av.error.ValueError: [Errno 22] Invalid argument

Investigation
I looked at the av.stream.Stream.encode source code, it receives VideoFrame. I can't understand why it won't take the frames from input stream.
Research
I have done the following:

[ x ] Checked the PyAV documentation
[ x ] Searched on Google
[ x ] Searched on Stack Overflow

duplicate of #730


fixing documentation in 02-installation.md

Thanks for your contribution! I'm afraid this is no longer relevant as the construction of Medio has been simplified:
use Gnugat\Medio\PrettyPrinter;

$loader = new \Twig_Loader_Filesystem($medioTemplatesPath);
$twig = new \Twig_Environment($loader);

$prettyPrinter = new PrettyPrinter($twig);

I'll make sure this no longer change to avoid future BC breaks.

alright, it sounds good like it !


SignTransaction popup: decode the transaction passed and show outputs to users before signing

Ping on this! https://github.com/vulpemventures/marina/issues/421


Range of x-axis on chart

The x-axis always ends at the time of the most recent data point in the bucket rather than in the result of the query.

And

Where TF is that extra hour coming from?

I have a similar problem... did you find a solution in the meantime?

the X axis should end left of the red box. There is not a single data point in that red box, because the query only considers data points from "yesterday", i.e. until 23:59:59 GMT+1
import "experimental/date/boundaries"
import "timezone"
option location = timezone.location(name: "Europe/Berlin")
day = boundaries.yesterday()

from(bucket: "this_machine")
  |> range(start: day.start, stop: day.stop)
  |> filter(fn: (r) => r["...some filters...")
  |> map(fn: (r) => ({r with _value: float(v: r._value) / 6.0 }))
  |> aggregateWindow(every: 10s, fn: max, createEmpty: false)
  |> cumulativeSum()


FLUME-3132 Upgrade tomcat jasper library dependencies

excluding vulnerable dependencies

In my understanding Jasper is not needed anywhere, however it is a transitive dependency from hadoop   and hadoop is a dependency in some test cases

If it is not needed for our tests then do you think it is worth excluding it from the test scope as well?

I removed it from the test scope as well.
the new dependency diff is:
71d70
< [INFO]    commons-el:commons-el:jar:1.0:compile
532,536d530
< [INFO]    tomcat:jasper-compiler:jar:5.5.23:runtime
< [INFO]    tomcat:jasper-compiler:jar:5.5.23:test
< [INFO]    tomcat:jasper-runtime:jar:5.5.23:compile
< [INFO]    tomcat:jasper-runtime:jar:5.5.23:runtime
< [INFO]    tomcat:jasper-runtime:jar:5.5.23:test

The build with tests was successful