check for valid paths in pubspec validation

Note that this check is currently provided by IntelliJ:

but presumably not in VS Code (@DanTup?)
Needless to say, any clients that are providing this analysis currently will need updating once his lands in server.
/fyi @alexander-doroshko  @jwren @bwilkerson @jonasfj

I was initially thinking it would be awkward to land server support before IDEA stopped reporting but the UX isn't too bad.

Of note:

When you hover, you get the IDEA inspection (probably because it's an "error" not a warning) -- when it goes away, you'll see ours.
The IDEA inspection does not show up in the analysis window (so there are no duplicates).

https://dart-review.googlesource.com/c/sdk/+/168882

@pq Thanks for the progress with this feature!
FYI, some info about existing path inspection in InteliJ:

it checks that the path is valid (relative or absolute) and points to a directory, not to a file
it checks that the path is not referring to the current project itself (e.g. not like "../this-project")
it checks that the referenced folder contains a file named pubspec.yaml
it doesn't check that the referenced folder contains lib subfolder but I guess this check would make sense as well
IMPORTANT: IntelliJ is able to analyze unsaved (edited) pubspec content. AFAIK Analysis Server can work with unsaved Dart files but not with unsaved analysis_options.yaml or pubspec.yaml. IntelliJ sends AnalysisServer.analysis_updateContent() requests for all these files but currently server doesn't respect these requests. It would be great if it did. Otherwise paths may stay yellow in the editor (and in the Dart Analysis tool window) even if already fixed by a developer.

AFAIK Analysis Server can work with unsaved Dart files but not with unsaved analysis_options.yaml or pubspec.yaml. IntelliJ sends AnalysisServer.analysis_updateContent() requests for all these files but currently server doesn't respect these requests.

That isn't quite true. When server receives an analysis_updateContent notification for a Dart file it creates an override in the resource provider (https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/lib/src/analysis_server.dart#L497). I don't see anything in the code to suggest that this only happens for Dart files, so I have every reason to believe that we are, in fact, capturing this information.
That same method is responsible for triggering any analysis that might be necessary as a result of the change (the resource provider doesn't generate a watch event for overlays, though I've wondered a few times whether that might not be the better design), but it only triggers re-analysis for Dart files. All we need to do is trigger analysis of known non-Dart files to make this work as expected.

@bwilkerson Thanks for the clarification! I was under an incorrect impression after reading this comment in https://github.com/dart-lang/sdk/issues/25114#issuecomment-697397940

Looks like it's possible to fix this limitation for both pubspec.yaml and anaysis_options.yaml. It is already tracked as https://github.com/dart-lang/sdk/issues/31890

Thanks for the feedback @alexander-doroshko !
@jonasfj, do these validations look right?

it checks that the path is valid (relative or absolute) and points to a directory, not to a file
it checks that the path is not referring to the current project itself (e.g. not like "../this-project")
it checks that the referenced folder contains a file named pubspec.yaml

Is there a pub validator that checks paths on publish?

Re-opening to keep discussion alive.

but presumably not in VS Code (@DanTup?)

Correct - VS Code doesn't produce any diagnostics besides those that come from the server.
Tested this with VS Code in the nightly build and it works - though it does have the limitation mentioned above (doesn't update until you save - I verified VS Code is sending the deltas as you type).

it checks that the path is valid (relative or absolute) and points to a directory, not to a file

Yes,

it checks that the path is not referring to the current project itself (e.g. not like "../this-project")

Yes, this makes no sense to do, so I think that's fine :D

it checks that the referenced folder contains a file named pubspec.yaml

Yes, this is a strict requirement for pub get.

it doesn't check that the referenced folder contains lib subfolder but I guess this check would make sense as well

No, This is not a strict requirement. It will have false positives:

asset packages, such as an icon set,
tool packages, such as build_runner doesn't necessarily have to contain any lib/ folder.

This is not a requirement for pub get. Checking for a lib/ folder wouldn't be horrible, because it's very rare for a package to not have a lib/ folder, even if it's a tool or and asset collection.

But my two cents on whether to check for lib, is that we shouldn't.
Checking that the path referenced exists and contains a pubspec.yaml might be fine. Presence of a pubspec.yaml is a strong indicator that a folder is a package :D
But it might be best to not go deeper into validating that the referenced path in fact contains a useful or valid package, ie. that is has a lib/ folder or that it has SDK constraints that allows current SDK version, etc.

Is there a pub validator that checks paths on publish?

Yes, when publishing a package dependencies may not contain path or git dependencies (only hosted dependencies).
However, this might be a different lint. Because:

it's only relevant when publishing the package,
it makes sense that the same lint warning about path dependencies in packages aimed at publishing, should also warn about git dependencies.
hence, it doesn't have to do with the path-dependency configuration, it has more to do with the fact that publishing with a path or git dependency means that consumers might not be able to get the same dependency.

We could also consider checking that the package name in the pubspec.yaml corresponds with the name of the package we are importing. I believe that is a necessity for everything to line up (we don't do package renaming).

Thanks for all the feedback!  With basic path checking implemented, I'll close this issue in favor of targeted follow-ups.  Feel free to create more.
Cheers!

@pq Thanks! #31890 is the most important I think :)


Support other dithering algorithms

Describe the problem fun opportunity
AFAIK, PIL only supports Floyd Steinberg dithering.
There are many other interesting dithering algorithms. A section of Bryan Boyer's original article that inspired this project is about comparing those algorithms.
It would be nice to be able to play with those algos here.
Describe the solution you'd like
I suppose this is a config option. Might be interesting to have a test mode (or a different little app) that shows random frames from a movie in x different algorithms, with on-screen text saying which algo is being used.
Describe alternatives you've considered
I researched this a bit at the start of the project, didn't find any easy way to do it in PIL, but I could certainly have missed something.

Wonder if something from this, or even incorporating it, would be useful? Looks like a lot of the algorithms from that article are here.

Another option would be to use ffmpeg's paletteuse filter. It doesn't support as many algorithms as hitherdither, but it's faster. Here's an example of how to use it with ffmpeg-python.

We've added this to Omni-EPD via hitherdither. Here's the options.

I tried this this evening, had trouble getting it to work.
I created omni-epd.ini in the SlowMovie folder:
[Display]
rotate=0
dither=bayer
order=4
threshold=[128, 128, 128]

Changing Rotate definitely worked, and adding contrast in an Image Enhancements block worked, but I couldn't see any difference with the dithering - bayer 4 should be pretty obvious, it seemed to be floyd-steinberg all the way.
I also tried
[EPD]
type= omni_epd.mock
mode=bw

To save an image but no image was created and the screen refreshed as normal.  omni-epd-test -e omni_epd.mock  worked and created a .png file.

Works here. Did it update omni-epd? The current version is 0.2.3. Check pip3 list.
As for your other question, if epd is set in slowmovie.conf, it'll use that instead. Maybe we should remove options that are now redundant.

Thank you, the update worked - screen now looks like a game boy camera!
I had to keep the epd = waveshare_epd.epd7in5_V2  line in slowmovie.conf, or I got an error - 'None' is not a valid EPD name, valid names are: ...
I'll experiment with dithering a bit, really great to have this feature

We can call that an undocumented feature? :)
When going to the EPD library we had a discussion on the order of precedence for the -e option in slowmovie.py. Our compromise was to set the arg to None if not passed in and then the library will prompt you to pass in a valid EPD name. This got around having to force people into making the omni-epd.ini file as a requirement. The downside is that because we're passing in a value to the load_display_driver() method it won't load the ini file value. Manually passed in values always trump config file values. It's an odd quirk of wanting to keep the EPD arg as a SlowMovie value.
@missionfloyd - I'll make another Issue regarding library updating. I know why it is doing it, however the fix isn't exactly fun.


init() missing 1 required positional argument: 'output_path'

After completing the necessary preparations, I tried to run random_agent.py, but I encountered some problems.
Traceback (most recent call last):
    File "random_agent.py", line 27, in <module>
    env = gym.make('ember-train-v0')
    ...
    gym.error.UnregisteredEnv: No registered env with id: ember-train-v0

After I import malware_rl，I encountered a new problem:
File "random_agent.py", line 27, in <module>
    env = gym.make('ember-train-v0')
  File "/.../python3.7/site-packages/gym/envs/registration.py", line 145, in make
    return registry.make(id, **kwargs)
  File "/.../python3.7/site-packages/gym/envs/registration.py", line 90, in make
    env = spec.make(**kwargs)
  File "/.../python3.7/site-packages/gym/envs/registration.py", line 60, in make
    env = cls(**_kwargs)
TypeError: __init__() missing 1 required positional argument: 'output_path'

I am a thorough rookie, hope to get your answer,thanks!

Nope this is on me. I have a fix ready will PR it soon!

PR was merged https://github.com/bfilar/malware_rl/pull/5 This should eliminate the error


Build runner not working as expected

Describe the bug
flutter packages pub run build_runner build --delete-conflicting-outputs
the build runner works perfectly for dao files and generates .g.dart files except for the file containing database class and tables
my pupspec.yaml
dependencies:
  flutter:
    sdk: flutter
  drift: ^1.6.0
  drift_sqflite: ^1.0.0
  path_provider: ^2.0.0
  path: ^1.8.1
  json_serializable: ^6.2.0

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.1
  drift_dev: ^1.6.0
  build_runner: ^2.1.10

the build runner output
[INFO] Generating build script...
[INFO] Generating build script completed, took 292ms

[INFO] Precompiling build script......
[INFO] Precompiling build script... completed, took 4.5s

[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 660ms

[INFO] Checking for unexpected pre-existing outputs....
[INFO] Deleting 43 declared outputs which already existed on disk.
[INFO] Checking for unexpected pre-existing outputs. completed, took 5ms

[INFO] Running build...
[INFO] Generating SDK summary...
[INFO] 2.4s elapsed, 0/16 actions completed.
[INFO] Generating SDK summary completed, took 2.3s

[INFO] 3.4s elapsed, 4/20 actions completed.
[INFO] 4.4s elapsed, 4/20 actions completed.
[INFO] 5.5s elapsed, 4/20 actions completed.
[INFO] 6.5s elapsed, 4/20 actions completed.
[INFO] 8.7s elapsed, 4/20 actions completed.
[INFO] 11.3s elapsed, 4/20 actions completed.
[INFO] 13.4s elapsed, 4/20 actions completed.
[INFO] 14.4s elapsed, 31/47 actions completed.
[INFO] 15.4s elapsed, 31/47 actions completed.
[INFO] 16.5s elapsed, 36/52 actions completed.
[INFO] 17.6s elapsed, 63/79 actions completed.
[INFO] 18.6s elapsed, 119/133 actions completed.
[INFO] 19.7s elapsed, 195/211 actions completed.
[INFO] 20.7s elapsed, 258/261 actions completed.
[INFO] Running build completed, took 20.7s

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 63ms

[INFO] Succeeded after 20.8s with 86 outputs (304 actions)

i've tried flutter clean flutter pub get flutter pub upgrade

Can you run a clean build with --verbose? Is there a message about drift running on the file defining your database at all? Otherwise, I need more information to see what's going on here (I don't see anything suspicious from the pubspec and the build logs). Do you have a full repro that you could share?

the same project was working correctly in my win 8.1 flutter 2.5 after transition to win 11 flutter 3.0
and this problem happened
and yes drift run on the file
here are the logs I kept only those related to DB files "removed unnecessary logs"  the file with problem is Database.dart it never generates Database.g.dart  file
[INFO] Entrypoint:Generating build script...
[INFO] Entrypoint:Generating build script completed, took 317ms

[INFO] Bootstrap:Precompiling build script......
[INFO] Bootstrap:Precompiling build script... completed, took 4.3s

[FINE] Bootstrap:Core package locations file does not exist
[INFO] BuildDefinition:Initializing inputs
[INFO] BuildDefinition:Building new asset graph...
[INFO] BuildDefinition:Building new asset graph completed, took 640ms

[INFO] BuildDefinition:Checking for unexpected pre-existing outputs....
[INFO] BuildDefinition:Deleting 43 declared outputs which already existed on disk.
[INFO] BuildDefinition:Checking for unexpected pre-existing outputs. completed, took 4ms

[INFO] Build:Running build...
[INFO] build_resolvers:Generating SDK summary...
[INFO] Heartbeat:2.3s elapsed, 0/16 actions completed.
[INFO] build_resolvers:Generating SDK summary completed, took 2.3s

[INFO] Heartbeat:3.3s elapsed, 4/20 actions completed.
[INFO] Heartbeat:4.3s elapsed, 4/20 actions completed.
[INFO] Heartbeat:5.3s elapsed, 4/20 actions completed.
[INFO] Heartbeat:6.5s elapsed, 4/20 actions completed.
[INFO] Heartbeat:8.6s elapsed, 4/20 actions completed.
[INFO] Heartbeat:11.1s elapsed, 4/20 actions completed.
[INFO] Heartbeat:13.1s elapsed, 4/20 actions completed.
[FINE] drift_dev:drift_dev on test/widget_test.dart:Running MoorGenerator - 1 of 2
[FINE] drift_dev:drift_dev on test/widget_test.dart:Running DaoGenerator - 2 of 2
[FINE] drift_dev:drift_dev on lib/db/Database.dart:Running MoorGenerator - 1 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/AlbumDao.dart:Running MoorGenerator - 1 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/ImageDao.dart:Running MoorGenerator - 1 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/ImSetDao.dart:Running MoorGenerator - 1 of 2
[INFO] Heartbeat:15.1s elapsed, 31/47 actions completed.
[FINE] drift_dev:drift_dev on lib/db/Database.dart:Running DaoGenerator - 2 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/AlbumDao.dart:Running DaoGenerator - 2 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/ImageDao.dart:Running DaoGenerator - 2 of 2
[FINE] drift_dev:drift_dev on lib/db/Image/ImSetDao.dart:Running DaoGenerator - 2 of 2
[FINE] json_serializable:json_serializable on test/widget_test.dart:Running JsonSerializableGenerator - 1 of 2
[FINE] json_serializable:json_serializable on test/widget_test.dart:Running JsonLiteralGenerator - 2 of 2
[FINE] json_serializable:json_serializable on lib/db/Database.dart:Running JsonSerializableGenerator - 1 of 2
[FINE] json_serializable:json_serializable on lib/db/Database.dart:Running JsonLiteralGenerator - 2 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/AlbumDao.dart:Running JsonSerializableGenerator - 1 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/AlbumDao.dart:Running JsonLiteralGenerator - 2 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/ImageDao.dart:Running JsonSerializableGenerator - 1 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/ImageDao.dart:Running JsonLiteralGenerator - 2 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/ImSetDao.dart:Running JsonSerializableGenerator - 1 of 2
[FINE] json_serializable:json_serializable on lib/db/Image/ImSetDao.dart:Running JsonLiteralGenerator - 2 of 2

[INFO] Heartbeat:20.7s elapsed, 243/252 actions completed.
[INFO] Build:Running build completed, took 20.8s

[INFO] Build:Caching finalized dependency graph...
[INFO] Build:Caching finalized dependency graph completed, took 59ms

[INFO] Build:Succeeded after 20.9s with 86 outputs (304 actions)

[+31652 ms] "flutter pub" took 31,772ms.
[ +266 ms] ensureAnalyticsSent: 261ms
[   +3 ms] Running shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 0

@simolus3  I've been able to solve it with a workaround but i still don't know the cause
it was solved by removing the code i added to add windows  support of the app
the code that prevented code generation silently
dynamic _openConnection() {
    if (Platform.isWindows) {
    return LazyDatabase(() async {
      // put the database file, called db.sqlite here, into the documents folder
      // for your app.
      final dbFolder = await getApplicationDocumentsDirectory();
      final file = File(join(dbFolder.path, 'db.sqlite'));
      return NativeDatabase(file);
    });
  } else {
    return SqfliteQueryExecutor.inDatabaseFolder(
        singleInstance: true, path: 'db.sqlite', logStatements: false);
  }
}

class AppDatabase extends _$AppDatabase {
  AppDatabase()
      : super();
....
}

the code that works perfectly
class AppDatabase extends _$AppDatabase {
  AppDatabase()
      : super(SqfliteQueryExecutor.inDatabaseFolder(
            singleInstance: true, path: 'db.sqlite', logStatements: false));
...

}

Uh, I hope you annotated AppDatabase with @DriftDatabase in the first snippet? Leaving that out would definitely explain the missing generated file :D

indeed the _openConnection() 😆  was separating the decorator with over 100 lines of daos and tables lists from the
AppDatabase
Thanks , sorry for that


How to authorize SignalR websocket transport when using AddLocalApiAuthentication

I've seen the CustomTokenRetriever token way. But I don't know how to config it with AddLocalApiAuthentication.
In my startup I used: services.AddLocalApiAuthentication().
I am trying to use the method mentioned in this issue: https://github.com/IdentityServer/IdentityServer4/issues/2349

We don't have a customizable way to retrieve tokens right now.


Make 'Add' option available for Test Data

As an ECMPS user, I want the ability to add Test Data from scratch so that I can add new Test Data for any Test Type
Acceptance Criteria:
Given I am a user who selected a Test Type Group Code with no Test Data available
When I review the screen
Then I can locate an 'Add' button for the Test Summary Data
And can add new Test Data
Given there is Test Summary data available on a Test Type
When I review the screen
Then I can locate an 'Add' button for the relevant sub-test
And add new data for it
Note: Once Test Data is available for any Test Type/sub-test, the Add button becomes available for the next level of data as applicable.
Scope of this ticket shall include the Test Data (Linearity Summary) and Linearity Summary Data. Preference is to make this component generic enough to be reusable
Invision Board:
https://projects.invisionapp.com/freehand/document/TdahPfbEb?zoomToItems=Y2w2NDBmaGFsMDAwMzNiNnk3Zzh0ZTlpNw%3D%3D
Testing
Test Case: TC831
Tester: @mosesdeeCVP

Test Passed


Receiving value should go to the team page but is undefined

From https://github.com/gratipay/grtp.co/issues/103#issuecomment-166710385
This is because there is no username value in public.json for teams.
Need to fix in https://github.com/gratipay/grtp.co/blob/master/lib/v1/api.js.

Use name instead of username if name exists but username does not.

Maybe related: https://github.com/ForbesLindesay/promisejs.org/issues/41

Closed in #138.


Make sure enums get serialized appropriately in OPTIONS

Added in https://github.com/gregschmit/rails-rest-framework/commit/8298beaf9bcae8d20f6dcd0249250d71ddbd78c9


Update header.njk

Remember to check for dum SMALL and big letters .... when you include a file apparently that dosnt work on a local


Error when querying MongoDB sample movie database on Atlas

Bug description
I've set up the sample_mflix movie database on Atlas, introspected the schema and then tried to run a simple Prisma Client query and gotten this error:
$ yarn ts-node index.ts
yarn run v1.22.5
$ /Users/nikolasburk/prisma/releases/whats-new-in-prisma/v3.2.0-demos/playground/sample_mflix/node_modules/.bin/ts-node index.ts
/Users/nikolasburk/prisma/releases/whats-new-in-prisma/v3.2.0-demos/playground/sample_mflix/node_modules/@prisma/client/runtime/index.js:38739
          throw new import_engine_core3.PrismaClientUnknownRequestError(message, this.prisma._clientVersion);
                ^
PrismaClientUnknownRequestError:
Invalid `prisma.movie.findMany()` invocation in
/Users/nikolasburk/prisma/releases/whats-new-in-prisma/v3.2.0-demos/playground/sample_mflix/index.ts:6:40

  3 const prisma = new PrismaClient()
  4
  5 async function main() {
→ 6   const allMovies = await prisma.movie.findMany(
  Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: RawError { code: "unknown", message: "Command failed (CursorNotFound): cursor id<PHONE_NUMBER>271259884 not found)" } })
    at cb (/Users/nikolasburk/prisma/releases/whats-new-in-prisma/v3.2.0-demos/playground/sample_mflix/node_modules/@prisma/client/runtime/index.js:38739:17) {
  clientVersion: '3.2.0'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

How to reproduce

Set up free DB cluster on MongoDB Atlas
Load with sample dataset sample_mflix
Create local Prisma project and introspect the DB with prisma db pull
Adjust the schema to include relations and map collection names. My final schema looks as follows:generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["mongoDb"]
}

datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}

model Comment {
  id       String   @id @default(dbgenerated()) @map("_id") @db.ObjectId
  date     DateTime @db.Date
  email    String
  movie_id String   @db.ObjectId
  movie    Movie   @relation(fields: [movie_id], references: [id])
  name     String
  text     String

  @@map("comments")
}

model Movie {
  id                 String    @id @default(dbgenerated()) @map("_id") @db.ObjectId
  awards             Json
  cast               String[]
  countries          String[]
  directors          String[]
  fullplot           String?
  genres             String[]
  imdb               Json
  languages          String[]
  lastupdated        String
  metacritic         Int?
  num_mflix_comments Int
  plot               String?
  poster             String?
  rated              String?
  released           DateTime? @db.Date
  runtime            Int?
  title              String
  tomatoes           Json?
  type               String
  writers            String[]
  /// String: 0.1%, Int32: 99.9%
  year               Int
  comments           Comment[]

  @@map("movies")
}

model Session {
  id      String @id @default(dbgenerated()) @map("_id") @db.ObjectId
  jwt     String
  user_id String @unique(map: "user_id_1")

  @@map("sessions")
}

model Theater {
  id        String @id @default(dbgenerated()) @map("_id") @db.ObjectId
  location  Json
  theaterId Int

  @@map("theaters")
}

model User {
  id          String @id @default(dbgenerated()) @map("_id") @db.ObjectId
  email       String @unique(map: "email_1")
  name        String
  password    String
  preferences Json?

  @@map("users")
}

Run the following TS script:import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function main() {
  const allMovies = await prisma.movie.findMany()
  console.log(allMovies)
}

main()
  .catch((e) => {
    throw e
  })
  .finally(async () => {
    await prisma.$disconnect()
  })

Expected behavior
I would expect to have a list of Movie objects returned.
Prisma information
See reproduction steps.
Environment & setup

OS: macOS 10.15.7
Database: MongoDB
Node.js version: v16.1.0

Prisma Version
$ npx prisma -v
Environment variables loaded from .env
prisma                  : 3.2.0
@prisma/client          : 3.2.0
Current platform        : darwin
Query Engine (Node-API) : libquery-engine afdab2f10860244038c4e32458134112852d4dad (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli afdab2f10860244038c4e32458134112852d4dad (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine    : introspection-core afdab2f10860244038c4e32458134112852d4dad (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary           : prisma-fmt afdab2f10860244038c4e32458134112852d4dad (at node_modules/@prisma/engines/prisma-fmt-darwin)
Default Engines Hash    : afdab2f10860244038c4e32458134112852d4dad
Studio                  : 0.435.0
Preview Features        : mongoDb

I'm getting the same error and I'm using version 3.4.1.
The same error occurs with groupBy.

That should be fixed per the duplicate issue @rhuancaetano, so please open a new issue and provide all the information the bug issue template asks for. Thanks!


Broken links on p5.Effect reference page

From @andrewesterhuizen on January 7, 2018 13:28
Hello, I just noticed the links for p5.Distortion, p5.Compressor, p5.Delay, p5.Filter, p5.Reverb on the https://p5js.org/reference/#/p5.Effect reference page are broken. It seems like they all have /reference/ twice in their path.
Copied from original issue: processing/p5.js-website#156

#252 made to fix broken links.

fixed ~


OIDC auth

Added automatic refresh/logout dialog to the demo using custom javascript and logout dialog xhtml

Looks like there is some merge conflicts?

I clicked on the "Resolve Conflicts" button but there doesn't appear to be a way for me to fix them. I guess I don't have write permissions. I can only view the conflicts.

Not sure why it's conflicting, I just added methods and comments

Looks like you didn't update your fork branch after I merged.
You should always get from master and then create a new branch.

OK i just tried to resolve them can you check them?

actually yeah its showing 335 file still.

you should get from master then create a new branch from that. I should only be seeing your changes here but it looks like you just re-committed the old branch.


Fixed documentation for batch_normalization

Fixed batch_normalization part of the nn python Documentation.
Fixed syntax errors restricting the latex code to load in the markdown documentation file for "tf.nn.batch_normalization(...)".

Can one of the admins verify this patch?

Jenkins, test this please

No problem! :)


chore: reorder universe variables in Cardinal.lift_le and Cardinal.lift_mk_le

Cardinal.lift_le and Cardinal.lift_mk_le have their universes out of order, in the sense that persistently through the rest of the library we need to specify the 2nd universe (resp 3rd), while the others are solved by unification.
This PR reorders the universes so it's easier to specify the thing you need to specify!
(This PR doesn't get rid of all the occurrences of \.\{_, in the library, but I'd like to do that later.)
I do have a hidden agenda here, which is that I've been experimenting with solutions to the dreaded "Can't solve max u v = max v ?u" universe unification issue (which is making life hellish forward porting https://github.com/leanprover-community/mathlib/pull/19153), and my favourite (but still hacky) solution doesn't like some of the occasions where we reference a lemma filling in some of its universe arguments with _ but then fully specify a later one. (e.g. rw [← lift_le.{_, max u v}, lift_lift, lift_mk_le.{_, _, v}] in ModelTheory/Skolem.lean). Hence the cleanup proposed in this PR makes my life easier working on these experiments. :-)

bors merge


message cannot be consumed

The system version is CentOS 7.5
Rocketmq version is 4.8.0

rocketmqlogs-1.zip
rocketmqlogs-2.zip


Small fixes

now passgo support windows

please wait. there are some part that not closed file.

done

Hey thanks. Very much appreciated and very good fixes.
Any changes we can squash this to one commit, since it very repetitively points out some mistakes I made =].

okay to squash. what commit message you want? :) refactoring?

I prefer messages like the one below
short message describing change.

longer message containing deeper information
about what was changed. That way things are
clean and clear.

I really appreciate the work by the way. It;s great work.

squashed.

Sorry. I accidentally added merge conflicts. Can you resolve and then I will merge. I added functions that use the "attack" file in the pio package that need to be file pathed.
Everything LGTM. I really appreciate the pull.

rebased.

Wonderful. Thanks @mattn. I appreciate the contribution.


GRU: Gated Recurrent Unit

Feature description
GRU Module
Feature motivation
Still useful in some applications.

@nathanielsimard @antimora You can assign this issue to me- this should be relatively straightforward since GRUs are a simplification of LSTMs and I can pound out this issue when I have time.
Do you want this in a new folder or can I just put this inside the lstm folder? The GateController can be re-used for GRUs, and like I said before GRUs are technically a simplified variation of an LSTM, so I don't think users would be too surprised to find this under the lstm module.

@agelas I assigned it to you per your request. @nathanielsimard can comment on the design.

@agelas I think you can rename the folder rnn and put the file inside.  We might also change the visibility of the module:
pub mod rnn;

instead of:
mod rnn;
pub use rnn::*;

So that it's similar to how transformer and convolution layers are exported.

@nathanielsimard I renamed the folder rnn. As for mod.rs, it looks like the transformer and convolution layers are exported using the latter method, i.e. transformer's mod.rs looks like:
mod decoder;
mod encoder;
mod pwff;

pub use decoder::*;
pub use encoder::*;
pub use pwff::*;

I think we can re-export all RNN implementations to avoid long imports. Similar to conv and transformer modules.

Closed via https://github.com/burn-rs/burn/pull/393


Evaluate redb as an alternative to rocksdb

redb is a pure Rust implementation of a key-value database, which could bring several advantages to our project:

Since redb is written entirely in Rust, it eliminates the long compile times and large disk space usage associated with rocksdb due to its C++ dependencies.
Benchmark results show that redb outperforms RocksDB in most operations, except for bulk writing. Given that bulk writing isn't a critical operation for review-database, this trade-off might be acceptable.

I also found another crate called native_db that builds on top of redb. It offers features like migration, which could simplify our database management.
However, it’s important to note that neither redb nor native_db provides built-in backup and restore features. We will need to manually implement and test these features to ensure they meet our performance and reliability requirements.
Next Steps:

[ ] Conduct a detailed evaluation of redb's performance in the context of review-database, focusing on its integration with our current workflows.
[ ] Implement backup and restore functionality and evaluate its performance and reliability.
[ ] Test the migration features provided by native_db and assess their utility.
[ ] If the evaluation is positive, create a plan for transitioning from rocksdb to redb, including potential challenges and strategies for mitigation.

Update (on 2024-08-29):

Added a note about the lack of built-in backup and restore features in redb and native_db.
Included a task to manually implement and test backup and restore functionality as part of the evaluation process.

Let's move forward with this evaluation by creating a dedicated branch for the transition to redb.
Proposed Plan:

Create a redb Branch:

We will create a new branch named redb, which will serve as the base for all changes related to the migration from rocksdb to redb.
The main branch will continue to incorporate any necessary updates to review-database, while the redb branch will focus on the migration effort.

Gradual Migration with native_db:

On the redb branch, we will start by gradually adding the code required to migrate data from rocksdb to redb.
We will leverage the native_db crate to facilitate this process, particularly focusing on its migration features.
Our approach will include implementing the necessary backup and restore functionalities, which redb currently lacks.

Testing and Performance Evaluation:

We will perform thorough testing using actual data sets of a reasonable size to evaluate performance and ensure that the migration does not introduce any regressions.
Testing will cover both the performance of redb in our typical workloads and the reliability of the custom backup and restore processes.

PR Management and Rebase Strategy:

Any pull requests (PRs) related to the redb migration will be targeted to the redb branch.
To keep the redb branch up-to-date with the latest changes in main, we will periodically rebase redb on top of main.

Final Transition:

Once the migration to redb is complete and the stability of the system has been thoroughly verified, we will merge the redb branch back into main.
This will be followed by the release of a new version of review-database that fully replaces rocksdb with redb.


creating Batchlimits.pkl error

Hi,
As I was trying to create a database file for Dales similar to S3DIS, I find that the code search for a Batchlimits.pkl and a neighborhoodlimits.pkl. For the datasets like ModelNet40, these files already exists and runs into no error. but once these files are removed though there is code to redo this. That part is not working. Please see the error below. There's memory error. I use 32GB ram but still fails thought the dataset only requires around 15GB in the RAM.
Traceback (most recent call last):
  File "P:\Anaconda_installation\envs\aero\lib\multiprocessing\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "P:\Anaconda_installation\envs\aero\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
MemoryError
Traceback (most recent call last):
  File "P:\Anaconda_installation\envs\aero\lib\multiprocessing\spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

I also get OSError sometimes in the same point
ForkingPickler(file, protocol).dump(obj)

Please let me know the aim of the code in calibration and if there's any other memory effective way to approach this.
Thanks,
Arjun.

I am sorry it works for modelnet40. just not for the which i am trying to make.


Changes Required

Add a folder under java_imp and make a folder and named it  as Easy_level_Program f and under that add #49

cai i do it?

Raised PR #60


Added "Splitfire" and "Vampire shots" bonuses

Thanks ;)

My pleasure.;)

There are resources now in the repo so you can update the bonus images if you wish.

I'm on it! ;) Btw, I have revamped all the bonus textures (another pull request coming soon ;) )


APT source whitelist request for analizo

This replaces travis-ci/travis-ci#3925.
The original text by @danielkza follows

Analizo is a tool to measure source code metrics for C, C++ and Java.
Repository configuration:
deb http://www.analizo.org/download/ ./
deb-src http://www.analizo.org/download/ ./

GPG key: http://www.analizo.org/download/signing-key.asc

Any news on this?


Shokhina toj/1765 directives ordering lint

https://devtopia.esri.com/runtime/flutter/issues/1765
Adopted and applied linter rule "directives_ordering" for the samples app.

This PR didn't come out quite right -- it wants to merge to "main", but it should be merging to "v.next". Click the "Edit" button up near the top right and switch the branch from main to v.next.

Then you should be able to go over to the "Files changed" tab and make sure it shows only the intended changes.

Thanks Paul! should be fixed now


XlaRuntimeError when using Pallas flash attention with bfloat16 activations on TPU

Description
Running:
import jax
from jax import numpy as jnp
from jax.experimental.pallas.ops.tpu import flash_attention

bs = 2
seqlen = 1024
n_heads = 32
dim = 128
rng = jax.random.PRNGKey(0)
xq = jax.random.normal(rng, (bs, n_heads, seqlen, dim), dtype=jnp.bfloat16)
xk = jax.random.normal(rng, (bs, n_heads, seqlen, dim), dtype=jnp.bfloat16)
xv = jax.random.normal(rng, (bs, n_heads, seqlen, dim), dtype=jnp.bfloat16)

res = flash_attention.flash_attention(xq, xk, xv)

print(res.shape)
print(res.dtype)

on TPU v3-8 results in the following error:
XlaRuntimeError: INVALID_ARGUMENT: Failed to compile a Mosaic module: 'tpu.matmul' op Unsupported input data type in matrix multiplication. (extra diagnostics trimmed...)

The same code works without issues when using float32.
What jax/jaxlib version are you using?
jax 0.4.20, jaxlib 0.4.20
Which accelerator(s) are you using?
TPU v3-8
Additional system info
Python 3.10.12, uname: Linux t1v-n-0ddffd80-w-0 5.19.0-1022-gcp #24~22.04.1-Ubuntu SMP Sun Apr 23 09:51:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
NVIDIA GPU info
None

I think perhaps https://github.com/google/jax/commit/9b1572c02859287294dec7a6b3df9018f462c8aa fixed this, but maybe that hasn't been pushed to pypi yet. Can you try using JAX at GitHub HEAD?

That is, either do a git clone https://github.com/google/jax.git && pip install -e jax or do a pip install git+https://github.com/google/jax.git

I think this is actually an unimplemented feature for TPU v3, whereas it should work out of the box on v4. Cc: @apaszke to confirm

That is, either do a git clone https://github.com/google/jax.git && pip install -e jax or do a pip install git+https://github.com/google/jax.git

Installing JAX from HEAD (0.4.21.dev20231119+g52b31a497) and using nightly releases of jaxlib (0.4.21.dev20231118) & libtpu-nightly (0.1.dev20231118) results in the following error:
Traceback (most recent call last):
  File "/home/user/work/tests/flashattn.py", line 17, in <module>
    res = flash_attention.flash_attention(xq, xk, xv)
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/experimental/pallas/ops/tpu/flash_attention.py", line 181, in flash_attention
    return _flash_attention(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/experimental/pallas/ops/tpu/flash_attention.py", line 199, in _flash_attention
    return _flash_attention_impl(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/experimental/pallas/ops/tpu/flash_attention.py", line 729, in _flash_attention_impl
    o, *aux = pl.pallas_call(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/pallas/pallas_call.py", line 410, in wrapped
    out_flat = pallas_call_p.bind(
jax._src.source_info_util.JaxStackTraceBeforeTransformation: KeyError: 'xla_mosaic_dump_to'

The preceding stack trace is the source of the JAX operation that, once transformed by JAX, triggered the following exception.

--------------------

The above exception was the direct cause of the following exception:

jax.errors.SimplifiedTraceback: For simplicity, JAX has removed its internal frames from the traceback of the following exception. Set JAX_TRACEBACK_FILTERING=off to include these.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/work/tests/flashattn.py", line 17, in <module>
    res = flash_attention.flash_attention(xq, xk, xv)
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/pallas/mosaic/pallas_call_registration.py", line 88, in pallas_call_tpu_lowering_rule
    return mlir.lower_fun(_lower_fun, multiple_results=True)(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/pallas/mosaic/pallas_call_registration.py", line 79, in _lower_fun
    return mosaic.as_tpu_kernel(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/tpu_custom_call.py", line 404, in as_tpu_kernel
    lowered_module_asm, constants = _lower_tpu_kernel(
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/tpu_custom_call.py", line 300, in _lower_tpu_kernel
    dump_mlir(module, "original")
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/jax/_src/tpu_custom_call.py", line 476, in dump_mlir
    if FLAGS["xla_mosaic_dump_to"].value == "sponge":
  File "/home/user/jax_dev_env/lib/python3.10/site-packages/absl/flags/_flagvalues.py", line 481, in __getitem__
    return self._flags()[name]
KeyError: 'xla_mosaic_dump_to'

Also, adding interpret=True to all pallas_call calls in flash_attention.py (as was done in this issue: https://github.com/google/jax/issues/18590) results in the code executing without errors.

Hitting the same issue, would be nice to be able to use older TPUs.

can flash-att. work on gpu?


Update email.js

The promises for signInWithEmailAndPassword and createUserWithEmailAndPassword resolve with a UserCredential and not a user. Calling the parameter user is a left-over from the old (pre-5.0) SDK where it was an actual FirebaseUser object.
I renamed the parameter and added an example of how to access the UID, which is the most common action for developers after creating an account/signing in.
Context: https://stackoverflow.com/questions/65817351/did-firebase-createuserwithemailandpassword-change-the-return-value/65817541?noredirect=1#comment116371334_65817541

@puf thanks for noticing this! I fixed it in a few more spots as well.
Btw for every snippet in this repo there is a parallel vNext snippet.  So auth/email.js and auth-next/email.js are parallel. And then running npm run snippets generates some of the final vNext snippets from those sources.

@puf thanks for noticing this! I fixed it in a few more spots as well.
Btw for every snippet in this repo there is a parallel vNext snippet.  So auth/email.js and auth-next/email.js are parallel. And then running npm run snippets generates some of the final vNext snippets from those sources.


Why does pkgs.lua resolve to lua 5.2.4 instead of a more modern version

This issue is inspired by https://github.com/NixOS/nixpkgs/issues/323016.
I found it quite interesting that pkgs.lua resolves to lua 5.2.4, and especially given that this released way back in 2011, is probably due an update. Lua 5.4.x, by contrast, has been released since 2020, with the most recent version being 5.4.7.
I know normally we hold off pushing a major bump (see python3 being on 3.11 when 3.13 is out), but Lua has been out for many years. Seems like it's about time for a rev bump.
If it's legacy compat we are concerned with, then have them changed to pkgs.lua_5_2 (i wouldn't even mind making this pr). I think bumping the generic alias to a higher default is better for most people, new Nix/OS users, and even older users looking to adopt newer Lua packages.
Honestly I have a similar (albiet I guess less important) issue with pkgs.python resolving to python2 and pkgs.python3 being the necessary output instead of the other way around pkgs.python ==> python3 and pkgs.python2 ==> python2.

lua is not like other languages, they make breaking changes even on "minor" versions. 5.2 and 5.3 are practically different languages

Policy is usually that the alias points to the latest version.

lua is not like other languages, they make breaking changes even on "minor" versions. 5.2 and 5.3 are practically different languages

Hmm, that would be an argument against having a lua alias pointing to the latest at all.
I agree lua pointing to an old version is confusing.

Bumping this, I think more consensus would be really cool here. Almost every other aliased language-specific package points to the latest version, and for a repository like nixpkgs where everything is ideally kept bleeding-edge, it makes sense.
Lua is the one of (if not the only) language that isn't following this logic, and I believe its confusing for both developers who expect modern lua as they work, and packagers who bring it modern lua packages. Realistically if a package requires an older lua, it should be provided into their attributes either as lua52 or lua = lua52.

I agree, and if specific applications require specific minor version, I'd rather see it explicitly written down. Wanna send a draft PR so we can see the impact?


Clean generated favicons before regenerating

For issue https://github.com/este/este/issues/1147

Thank you!

For some reason, circleci yields
Error: /home/ubuntu/belong/node_modules/eslint-config-airbnb-base/rules/style.js:
	Configuration for rule "max-len" is invalid:
	Value "data["2"].ignoreStrings" has additional properties.
	Value "data["2"].ignoreTemplateLiterals" has additional properties.

However, npm test works locally.


Ability to set-up call timeout including infinity

Hey,
Plugin version never had issues with sockets being closed. I use rest client to test or debug my applications where the response times could be very large. With the desktop app I see that if it does not get a response in 30 secs I see a socket closed errors.
How can I set the infinite socket timeout ?
Expected outcome
What should happen?
Actual outcome
What happened?
Versions
App: <IP_ADDRESS>-stable
Chrome: 49.0.2623.112
Platform: Mac OS X (10_11_4)
Steps to reproduce

Call any url which takes more than 30 secs to respond

I've changed issue title to be more recognizable.

Yo.. Thnx
On Apr 18, 2016 2:25 PM, "Paweł Psztyć"<EMAIL_ADDRESS>wrote:

I've changed issue title to be more recognizable.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/jarrodek/ChromeRestClient/issues/502#issuecomment-211589027

Yeah, this is a pretty big one.. it's unusable for me now since the API's I work with return large datasets that (unfortunately) take a while to load.

+1 How to solve it?

Hello, @jarrodek, When this fix will be uploaded to Chrome Marketplace?
Current version there is Version: <IP_ADDRESS>-stable
P.S. Thanks for fixing it. New UI is great, except this bug.

@Mart-Bogdan in coming days. I'm testing and still fixing cookie storage and when it's ready I'' publish an update right away.

Thanks @jarrodek! New UI does look great.

+1


"Expected directory 'node_modules/react-native/android' to contain exactly one file, however, it contains no files"🐛

What were you trying to do?
Just started a new react native project and install all the necessaries dependencies  to access the camera. I had seen that this issue always comes back with every new  version of RN or React native vision camera.
Dependencies:
"@react-navigation/drawer": "^6.5.7",
    "@react-navigation/native": "^6.1.2",
    "latest": "^0.2.0",
    "patch-package": "^6.5.1",
    "react": "18.2.0",
    "react-native": "^0.71.1",
    "react-native-gesture-handler": "^2.9.0",
    "react-native-reanimated": "^2.14.4",
    "react-native-safe-area-context": "^4.5.0",
    "react-native-screens": "^3.19.0",
    "react-native-vision-camera": "^2.15.2"

Reproduceable Code
No response
What happened instead?

Relevant log output
No response
Device
Android 12
VisionCamera Version
2.15.2
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

found this on the last release of react native:
Starting from React Native 0.71, we're not shipping the /android folder inside the React Native NPM package
anymore due to sizing constraints on NPM. The Android artifacts are distributed via Maven Central.
You can read more about it in this RFC:
https://github.com/react-native-community/discussions-and-proposals/pull/508
If you're a library author and you're manipulating the React Native .aar files, to extract headers,
extract .so files or do anything with it, you're probably doing something wrong. React Native
0.71 ships with all the necessary logic to let you consume it transparently by just using:
implementation("com.facebook.react:react-android")
// or to keep backward compatibility with older versions of React Native:
implementation("com.facebook.react:react-native:+")

Can confirm, I get the same error with RN 0.71.1
Currently our project cannot barcode scan, which requires older and deprecated modules that are in need of patching. How long do you think it will take before these artifacts get put in the right spot (i.e. the module gets fixed)?

Confirming that we're seeing the same thing with React Native 0.71.1.
Would definitely appreciate any updates or workarounds. We're going to stay on React Native 0.70.x until this is resolved.
Side note - Thanks for all the work on this project!!

Duplicate of https://github.com/mrousavy/react-native-vision-camera/issues/1418


Exploratory Data Analysis

💥 Proposal
Hello, I wanted to add a new project under the Data Analytic Title. So I request you (@theyashwanthsai and @khusheekapoor )to assign me the task.
For this I will work on the Adult Census Income dataset on https://archive.ics.uci.edu/dataset/20/census+income
and will explore relationships between variables such as education level , work class , age, income etc. and perform univariate, bivariate and multivariate analysis to draw insights from the given dataset.

@Dilpreet1409  - you can go ahead! We are assigning you 21 days for this project, after which it will be assigned to someone else if not completed. All the best!
Name the file as: algorithm_dataset.ipynb and link it in the readme of the labeled directory as algorithm - dataset.

EDA on Adult Census Income Dataset #689 @khusheekapoor please review it. Thank you!


count_by - issue #61

Also removed a bunch of empty spaces for consistency along underscore.cpp, and I also included the fixes related to removing stdc++.h and the dangling space when doing a std:: cout, which I included in a separate PR.
If you like this PR, you can ignore the previous one and merge all those fixes in one shot.

Thanks


[proposal] FadeInImage.assetNetwork must provide a onImageLoaded callback

I need some callbacks in FadeInImage.assetNetwork, mainly to undestand when the image has finished loading. There's some work in progress on that?

Hi @rafagan
Can you please elaborate what is the use-case for this proposal? What are those required callbacks you need?
Thank you

I have a gradient mask over the final image downloaded, but without the callback I can't handle the visibility of it, thus it appears also over the placeholder.

Those callback's will be awesome!

Since you didn't answer my question, I will assume that you want to detect when a image finished loading based on your use case.

The following example shows a gradient mask over the image. The mask is always present, even if I don't want it in loading phase.
Stack(children: [
  FadeInImage.assetNetwork(
    image: song.photoUrl,
    fit: BoxFit.fitWidth,
    placeholder: 'assets/images/loading.gif',
    width: context.w * 0.34,
  ),
  Positioned.fill(
    child: Container(
      decoration: BoxDecoration(
          gradient: LinearGradient(
              begin: Alignment.centerLeft,
              end: Alignment.centerRight,
              tileMode: TileMode.repeated,
              colors: [
                Color(0x00FFFFFF),
                Colors.white
              ]
          )
      ),
    ),
  )
]),

If I could set a Widget instead of String URL, the problem would be solved:
FadeInImage.assetNetwork(
  image: song.photoUrl,
  onLoad: (imageWidget) => Stack(children: [
    imageWidget,
    Positioned.fill(
      child: Container(
        decoration: BoxDecoration(
            gradient: LinearGradient(
                begin: Alignment.centerLeft,
                end: Alignment.centerRight,
                tileMode: TileMode.repeated,
                colors: [
                  Color(0x00FFFFFF),
                  Colors.white
                ]
            )
        ),
      ),
    )
  ]),
  fit: BoxFit.fitWidth,
  placeholder: 'assets/images/loading.gif',
  width: context.w * 0.34,
)

The following example shows a gradient mask over the image. The mask is always present, even if I don't want it in loading phase.

This is still confused comparing with your initial proposal. Can you please describe what callbacks do you want FadeInImage to have?
Thank you

If I could handle in some way the loaded image inside my widget hierarchy (for instance, the example above with blur), that will help me provide some masks or effects over the loaded image without have the same effects over the placeholder.
In the example I've shown an onLoad callback which also provides me the imageWidget completely loaded. It's an idea that exposes the problem scenario. The best architecture and nomenclature following Flutter conventions it's up to your team. I just need to draw more than just the Image Widget after the loading completes, and in the current architecture I can't control the exact moment to do that.
If you don't understood, could you please provide me more questions and then I can try again elaborate another scenarios or some different modeling.

I think something similar to imageErrorBuilder (but for when the image finishes loading) would be good!
And if possible maybe throw in a bool for when the fade finishes too? Something like this:
FadeInImage.memoryNetwork(
    placeholder: kTransparentImage,
    image: _imageUrl,
    imageSuccessBuilder: (ctx, image, faded) {
        print(faded ? 'finished fading' : 'still fading');
        return Image.memory(image);
    }
)

That would also give you flexibility on how to show the image (i.e. if you're using a different package).

Btw, I found this, which @rafagan could probably use, but unfortunately it's not compatible with FadeInImage as it only supports ImageProviders.
https://stackoverflow.com/a/64696386


[1.0] set secure flag in cookie (bsc#1050484)

Signed-off-by: Maximilian Meister<EMAIL_ADDRESS>(cherry picked from commit 2386314e2a1d3a99cc285366441311746303ab56)
backport of https://github.com/kubic-project/velum/pull/274

rebased, ci was red 2 times

CI was red due to devenv pulling a new etcd - that change just landed tho, so a restart of the job would have gone green :)


Make ctapipe work with h5py version 3.0

Right now we restrict to h5py < 3.0 because of how that version changed string writing broke astropy.
We should switch to allowing > 3.0 when astropy supports it.

Ideally, there would be a  pytables backend for astropy, and we could drop h5py as a dependency.
We also had mentioned replacing using astropy.Table.write() to write the instrument description to HDF5 files and rolling our own solution (which is a bit annoying to have to do, but gives complete control). I would guess in the end that solution could be contributed back to astropy, though.

I discussed this with the astropy maintainers and they were reluctant on adding this kind of non-standardized extension based on hdf5 attributes.
But using this yaml extension is not really portable...

Relevant PR in astropy, schould be backported to 4.0.5, 4.2.1:
https://github.com/astropy/astropy/pull/11359


Extract these filter functions to the module scope

https://github.com/nf-core/setup-nextflow/pull/6#discussion_r1022998559

Let's leave it. Need to control my itchy refactoring fingers 😬


Provide the consumer type in factories

First of all, love the project. I've been really excited for source generators and this project just uses then so well.
Now, I'm trying to inject a logging interface in my application.
The interface is:
public interface ILogger
{
    void Info(...);
    void Error(...);
}

And my implementation is:
public class Logger<T> : ILogger
{
    public Logger()
    {
        //uses T to get the actual logger from some library
    }

    public void Info(...);
    public void Error(...);
}

As you can see, the consumer type is used in the implementation but not in the interface.
I know that default (at least for microsoft) is to use something like ILogger<T>, but all my projects uses ILogger (and I personally thinks that is better).
I don't know if currently is possible to use StrongInject to resolve this.
One possible solution is to provide the consumer type (the type begin resolved) in the factory methods and in the IFactory interface.
I'm thinking something like this:
public interface ILogger { }

public class Logger<T> : ILogger { }

public class A { public A(ILogger logger) { } }

public class B { public B(C c) { } }

public class C { public C(ILogger logger) { } }

public partial class Container : IContainer<A>, IContainer<B>
{
    [Factory]
    private static ILogger Create<TConsumer>() => new Logger<TConsumer>();
}

var container = new Container();
container.Resolve<A>(); // Here TConsumer is 'A'
container.Resolve<B>() // Here TConsumer is 'C'

Or maybe something like this:
public interface ILogger { }

public class Logger : ILogger { public Logger(Type type) { } }

public class A { public A(ILogger logger) { } }

public class B { public B(C c) { } }

public class C { public C(ILogger logger) { } }

public partial class Container : IContainer<A>, IContainer<B>
{
    [Factory]
    private static ILogger Create(Type constumerType) => new Logger(constumerType);
}

var container = new Container();
container.Resolve<A>(); // Here the parameter 'constumerType' is 'A'
container.Resolve<B>() // Here is 'C'

I understand that this is probably a breaking change and if it's not something that you're not willing to do.
Thanks for the wonderful project 😄

Hi
I can definitely see the use case here.
Currently in StrongInject there's no way to see how a type is going to be used when you resolve it in order to modify how it's resolved.
I don't know the best way to support this functionality. I think what I'll do is I'll mull over this for a few days, and see if I can think of anything elegant, and not overly complex. If I do, I'll post the design here for further discussion.

Sorry it took me so long to get back to you -  I've been distracted by other things and then forgot about this.
What I'm thinking of doing is adding a type:
namespace StrongInject
{
    public class ResolutionInfo
    {
        public Type ResolvedAsDependencyOf { get; }
    }
}

Then ONLY for InstancePerDependency dependencies you can have a parameter of type ResolutionInfo. If no registrations exist for that type, then StrongInject will create it with the correct type.
So you could do:
[Factory(Scope.InstancePerDependency)] ILogger CreateLogger(ResolutionInfo rInfo) => new Logger(rInfo.ResolvedAsDependencyOf);

WDYT?

For my usecase with Serilog I need to create a new logger from an existing one.
ILogger logger = _generalLogger.ForContext(typeof(parent));

So would look something like:
[Factory(Scope.InstancePerDependency)] ILogger CreateLogger(ResolutionInfo rInfo, ILogger logger) => logger.ForContext(typeof(rInfo.ResolvedAsDependencyOf));

But I worry that this would be circular

@trampster you could do that by making it a decorator instead.
[Decorator] ILogger CreateLogger(ResolutionInfo rInfo, ILogger logger) => logger.ForContext(typeof(rInfo.ResolvedAsDependencyOf));

This is exactly my use case as well, using a decorator seems perfectly reasonable.

I think there's some further design questions that need to be answered.
If I have the following code:
public class A{ public (IB b){} }
public class B : IB { public B(ILog log){} }
public class Log : ILog { public Log(ResolutionInfo info){} }

What would you expect ResolutionInfo to contain? I presume typeof(B) or typeof(IB) (and not typeof(ILog)) but which one?

I would expect it to be typeof(B). In the case of logging with Serilog, you'd want the logger to be the concrete implementation, because when you're looking for the SourceContext to hunt down a bug you're going to want to know which concrete implementation exactly it was.

Some further cases which I don't think are obvious what to do.
If I have:
public record A(ResolutionInfo info);
public record B(A[] as);

Should ResolutionInfo contain typeof(A[]) or typeof(B). If we say typeof(B)`, what about the following:
public record A(ResolutionInfo info);
public record B(List<A> as);

[Register(typeof(A)]
[Register(typeof(B))]
public class Container : IContainer<B>
{
    [Factory] List<T> CreateList<T>(T[] ts) => ts.ToArray();
}

By the same logic, ResolutionInfo ought to contain typeof(B) not typeof(List<A>), but there's no way for StrongInject to know that List<A> can be ignored as just a container type rather than the actual consumer.

Note that you can work around this issue by using Microsoft's ILogger<T> interface as suggested at https://github.com/YairHalberstadt/stronginject/issues/117#issuecomment-854337288, but I understand that can be a hurdle to change to.

Sorry, I saw this and got stuck on an answer for it and forgot to come back to it.
It's a really good question that I don't have an answer to because I've never actually encountered a situation where it was a problem.
There are a couple of things that I would note that may make this harder or simpler, I'm not sure, and that's the case that I've never needed the concept that ResolutionInfo provides directly inside a dependancy. In general, I've always tried to keep my code unaware of the container as possible unless it's doing nested resolution, and as such I personally would only need it to be available for [Factory] methods (and probably decorators)
I honestly wish I had a better answer, but I'm afraid I don't.


a grammar mistake in the documentation?

is it okay to use the conjunction "because" here?
"that" is really appropriate instead?

Where is this paragraph? Can you provide a link?
Also - please file documentation issues at vuejs/vuejs.org repo instead.


What is the difference between BrightFutures and RxSwift?

What is the difference between BrightFutures and RxSwift?

Sorry for not getting back to you sooner. There are a few great resources on the internet that cover this and would do a better job than I could here in this issue. I'd recommend reading https://gist.github.com/staltz/868e7e9bc2a7b8c1f754. Hope this helps!


Permit loading custom modules in the Interactive Window

The interactive window is a very nice feature. It's great that I'm able to test out NodeJS code on the fly.
This request is to associate the interactive window with a particular project in Visual Studio. This would permit loading custom modules defined in that project.
At present this works:
var x = require('fs');

but this doesn't
var x = require('htmlParser2')
// Error: Cannot find module 'htmlParser2'

NB: I have installed htmlParser2 in one of the NTVS projects, but not all of them.

Custom modules are in fact supported, but after some testing, you would need to either add a "./" before or ".js" after the custom module.

Could you clarify more on what the problem is? From my testing, it looks like the NIW does load custom modules. I did a copy of a module, renamed it, and it worked fine when I required it in NIW. Did you check which project your NIW was in by entering "process.cwd()?"

@MystK, process.cwd() is a nice tip. How do I set the active project?

Setting the active project is automated from what I understand depending on the solution you have open.
If you switch solutions but already have NIW open, you'll have to reset NIW by pressing the blue loop-back arrow button in the same window as NIW.

Ah, okay. That works, thanks! The procedure:
To test a package installed in a particular project

Open up a file from the project.
In the NIW hit the blue reset button.
Check that you are in the correct project by running process.cwd().
Now you can require the packages installed in that particular project.


ComponentPick

Nodes with this component attached will be automatically tracked for mouse and touch events on them and their descendants. They fire the appropriate events that travel up the hierarchy to find their listeners.
Parameters can be

course radius picking
accurate shader picking
combination, filter before shaderpicking

Of course this depends on the viewport. But the same node may be rendered in different viewports. A good method would be that the components register at the viewport or the canvas, to reduce the need to iterate over the branch frequently. The Render-Events may be suitable for managing.

Solution found is to collect the components when rendering with the viewport. Then dispatch pointer events to the viewport, which iterates over the collection, checks for hits and dispatches the event on into the graph.


puppeteer 1.6+ with new chromium version is missing request and response events.

Steps to reproduce
Tell us about your environment:

Puppeteer version:
1.5 and 1.6.1
Platform / OS version:
arch linux kernel 4.14
URLs (if applicable):
google.com
Node.js version:
8.4

What steps will reproduce the problem?
Count the events triggered when visiting google.com.

request
requestfinished
requestfailed
response

Please include code that reproduces the issue.
'use strict';

const Puppeteer = require("puppeteer");

async function run() {
	let requestCounter = 0;
	let requestFailedCounter = 0;
	let requestFinishedCounter = 0;
	let responseCounter = 0;

	const browser = await Puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
	const page = await browser.newPage();
	page.setRequestInterception(true);

	page.on('request', (request) => {
		requestCounter++;

		request.continue();
	});

	page.on('response', (response) => {
		responseCounter++;
	});

	page.on('requestfailed', (request) => {
		requestFailedCounter++;
	});

	page.on('requestfinished', (request) => {
		requestFinishedCounter++;
	});

	await page.goto('https://google.com/');
	await page.waitFor(3500);

	console.log("requests: [" + requestCounter + "].");
	console.log("requestsFailed: [" + requestFailedCounter + "].");
	console.log("requestsFinished: [" + requestFinishedCounter + "].");
	console.log("responses: [" + responseCounter + "].");
}

try {
	run().then(() => { process.exit(0); });
} catch (err) {
	console.error(err);
}

What is the expected result?
In version 1.5 with chrome version (HeadlessChrome/69.0.3452.0) the output is:
requests: [19].
requestsFailed: [0].
requestsFinished: [19].
responses: [19].

What happens instead?
In version 1.6+ with chrome version (HeadlessChrome/69.0.3494.0) the output is:
requests: [20].
requestsFailed: [0].
requestsFinished: [5].
responses: [5].

When using the 1.5 chromium binary in the 1.6+ test the result is as expected.

@caseq Looks like something about redirects. Maybe working as intended?

I bisected this down to:
https://chromium.googlesource.com/chromium/src/+/78044c8325af946ace4dd560856572a76af07386
Builds up to 565834 show 19 responses, builds starting at 565837 show 5 responses.
5 responses... 5 hosts? Looks like once cookies are set, the follow-up requests go unreported. I can't build Chromium right now, but I guess after delaying the start with
store->GetCookieListWithOptionsAsync(
    request_details_.url, options,
    base::BindOnce(&DevToolsURLInterceptorRequestJob::StartWithCookies,
                   weak_ptr_factory_.GetWeakPtr()));

the cookie store never runs the callback.

Dupe of #2970.
@slyrz thanks for bisecting!


K8SPXC-679: Add real logger to PXC

Test name
Status

upgrade-haproxy
passed

storage
passed

scaling
passed

big-data
passed

recreate
passed

haproxy
passed

scaling-proxysql
passed

init-deploy
passed

self-healing
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

limits
passed

monitoring-2-0
passed

demand-backup
passed

self-healing-advanced
passed

smart-update
passed

affinity
passed

one-pod
passed

operator-self-healing
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

pitr
passed

users
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

demand-backup-encrypted-with-tls
failed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/d0cd21033addc14f2637d953bae00bae7a51046d
image: perconalab/percona-xtradb-cluster-operator:PR-813-d0cd2103

Test name
Status

haproxy
passed

recreate
passed

big-data
passed

storage
passed

upgrade-haproxy
passed

scaling
passed

init-deploy
passed

scaling-proxysql
failed

self-healing
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

limits
passed

security-context
passed

monitoring-2-0
passed

self-healing-advanced
passed

demand-backup
passed

smart-update
failed

affinity
passed

one-pod
passed

auto-tuning
passed

operator-self-healing
passed

proxysql-sidecar-res-limits
passed

pitr
passed

users
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

demand-backup-encrypted-with-tls
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

scheduled-backup
failed

upgrade-consistency
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/3f5f2a5192213b23845821663fbb5ec318f77dcc
image: perconalab/percona-xtradb-cluster-operator:PR-813-3f5f2a51

Test name
Status

scaling
passed

upgrade-haproxy
passed

haproxy
passed

recreate
passed

big-data
passed

storage
passed

scaling-proxysql
passed

self-healing
failed

init-deploy
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

limits
passed

monitoring-2-0
passed

demand-backup
passed

smart-update
passed

affinity
passed

self-healing-advanced
passed

one-pod
passed

auto-tuning
passed

operator-self-healing
failed

proxysql-sidecar-res-limits
failed

pitr
passed

users
failed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

scheduled-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/2644f1bd9a7452de01141ec37011c83343370f6e
image: perconalab/percona-xtradb-cluster-operator:PR-813-2644f1bd

Test name
Status

recreate
passed

big-data
passed

scaling
passed

storage
passed

haproxy
passed

upgrade-haproxy
passed

init-deploy
passed

self-healing
failed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

security-context
passed

limits
passed

monitoring-2-0
passed

demand-backup
passed

smart-update
passed

affinity
passed

one-pod
passed

auto-tuning
passed

self-healing-advanced
passed

proxysql-sidecar-res-limits
passed

users
failed

operator-self-healing
passed

tls-issue-self
passed

upgrade-consistency
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

pitr
failed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/09852b3ae58bf4c1f2a76229532bdf9f933bf49a
image: perconalab/percona-xtradb-cluster-operator:PR-813-09852b3a

Test name
Status

haproxy
passed

upgrade-haproxy
passed

scaling
passed

big-data
passed

recreate
passed

storage
passed

init-deploy
passed

scaling-proxysql
failed

self-healing
failed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

security-context
passed

limits
passed

demand-backup
passed

smart-update
passed

monitoring-2-0
passed

self-healing-advanced
passed

affinity
passed

one-pod
passed

operator-self-healing
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

pitr
failed

validation-hook
passed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
failed

scheduled-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/3141117b8e7c1f254767a4f9def6137b602f20cd
image: perconalab/percona-xtradb-cluster-operator:PR-813-3141117b

Test name
Status

big-data
passed

storage
passed

self-healing
failed

upgrade-haproxy
passed

haproxy
passed

recreate
passed

init-deploy
passed

restore-to-encrypted-cluster
passed

limits
passed

scaling
passed

demand-backup
passed

monitoring-2-0
passed

scaling-proxysql
passed

pitr
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

upgrade-proxysql
passed

security-context
passed

smart-update
passed

upgrade-consistency
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

demand-backup-encrypted-with-tls
passed

self-healing-advanced
passed

operator-self-healing
passed

scheduled-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/813/commits/3141117b8e7c1f254767a4f9def6137b602f20cd
image: perconalab/percona-xtradb-cluster-operator:PR-813-3141117b


SMI configuration documentation

Proposal
Our documentation does not tell how to use SMI to configure routes and features. We should create some documentation on how to enable SMI, and how to use objects to accomplish simple tasks.

I'll take care of this


Custom version of spark

Hi, I am going to build the spark-notebook for a custom version of spark which it is source on a local drive. What procedures should I take to build the notebook?

From what I understand spark is a run-time dependency, so you can build against an API-version, and then supply the path to your spark-lib in the configuration.
Otherwise you can reference a specific spark version at build-time and deploy your spark-build to your local .ivy2. Then it should be pulled during the build.

indeed, although this will change in further versions. the easiest right now is to use a clone and sbt.
you publish your spark locally, let's say version 1.6.0-SNAPSHOT.
then you can use it via sbt like this
sbt -Dspark.version=1.6.0-SNAPHSOT

however there is working crapy to do, and I'm sad I didn't spent the time yet for a cleaner solution... you'll have to duplicate the source directory in the spark module for your spark version (without SNAPSHOT,  though) and the scala version... I'm sorry about that, really


AttributeError: 'DXCamera' object has no attribute 'is_capturing'

Traceback (most recent call last):
File "C:\Users\user\Downloads\Euro-Truck-Simulator-2-Lane-Assist-main\MainFile.py", line 49, in
import ets2LaneDetection as LaneDetection
File "C:\Users\user\Downloads\Euro-Truck-Simulator-2-Lane-Assist-main\ets2LaneDetection.py", line 123, in
camera = dxcam.create(region=monitor, output_color="BGR")
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam_init_.py", line 112, in create
return _factory.create(
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam_init.py", line 71, in create
camera = DXCamera(
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam\dxcam.py", line 33, in init
self._duplicator: Duplicator = Duplicator(
File "", line 6, in init
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam\core\duplicator.py", line 19, in post_init
output.output.DuplicateOutput(device.device, ctypes.byref(self.duplicator))
_ctypes.COMError: (-2005270524, 'Zadané rozhraní zařízení nebo úroveň funkce nejsou v systému podporovány.', (None, None, None, 0, None))
Exception ignored in: <function DXCamera.del at 0x000001DD0F7EE670>
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam\dxcam.py", line 243, in del
self.release()
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam\dxcam.py", line 238, in release
self.stop()
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\dxcam\dxcam.py", line 138, in stop
if self.is_capturing:
AttributeError: 'DXCamera' object has no attribute 'is_capturing'

It's repaired, python was running on bad graphics card


IE9+ error with gradient option on L.MapMarker

I'm getting errors in IE9+ when trying to use L.MapMarker with a gradient option. It's throwing an error at:
https://github.com/humangeo/leaflet-dvf/blob/1.0dev/src/leaflet.dvf.markers.js#L397
citing: Unable to get property 'length' of undefined or null reference. Viewing the online markers example produces the same results. Has anyone seen the same?

@iktl I haven't seen this, but I'll do some testing in IE9+.  I recently updated this file (w/in the past day or so) to change the line preceding this error from:
var children = gradient.children;

to:
var children = gradient.childNodes;

Due to some errors in Safari - Safari didn't support the children property, and I'm assuming neither does IE.  Can you check and make sure you're definitely using the latest code?

The chunk I'm running is:
        var children = gradient.childNodes;
        var childLength = children.length;

I'll try and run an older version and see if that changes, otherwise I'll sit tight and see the results of your testing.

I'll look into IE and childNodes some, because I'm seeing some documented errors out there and see what I can dig up. If I can find a solution I'll post it here.

I pushed up a change that will hopefully fix this.  I haven't had a chance to test in IE 9 yet, so let me know the latest code doesn't fix it.

No joy – using https://github.com/humangeo/leaflet-dvf/blob/1.0dev/dist/leaflet-dvf.markers.js, I'm now getting an undefined error for Evented during the L.Evented.extend() call.

I'll look into this some more, but it sounds like the childNodes/children code is no longer the issue.  On which line is the error occurring?

So the only reference to L.Evented is in leaflet-dvf.utils.js in the L.Animation class (line 1293).  I don't believe I'm actually using that class for anything within the framework at the moment, so if you're comfortable with rebuilding the code using grunt, you could remove that code from leaflet-dvf.utils.js and then rebuild and see if that fixes things.  The strange thing is that L.PosAnimation within the Leaflet code calls L.Evented.extend(), so it's weird that that's not throwing an error as well.

I'm also downloading a VM with IE 9 on it, so I should be able to try out some fixes soon.

I'm not seeing these issues on my IE 9 VM.  I do see issues with the L.SVGMarker class that I'll fix.  Is this occurring in a particular example or in custom code?  If it's custom code, do you mind sharing your script imports or some sample HTML/JS that's similar to what your doing?

I'd say go ahead and close this for now. Whatever recent changes you pushed have fixed the IE issues in the dist/examples pages in the 1.0dev branch. I'm still getting an error in my application code but I'd say this new issue is probably an interaction with something else in my codebase. I'll poke around and see what I can work out, but it's not coming from leaflet-dvf anymore.

Alright, figured it out. I had to switch over to using Leaflet 1.0 (I think this is mentioned somewhere around the 1.0 dev branch of leaflet-lvf, so my bad) instead of mapbox.js (which is based off the last stable release of leaflet). I have to update some code on my end to use the Leaflet library itself and not the Mapbox superset, but that's no problem. This has fixed the actual leaflet-lvf errors I was getting. Thanks for helping troubleshoot this.


sdk: add disclaimer to the README

Part of #1658
I don't know how to format best within Markdown. Open for suggestions.

I don't know how to format best within Markdown. Open for suggestions.

Maybe put it in blockquotes would be nice?
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes

@taleldayekh how do you think this looks?

@taleldayekh how do you think this looks?

All good! 👍

Okay then I clean up this branch and close the PR. :+1:


Ideas for reducing file sizes

Is your feature request related to a problem? Please describe.
Our files are pretty big, especially RDS files. We could save storage and download space with some smallish changes.
Describe the solution you'd like
A simple and transparent to users change would be to change our RDS compression from gzip to bzip2. This can be implemented with a change in write_rds() from compress='gz' to compress='bz2', and will be completely transparent to users as far as code goes, as the result is still an rds file
In my testing, this takes about 50% longer (e.g. 35 seconds vs 21 seconds, though so not much really), but results in files ~50% smaller. However, the read time increases substantially, from ~1.4 to 9.4 seconds in the example I tested. I tend to think the tradeoff is likely worth it for our use case, but others may disagree, so we should discuss this!
Describe alternatives you've considered
One other idea I had was to remove the miQC_model object from the "processed" files. At that point, the data in the object can't really be used as the rejected cells have already been removed. This object is also fairly large (100MB or more) and does not appear to compress well, so removing it would save a significant amount of space, and having it in both the "filtered" and "processed" data seems redundant. This change would require a docs update as well.
I also tested xz compression, but this was much slower, on the order of 4 minutes for the same file as above, with similar compression to bz2 (a bit smaller). It did read about 2x as fast as bz2 though. Something about all this doesn't seem quite right, and may be to do with the implementation of xz in R, but it is what it is.

Tagging @allyhawkins, @sjspielman and @jaclyn-taroni  for comments

In my testing, this takes about 50% longer (e.g. 35 seconds vs 21 seconds, though so not much really), but results in files ~50% smaller. However, the read time increases substantially, from ~1.4 to 9.4 seconds in the example I tested. I tend to think the tradeoff is likely worth it for our use case, but others may disagree, so we should discuss this!

My concern would be read time for the larger merged objects, not necessarily the smaller individual objects. I think at least for the individual RDS files then this proposal makes sense.

One other idea I had was to remove the miQC_model object from the "processed" files. At that point, the data in the object can't really be used as the rejected cells have already been removed. This object is also fairly large (100MB or more) and does not appear to compress well, so removing it would save a significant amount of space, and having it in both the "filtered" and "processed" data seems redundant. This change would require a docs update as well.

I'm totally onboard with removing it from the processed objects.

My concern would be read time for the larger merged objects, not necessarily the smaller individual objects. I think at least for the individual RDS files then this proposal makes sense.

Good middle ground!

closed by #712


add provedBy/proves column to data table

fixed by: https://github.com/ui-libraries/principia/commit/14a1a0c1a7deb117b773e31d0e24d5dcdc3a3da7


benchmark

Hi, dou you know any other similar campus dataset with lidar and camera like your sensors setup? will you open source a campus
dataset of ground UGV? I find this kind of data set too few.

I'm not sure about other campus dataset. Our current goal is not collecting a campus dataset, but it's an interesting to do so.


Firebase integration with self-hosted server

Description
I installed typesense in my
ubuntu 20.04 apache server
and it is successfully running but I can't succeed in trying to sync my firestore data using the firebase extension. When I input the public IP of my server in the typesense host portion, it fails to upsert the data.
Steps to reproduce
firebase extension

and this is my config file for typesense server

I'm guessing that it needs SSL certification but where do I get my SSL certificates to put in the configs?
Can self-signed work? Can certbot work?
I'm new to this so have mercy on me
""
Expected Behavior

Actual Behavior

Metadata
Typsense Version:
OS:

Those logs seem like they're from before you had changed the port to 443. Could you change the port, restart Typesense and then capture the logs from that point on?

Request #1628516055899: Request to Node 0 failed due to "ERR_TLS_CERT_ALTNAME_INVALID Hostname/IP does not match certificate's altnames: IP: my public IP is not in the cert's list: "

It sounds like you've generated your certificate using a domain name, but you've used your IP address when configuring the Firebase extension. Instead, you want to use the domain name in the Firebase extension - the same domain name you used when generating the SSL cert.

LOG file

Starting the service

My config
; Typesense Configuration
[server]
api-address = xxx.xx.xxx.xxx
api-port = 443
data-dir = /var/lib/typesense
api-key = value here
log-dir = /var/log/typesense
enable-cors = true
ssl-certificate = /etc/letsencrypt/live/domain/cert.pem
ssl-certificate-key = /etc/letsencrypt/live/domain/privkey.pem

May I know which cloud provider you’re running this on? It looks like the public IP address is not directly accessible on the instance. May be try using the private IP of the instance for api-address?

May I know which cloud provider you’re running this on? It looks like the public IP address is not directly accessible on the instance. May be try using the private IP of the instance for api-address?

The virtual machine is actually owned by the university where I am studying at.
They are also the ones responsible for giving me the public DNS which I used.
I tried the private IP which also didn't work
What might be the cause of this accessibility problem? I can try to bring this up to the manager of the server.

The server is actually hosted by the university where I study at.

Notice how the log here says "Cannot assign requested IP". That's the underlying issue.

When you run ifconfig does that show you the public IP?
Does ifconfig show you an address like 10.x.x.x or 192.168.x.x?

Could you post the logs, once you update the IP address in the Typesense configs to <IP_ADDRESS> and restart the Typesense process?

Ohhhh I can see that it says that the address is already in use

Yup, so some other process is already using port 443. You can try lsof -i :443 to see which process that is.

Hmmm the directory is the same as the directory where I hosted the file storage that I use for serving the files from this server
So does this mean that I cannot host this service anymore due to that?

Ah, if you're already using 443 for Apache, another thing you could do is run Typesense with http protocol on say port 8108 (the default). Then setup Apache to handle HTTPS on port 443, and then have Apache reverse proxy to Typesense on port 8108.

Ohh nice. This is what @britisharmy also suggested.
Are these sets for elasticsearch applicable?
https://devdocs.magento.com/guides/v2.4/install-gde/prereq/es-config-apache.html

That link doesn't seem to cover https. This looks more recent and talks about https setup as well: https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension

I see.
Do I need to follow the whole steps starting from Modifying The Default Configuration
Or just Enabling SSL Reverse-Proxy Support

Everything except "Enabling Load-Balancing"

ok I'll get back to you after I do it

That link doesn't seem to cover https. This looks more recent and talks about https setup as well: https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension
The key thing to change in that guide is:
ProxyPass / http://<IP_ADDRESS>:8080/
ProxyPassReverse / http://<IP_ADDRESS>:8080/

becomes
ProxyPassReverse / http://<IP_ADDRESS>:8108/

This is my config for the 000-default
<VirtualHost :>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://<IP_ADDRESS>:8108/
ProxyPassReverse / http://<IP_ADDRESS>:8108/

ServerName localhost

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On

# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/letsencrypt/live/my domain/cert.pem

# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://<IP_ADDRESS>:8108/
ProxyPassReverse / http://<IP_ADDRESS>:8108/

# Or, balance the load:
# ProxyPass / balancer://balancer_cluster_name

I cannot restart apache2 because of the error

Line 16 is Listen 443

The certificate cant work on a naked ip. You shall need a sub domain or a tld.

Hmmm
So I managed to successfully restart apache2.

I removed Listen 443
I removed *NameVirtualHost :443

This is now my config for 000-default
<VirtualHost :>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://<IP_ADDRESS>:8108/
ProxyPassReverse / http://<IP_ADDRESS>:8108/

ServerName localhost

SSLEngine On

# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/letsencrypt/live/my-domain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my-domain/privkey.pem

# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://<IP_ADDRESS>:8108/
ProxyPassReverse / http://<IP_ADDRESS>:8108/

# Or, balance the load:
# ProxyPass / balancer://balancer_cluster_name

And here is my config for typesense
GNU nano 4.8                                                                            /etc/typesense/typesense-server.ini                                                                                ; Typesense Configuration
[server]
api-address = <IP_ADDRESS>
api-port = 8108
data-dir = /var/lib/typesense
api-key = value here
log-dir = /var/log/typesense
enable-cors = true
Now both services are running
Are these configs correct?
I can now curl "HTTP://<IP_ADDRESS>:8108/health"
I can't curl https version
What should I be able to curl?
How do I verify if my reverse proxy works?

You only need
ProxyPassReverse / http://<IP_ADDRESS>:8108/
and NOT
ProxyPass / http://<IP_ADDRESS>:8108/.
Essentially, the idea is that you're running multiple web-servers behind Apache, one is your existing site, and the other is Typesense. Depending on what hostname shows up in the HTTP headers, Apache will either send the request to your existing site or to Typesense. HTTPS/SSL is handled by Apache and the connection to Typesense uses regular http on port 8108.
In this setup, the idea is that if you've configured say typesense.domain.com to reverse proxy to http://<IP_ADDRESS>:8108, then, you should be able to curl https://typesense.domain.com/health and Apache will send that request to Typesense internally.

You only need
ProxyPassReverse / http://<IP_ADDRESS>:8108/
and NOT
ProxyPass / http://<IP_ADDRESS>:8108/.
Essentially, the idea is that you're running multiple web-servers behind Apache, one is your existing site, and the other is Typesense. Depending on what hostname shows up in the HTTP headers, Apache will either send the request to your existing site or to Typesense. HTTPS/SSL is handled by Apache and the connection to Typesense uses regular http on port 8108.
In this setup, the idea is that if you've configured say typesense.domain.com to reverse proxy to http://<IP_ADDRESS>:8108, then, you should be able to curl https://typesense.domain.com/health and Apache will send that request to Typesense internally.

If I understand correctly, do I need to create a subdomain for my domain which I will call, say, "typesense.domain" which I will reverse proxy to http://<IP_ADDRESS>:8108
or can I just use 000-default like what digital ocean did?

Or can I also do it like this

I will just assign the specific /typesense path to reverse proxy to port 8108

Yeah, either of those should work. You might have to do some URL re-writing so Typesense doesn't see the /typesense/ portion of the URL... Not sure if that's how it works out of the box, or if more configuration is needed in Apache.

Ok
So I have now successfully configured my reverse proxy and curl "https://mydomain/typesense/health" now returns ok:true
I can also see it through web browser so I assume that this is already working
Now I went to the firebase extension and
typesense host: mydomain/typesense
still returns HTTP error 404

so I changed it to
typesense host: mydomain/typesense/collections
because that is where my collection is
but it still returns an error

What should be the correct host?
is there still something missing from my server setup?
This is my reverse proxy setup and I think it works fine

Oh hang on, my bad. While Typesense itself can be hosted under a path, the Firebase extension requires Typesense to be hosted on the root domain. So you'd need to create a new virtual host in Apache and move the reverse proxy config under that, and setup a different sub-domain just for Typesense.

Hmmm let me clarify.
Currently, the process goes like this
extension -> my SSL domain -> reverse proxy to <IP_ADDRESS>:8108
which does not work
Can you illustrate in terms of this process chain?

You'd have to set it up this way:
Extension -> https://typesense-sub.domain (setup in Apache as a separate Virtual Host with its own SSL cert) -> reverse proxy to <IP_ADDRESS>:8108

Hmm can I still use my ssl domain like this?
extension -> https://mydomain/typesense -> reverse proxy to newly created https://typesense -> reverse proxy to <IP_ADDRESS>:8108

That won’t work with the Firebase extension. So you need a new domain/sub-domain just for Typesense, but it can still run on the same server.

Ok I just checked with the server handler and I can fully use the root of mydomain
So now I don't need the subpath anymore and my process now is this:
extension -> my SSL domain (no more subpath) -> reverse proxy to <IP_ADDRESS>:8108

NICE it is finally working !!!!!
After 4 days of troubleshooting

THANKS @jasonbosco and @britisharmy for your assistance :)
Also I noticed that it fails to write empty arrays
Is this as intended?

NICE it is finally working !!!!!
After 4 days of troubleshooting

THANKS @jasonbosco and @britisharmy for your assistance :)
Also I noticed that it fails to write empty arrays
Is this as intended?

Idk why but now it accepts empty arrays haha

Amazing! Kudos to you for your persistence! 🙌 🙌
It would be awesome if you're able to share the final Apache configs that worked for you, for the benefit of future folks who might stumble on this scenario.

Sure!
So the process goes like this for me:
Firebase extension -> my SSL (by certbot)  "domain.xxx" -> Reverse proxy to my VM local IP address
My reverse proxy settings on my domain's xxx-le-ssl.conf file
ProxyPreserveHost On
ProxyPass "/" "http://local IP:8108/"
ProxyPassReverse "/" "http://local IP:8108/"
AllowEncodedSlashes On
Then on the firebase extension, use the ssl domain name like "sampledomain.xxx"
Make sure to enable the necessary modules in apache for reverse proxying
https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension
Apache docs about reverse proxying that might help understand this stuff
https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html

Is there a reason why Typesense extension doesn't allow to specify a custom port?


Colab repo

hey @ericmjl do you know any easy-ish way to create a colab for this repo?
Ideally, without needing to use google drive or anything like that?
e.g. for a single NB in a repo, i can just use the colab chrome extension -- like i did under the colab badges here
but  i can't seem to figure out how to do it easily for a repo.
LMK if you know, bro!

Colab's going to be a bit tricky. They don't support the installation methods that we are used to, as it presumes a fixed, ephemeral VM that you install packages into, with package installation commands as part of the notebook at the top. It's a bit "yucky" in my opinion. But I know where you're coming from - getting ready for the surge of users that will inevitably show up on Tuesday.
I think we could provide a Docker container that they can run locally. I'm in the midst of recording my PyCon tutorial, so for the day and possibly tomorrow, I might not have the bandwidth to handle it though. If you do, let me know, otherwise, I'd just default back to "follow HTML notebooks" on GitHub.

thanks, Eric. Colab worked incredibly well for my COVID-19 Live coding session last week: https://github.com/hugobowne/COVID-19-EDA-tutorial
But really only used pandas/matplotlib/altair.
our friends at binder helped then and may be able to help this time: https://github.com/jupyterhub/team-compass/issues/276#issuecomment-612331587
I think our conda/pip install instructions are good enough & i have made it clear in readme that learners should not expect binder to necessarily work -- if they want a guarantee, do local setup before the workshop (i've asked ODSC to tell them to do it at least a day before).
Let's not pull any docker stuff into master before this week's tutorial (i see we have an open issue here, which is great).
I'll leave this issue open as it will force me to either figure colab out or make a colab feature request or two. I think it would be reasonable to at least suggest the idea that colab achieve feature parity with binder on this (but not to expect that they'll prioritize it).

I worked with the notebooks/SciPy-2022/02-* files in Colab, and I had to make one notable tweak related to the pymc module.
In addition to a manual install (expected with Colab), I had to set an environment variable. Summarized below:
# must do this before importing pymc
!pip install pymc
%env MKL_THREADING_LAYER=GNU

# should be error-free now
import pymc

Solution taken from this issue: https://github.com/pymc-devs/pymc/issues/5862
P.S. I am aware that Colab isn't the ideal space for this project. Still, I figured I'd share this in case anyone decides to use Colab and runs into this problem.