Refactor for more data-driven approach

Improves https://github.com/Project-OSRM/osrm-text-instructions/pull/23
Fixes https://github.com/Project-OSRM/osrm-text-instructions/issues/6
Ref https://github.com/Project-OSRM/osrm-text-instructions/issues/19 https://github.com/Project-OSRM/osrm-text-instructions/issues/24 https://github.com/Project-OSRM/osrm-text-instructions/issues/14 https://github.com/Project-OSRM/osrm-text-instructions/issues/8
This makes natural language translations possible and implementations in other programming languages easier on the cost of blowing up the instructions.json.
Next:

[ ] @bsudekum @1ec5 can you have a look?
[ ] Fix tests for rotary/roundabout (we need to incorporate the nesting here as well)
[ ] 🎉

Some other thoughts:

we should add a test that verifies that each type has the 3 required keys
Should the key name be renamed to way_name so it corresponds to the template we're replacing? {way_name}? Downside here is that _ in keys is a little icky looking to me, upside is it's more clear.

I think there are some good moves here going on but with this PR we're 3x'ing the instruction.json and only reducing index.js by a couple of lines.

Incorporated all inline comments in https://github.com/Project-OSRM/osrm-text-instructions/pull/27/commits/f54c828403d69d77fb34e3319a8fd61298b04c35

we should add a test that verifies that each type has the 3 required keys

Yes. It feels like the test fixtures need to eventually look similar to the instructions.json. I might also want to generate them programatically then. Specifically lanes, rotary and roundabouts will need work.

Should the key name be renamed to way_name so it corresponds to the template we're replacing?

👍

we're 3x'ing the instruction.json and only reducing index.js by a couple of lines.

In general, that's to be expected with making anything more data-driven, although I've suggested a change above that would reduce the string bloat a bit.

Some more changes:

Automatically generate fixtures https://github.com/Project-OSRM/osrm-text-instructions/pull/27/commits/ccf59509ae79aa249850e4bf3fb2843eff87152c
Constants in instructions.json https://github.com/Project-OSRM/osrm-text-instructions/pull/27/commits/a61ca5ee1e5d431f6969121b564d67b2bf31958f https://github.com/Project-OSRM/osrm-text-instructions/pull/27/commits/c12c332474332c640ad2c55b04d0dad3c8cbfe4f https://github.com/Project-OSRM/osrm-text-instructions/pull/27/commits/be80c99e18f701a675b600795c672925a59a12ec

On iOS, I was planning to use the Mapbox iOS/macOS SDK's MGLCompassDirectionFormatter class for compass directions (which would be localized along with the SDK), but this is a reasonable approach.

Consolidated use lane as well.
I think we are good here now, next step is merging, releasing a new version, integrating and then continue to fix things. Will do that tomorrow.


Don't call ensureWritable on children when copying MapVectors/ArrayVectors

Summary:
Today, in the implementations of the copy function in MapVectors/ArrayVectors we (mostly) call
ensureWritable on the children first.
This gets very expensive, especially when calling copy on nested Maps/Arrays, we end up calling
ensureWritable many times on the same vectors.
I don't think it's unreasonable to expect the user to call ensureWritable on the MapVectors/ArrayVectors
before calling copy (we expect the same when calling other write operations).  They're in a better
position to ensure it's only called once.
I also noticed that MapVector calls ensureWritable on the keys but not the values, which makes me think
that users are already handling it themselves.
I did not make the same change in RowVector because unlike Arrays and Maps are fixed length, so
RowVectors copy function relies on ensureWritable to resize the children vectors (ArrayVectors and
MapVectors call ensureWritable with a size of 0 today and explicitly resize later).
CopyBenchmark before:
============================================================================
velox/vector/benchmarks/CopyBenchmark.cpp     relative  time/iter   iters/s
============================================================================
copyArray                                                   5.73ns   174.48M
copyArrayWithNulls                                          9.83ns   101.72M
copyArrayDictionaryEncoded                                 28.51ns    35.08M
copyArrayOneAtATime                                        58.40ns    17.12M
copyArrayTwoAtATime                                        35.69ns    28.02M
copyMap                                                     7.23ns   138.36M
copyMapWithNulls                                            9.67ns   103.45M
copyMapDictionaryEncoded                                   51.55ns    19.40M
copyMapOneAtATime                                          73.31ns    13.64M
copyMapTwoAtATime                                          45.61ns    21.93M

CopyBenchmark after:
============================================================================
velox/vector/benchmarks/CopyBenchmark.cpp     relative  time/iter   iters/s
============================================================================
copyArray                                                   5.45ns   183.51M
copyArrayWithNulls                                          8.88ns   112.63M
copyArrayDictionaryEncoded                                 27.56ns    36.28M
copyArrayOneAtATime                                        26.98ns    37.07M
copyArrayTwoAtATime                                        21.96ns    45.53M
copyMap                                                     7.30ns   136.90M
copyMapWithNulls                                            9.49ns   105.33M
copyMapDictionaryEncoded                                   51.62ns    19.37M
copyMapOneAtATime                                          40.65ns    24.60M
copyMapTwoAtATime                                          29.05ns    34.42M

Note that copyArrayOneAtATime is >2x faster.  copyMapOneAtATime is a little less than 2x faster, but I
suspect if it correctly called ensureWritable on the values before it would be significantly more so.
Differential Revision: D38291699

This is moot after https://github.com/facebookincubator/velox/pull/2357


Add Emil Plmkn to Contributors list

Hey @Plmkn, I noticed that you didn't complete the tutorial correctly. If you're following the tutorial, you'd be submitting a PR to the parent repository rather than the same repository. Do you need any help to correct this?


ngx-bootstrap/dropdown not working with angular2-universal

import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@NgModule({
imports: [BsDropdownModule.forRoot(),...]
})
is not working for me, throws error .
Exception: Call to Node module failed with error: Error: DI Error
at NoProviderError.Error (native)
at NoProviderError.ZoneAwareError (E:\Project\myapp\ClientApp\dist\vendor.js:74873:33)
at NoProviderError.BaseError [as constructor] (E:\Project\myapp\ClientApp\dist\vendor.js:1312:20)
at NoProviderError.AbstractProviderError [as constructor] (E:\Project\myapp\ClientApp\dist\vendor.js:1438:20)
at new NoProviderError (E:\Project\myapp\ClientApp\dist\vendor.js:1478:20)
at ReflectiveInjector_.throwOrNull (E:\Project\myapp\ClientApp\dist\vendor.js:3010:23)
at ReflectiveInjector.getByKeyDefault (E:\Project\myapp\ClientApp\dist\vendor.js:3049:29)
at ReflectiveInjector.getByKey (E:\Project\myapp\ClientApp\dist\vendor.js:2981:29)
at ReflectiveInjector.get (E:\Project\myapp\ClientApp\dist\vendor.js:2850:25)
at NgModuleInjector.get (E:\Project\myapp\ClientApp\dist\vendor.js:8564:56)
at AppView.injectorGet (E:\Project\myapp\ClientApp\dist\vendor.js:12008:49)
at AppView.View_AppComponentx0.createInternal (/AppModule/AppComponentx/component.ngfactory.js:50:156)
at AppView.create (E:\Project\myapp\ClientApp\dist\vendor.js:11951:25)
at AppView.View_AppComponentx_Host0.createInternal (/AppModule/AppComponentx/host.ngfactory.js:15:19)
at AppView.createHostView (E:\Project\myapp\ClientApp\dist\vendor.js:11964:25)

Thanks for letting us know.
I'm afraid this is not something I'll be able to investigate as it sounds extremely specific both to Angular and to the ngx-bootstrap/dropdown package you're using.
If you manage to track this down and you determine that there's some bug in the code in this repo, please let us know as we'd be happy to fix it!


 Hope you don't mind me checking it in :)

Sure, let's try it out. FWIW, Go has a native way of controlling the version of itself ... itself, but it's new and (also) unusual to me. (Check out the "toolchain" directive in go.mod, if you like.)


Validation of cluster's capabilities to run operators

[kind/Feature]

Which functionality do you think we should add?
Checking the cluster version and validating the capabilities for running operators.
Checking if cluster has

some minimum OperatorSources present to be useful
has the service binding operator installed
check the version of openshift

Why is this needed?
We want the operator backed services and service catalog backed services to co-exists. which means a user could run both a service-catalog service and operator using odo.
To allow this initially we need to check

possibility to run service-catalog services ( this becomes a necessary check for openshift 4+ )
possibility to run operator-backed services

has the service binding operator installed

Is ServiceBinging operator going to be a hard requirement?

check the version of openshift

It should not depend on OpenShift version.  The important part is the presence of the OperatorHub.
I haven't seen mentioned listing of available operators in any other issues, so I assume that it should be part of this one.

When the cluster has both, ServiceCatalog and OperatorHub the listing should contain services that can be created by either of the methods (provisioner)

▶ odo catalog list services
NAME                                                  PROVISIONER
mariadb-ephemeral                                     ServiceCatalog
mongodb-ephemeral                                     ServiceCatalog
mysql-ephemeral                                       ServiceCatalog
mongodb-enterprise.v1.2.4                             OperatorHub
mariadb-operator-0.1.3-6                              OperatorHub

When the cluster has just OperatorHub enabled the odo catalog list services should list all available services that can be deployed using operators, ServiceCatalog is silently ignored.

▶ odo catalog list services
NAME                                                  PROVISIONER
mongodb-enterprise.v1.2.4                             OperatorHub
mariadb-operator-0.1.3-6                              OperatorHub

When the cluster has just ServiceCatalog enabled the odo catalog list services should list all available services that can be deployed using ServiceCatalog, OperatorHub is silently ignored.

▶ odo catalog list services
NAME                                                  PROVISIONER
mariadb-ephemeral                                     ServiceCatalog
mongodb-ephemeral                                     ServiceCatalog
mysql-ephemeral                                       ServiceCatalog

Is ServiceBinging operator going to be a hard requirement?

I mean if you just want to start the operators and dont wanna link it with components then its not required

we can move the check for service binding operator check to https://github.com/openshift/odo/issues/2463 issue
as mentioned in the issue description

We want the operator backed services and service catalog backed services to co-exists

hence we will have a Provisioner or Provider column which provides the source of the service in the odo catalog list services

so some of the points have become invalid like checking the openshift version and checking if the service binding operator ( can be done lazily )
and hence currently the scope and AC of the issue about checking if service catalog is present, operator csvs are present, and then list them when odo catalog list service is executed

We are working on a proposal document and hence moved the issue to "In Analysis" state. Goal is to come up with a proposal like we did for odo debug.


[Discussion] Demo Colab notebook with 2 min song snippet (Aadum Neram by Ilaiyaraja 1988)

Spleeter team,
I took spleeter 2stem and 5stem models for a test drive on a composer I simply love.
I have created a notebook with step by step conversion of karaoke and then 5 stem, converting to high quality mp3 and added my observations on each of the 5 tracks.
As I have noted, this output is truly more coherent and confident than commercial option I tried!
https://colab.research.google.com/github/ravi-annaswamy/spleeter/blob/master/spleeter_demo_ra.ipynb
It is one click test run and will produce tracks in sub folders as shown. I will also upload the snippets onto my git for people who dont want to take trouble running the code, but want to see results.
I am truly very impressed by the technology and outputs and the generosity of your sharing.
This technology of source separation will become a boon to musicians, composers, arrangers and producers and entertain people in new ways.
Note: If you think this discussion is out of scope for git discussion, please feel free to close or I can delete.
Thanks
Ravi

For those curious to hear the separation results without running colab, I have added the karaoke/voice 2stem here:
https://github.com/ravi-annaswamy/spleeter/tree/master/output_2stem/aadum_neram_raja_example
and the five stem here:
https://github.com/ravi-annaswamy/spleeter/tree/master/output_5stems/aadum_neram_raja_example

Out of scope indeed, we do not share nor reference people experiments for legal reasons.
Glad you enjoy Spleeter though :).


Added support for Xcode 16

Fixing error: declaration of 'sa_family_t' must be imported from module 'darwin.posix.sys.types.sa_family_t' before it is required

This is needed +1


fix redbox crash on ios

ios crashes without this
the root cause is
https://github.com/keybase/client/blob/master/shared/common-adapters/custom-input.native.js#L53
but instead of editing this file, we just don't import it on ios (cause its never used anyways)
@keybase/react-hackers
cc: @MarcoPolo
testing on android now so waiting on that to merge first

@chrisnojima flow

@mmaxim @cjb android fixes and flow fixes


Configurable date time extractor

This PR introduces a configurable extractor for date/time (related to https://github.com/LibrePhotos/librephotos/issues/300). The parameters for each rule are defined by a plain JSON-compatible dictionary. This version doesn't include any per-user customization, but the goal is to eventually add configuration as per-user setting and provide UI for users to specify the logic.
The default logic is defined by DEFAULT_RULES_PARAMS:

Try to use photo exif tag with local date time
Try to use video creation datetime in UTC and translate to local timezone using GPS coordinates
Try to extract datetime from filename
Try to use video creation datetime in UTC (without fixing local timezone)

Copying the comment from the code about currently supported rules:
    The goal is to help extract local time, but for historical reason it is expected the returned
    datetime will have timezone to be set to pytz.utc (so local time + timezone equal to UTC)..
    Some sources of data might give us very rich information, e.g. timestamp + timezone,
    but others only allow to get local time (without knowing real timestamp).
    The logic for extracting local time is described as a list of rules that should be applied
    one after another until one rule is able to extract date time (or until all rules are tried
    without success).

    Currently supported rule types:
      - "exif" - local time is taken using exif tag params["exif_tag"] as obtained with exiftool
      - "path" - time is taken from the filename using a regular expression matching
        - if params["path_part"] is set to "full_path" then full path (as seen by backend container)
          is used for regexp matching instead of just fileanme.
        - if params["custom_regexp"] is specified - that regexp is used instead of default one
          (it is still expecting 6 groups to be matched: year, month, day, hour, minute, second).
      - "fs" - time is taken from file property. Since these are unix timestamps without timezones
        they are always translated to local time using UTC.
        - params["file_property"] must be specified and equal to one of the following:
          - "mtime" - for file modifided time
          - "ctime" - for file created time

    If a rule can't fetch the time (e.g. the exif tag value is not present or path doesn't match
    a regexp) then that rule is considered to be not applicable.

    In some cases it is known that the local time the rule would obtain is not in the desired
    timezone. E.g. video datetime tag QuickTime:CreateDate is by standard written in UTC rather
    than local time. For such cases each rule can optionally have setting "transform_tz" set to "1"
    - in that case this rule should also specify "source_tz" and "report_tz" settings where
    "source_tz" is describing the timezone that the rule is getting and "report_tz" is describing
    the timezone of the location where the photo/video was taken. Both "source_tz" and "report_tz"
    should be one of the follwing:
      - "utc" - UTC timezone
      - "gps_timezonefinder" - the timezone of the GPS location associated with the photo/video
      - "name:<timezone_name>" - the timezone with the name <timezone_name>
    If either "source_tz" or "report_tz" could not be obtained the rule is considered to be not applicable.

    Examples of the rules:
      - Take local time from exif tag "EXIF:DateTimeOriginal" if it is available:

            {
                "rule_type": "exif",
                "exif_tag": "EXIF:DateTimeOriginal",
            }

      - Take UTC time using tag "QuickTime:CreateDate" and convert it from UTC
        to timezone associated with the GPS coordinates (only applies if both
        tag value and GPS coordinates are available):

            {
                "rule_type": "exif",
                "exif_tag": "QuickTime:CreateDate",
                "transform_tz": 1,
                "source_tz": "utc",
                "report_tz": "gps_timezonefinder",
            }

      - Look at the filename and try to extract time from it - treat it as local time
        (it is known that some devices are not using local time here - e.g. some phones
        might use UTC time for video filenames):

            {
                "rule_type": "path",
            }

      - Take UTC time time using tag "QuickTime:CreateDate" and convert it from UTC
        to a fixed timezone "Europe/Moscow" to get local time:

            {
                "rule_type": "exif",
                "exif_tag": "QuickTime:CreateDate",
                "transform_tz": 1,
                "source_tz": "utc",
                "report_tz": "name:Europe/Moscow",
            }

      - Take modified time of the file and get local time using timezone associated
        with the GPS location:

            {
                "rule_type": "filesystem",
                "file_property": "mtime",
                "transform_tz": 1,
                "source_tz": "utc",
                "report_tz": "gps_timezonefinder",
            }

Configuration per-user could be stored as a json field, but for the UI we will have to decide how customizable we want to go. E.g. we can"

Pre-configure some rules and let users add rules from that list and re-order them as them like.
Provide more customizable UI to add new rules (allowing e.g. specifying exiftool tag names as a string) to the reorderable list.

I also think about some extra possible things I can add here (but they would definitely require additional frontend support) - most importantly conditions for the rules:
E.g. each rule could additionally have fields like:
1. "if_path_matches_pattern": "" - if this property is present then image/video path is first compared to the given regexp and only applied if there is a match. Reason: allow some rules to be only specific to a folder or a set of folders. Similarly we could have "if_filename_matches_pattern".
2. "if_exif_tag_matches" - this would provide 2 things: exif tag name and pattern. This could e.g. allow to create rules that are only applicable to a specific Camera etc. (though e.g. same phone might set the tag for image, but not able to set it for videos, still - this might be useful).
But again, the most important part here would be the frontend support.

I went ahead and added condition_path, condition_filename, condition_exif  conditions to be supported by the rules to allow creation of rules that could be only applied to e.g. specific folder(s) based on the full path or based on filename patterns, etc. E.g. one could say that they want to create higher-priority rule based on filename but only if filename contains a specific prefix (or does not contain it using a negative look-arounds: ^(?!PXL_).*$ for filename not starting with PXL_). Also one could create rule to only apply to files with EXIF:Model containing given pattern, etc.

This looks awesome! Thank you for working on this 👍
My view on the priority of the features is the following:

We should have a good default, that works for most people
The next important thing is, that you can reorder and delete/add preconfigured rules
The last thing would be custom rules. I like it as a feature for power users, but most people are not power users.

Parsing file names:
We should clean up the timestamps by giving a range of possible times. What often happened in the past is that we would parse a timestamp, that is far in the future / past, which is obviously not wanted.
I think preconfigured rules for WhatsApp Images and other common apps would be great, as they follow clear schemas.
Parsing Google Photos:
Google Photos gives you a jpg.json file when you download all your images via takeout, where the metadata is saved. That's an edge case, and possibly it's just a separate feature all together.
This could be used to do that: https://github.com/TheLastGimbus/GooglePhotosTakeoutHelper
Not sure how Apple Photos and Amazon Photos behaves on export, but that is something that could be looked into.
Parsing date of folders:
I think some people do not know about EXIF timestamps and sort their images by putting it into folders based on month and year. This could be done with the "path" rule, I think.
For the frontend:
Adding it to the user as a json field is a good idea.
A name attribute for the rules would be great to display it better to the user.

I created a basic mockup of the UI:

Anything you want to add to it?

Thank you for such a quick response, @derneuere . I absolutely agree regarding the priorities (good defaults, simple configuration, advanced configuration).

We should clean up the timestamps by giving a range of possible times. What often happened in the past is that we would parse a timestamp, that is far in the future / past, which is obviously not wanted.

Regarding parsing the filenames I currently use YYYY expectation for the year (and first 2 digits should be either 19, 20 or 21 (I'm an optimist)). It also  still might match weird things like 20210230 (February 30), but it does only match day between 1 and 31, so hopefully such cases should be not very common (good thing would be to add logic to process incorrect dates). If you think this is not enough we definitely can introduce min/max date (on any level - per rule, configurable per user, or just hardcode as a default though I'd feel a bit bad imposing non-changeable defaults here). To be honest I'd say that min date might be more applicable not even to filenames, but more for the filesystem times - e.g. 1970 year from timestamp is much more likely to be just 0 timestamp than genuine file from 1970 :).

I think preconfigured rules for WhatsApp Images and other common apps would be great, as they follow clear schemas.

Could you please clarify this part? I'd love to learn more about these cases.

Parsing Google Photos ...

I was under impression (and sort of still is) that current Librephotos way of extracting data is extracting json sidecar files' data (if you ask exiftool module to give you all tags you will see JSON:... and also I think COMPOSITE:... is something like a merged version (not sure about that, just my guess). One thing I'd add here is that python exiftool module tag naming seems to be different from e.g. using CLI exiftool -a <filename> - say, EXIF:Model is alled Camera Model Name when you use exiftool -a ... - if we allow people to create their own rules it would be nice to somehow let people see e.g. all exiftool tags of a given image.

I think some people do not know about EXIF timestamps and sort their images by putting it into folders based on month and year. This could be done with the "path" rule, I think.

I really like this idea, but it is only very partially supported with the current rules (requires dates to be numerical and all 6 pieces to be present in the order of year/month/day/hour/minute/second for regexp capture groups). Would love to implement something that would support stuff like only giving date but not time with path names (or maybe even just year or year+month). We can discuss this separately, but I don't think any of that would likely to fall under "advanced configuration" by power users.

A name attribute for the rules would be great to display it better to the user.

That sounds like a good thing - and in the backend we can add some logging that is referencing rules' names e.g. for match to clarify how we extracted time for a given file.
Frontend
I like the mockup. I'd probably prefer some simpler things to be shown e.g. for default rules that are auto-added (with maybe some explanation/hints under question mark on hover): something like
Photo local time
Video creation time (+fix timezone using GPS)
From filename
Video creation time in UTC
It is still ok to show more info I think, but it would be nice to have a simple explanation nearby.
I think we should provide at least one of 2 things:

A way to create new rules (even if it is just selecting from a list of predefined rules).
A way to disable/enable existing rules (might be a nice feature for power users too) - if this is enabled we theoretically could just add all simple rules to the list with only a subset enabled.

I think I will test it and then be more specific if something is off. It will probably be an incremental thing.
Here is an exemplary issue regarding WhatsApp Images: https://github.com/LibrePhotos/librephotos/issues/416
Very cool that exiftool already supports that. Didn't know that! Yes, adding all exif tags would be a good thing.

Looks good to me!


ADD SHADERS BACK

What feature do you want to get added on the base engine?
ADD DA SHADERS BACK!!
To test your sight, and reliability, please select the option of what should NOT be requested.
 Shaders are just being softcoded.

funni dab kids

wath are shaders?

wath are shaders?

GLSL code that can create or modify sprites in a way.

wath are shaders?

GLSL code that can create or modify sprites in a way.

Thanks


error code during insallation: 0x80072efd

Microsoft PowerToys version
0.55.2x64
Running as admin

[X] Yes

Area(s) with issue?
Installer
Steps to reproduce
just an error during instalation
✔ Expected Behavior
No response
❌ Actual Behavior
LOG:
PowerToys_(Preview)_x64_20220213111136.log
Other Software
No response

/dup #16437


[Feature request] Windows support

Currently, chatglm.cpp cannot be compiled on Windows (although it works on WSL). It would be really helpful to support Windows.

+1

Just got a Windows machine. Will look into it.

It's weird, I find it work on ubuntu but fail on centos.

win11 with VS2022 is not compiling properly. Please check, thanks.
cmake -G "Ninja" -DGGML_CUBLAS=ON -DCMAKE_BUILD_TYPE=Release .. && ninja all


Fix: add viewed safe only if loaded successfully

What it solves
Resolves #3649
How this PR fixes it
Calls addViewedSafe only if Safe Info was loaded.
How to test it

go to Avalanche
enter the address of a non-existent Safe in the URL
it shouldn't remember this bogus Safe address as a "last viewed Safe"

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 12 (41.67%)  changed or added relevant lines in 3 files are covered.
3 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.03%) to 35.16%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/logic/safe/store/actions/fetchSafe.ts
3
5
60.0%

src/logic/safe/hooks/useLoadSafe.tsx
0
5
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/logic/safe/hooks/useLoadSafe.tsx
1
0%

src/logic/safe/hooks/useSafeScheduledUpdates.tsx
1
0%

src/logic/safe/store/actions/fetchSafe.ts
1
71.88%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
3413

Relevant Lines:
8768

💛  - Coveralls

Thanks for adding the extra tests I requested 💪

Ok, so invalid safes (like safes from another networks) are not saved in the local storage as the last viewed safe or visited safe.
Looks good to me


How train model from scratch?

How can I train model with my own dataset (e.g webFace) from scratch?

@Alireza-Akhavan have you did this from scratch?

@PoonamZ , unfortunately no!


Typed properties refactor.

In the new 3.0 version we removed PHP version 7.2 and 7.3 so we can use typed properties (introduced in PHP 7.4). This PR introduces typed properties everywhere. I also removed some unneeded typehints.

Awesome that you have the willpower to do this 😅
One little thing though: Could you remove the .phpunit.result.cache from VCS?

Good spot! It's removed now.


docs: update the readme to current image names

ops sorry I see this late, otherwise I would probably not have pushed #82
Anyway, I would leave a convenient make all command and some sort of make base -- could also be an example like you can use make <name> to build a template, e.g. make py3.7

I think #82 is fine if you add the naming changes as well :)
maybe we can merge this and you can add the section back w/the updated make syntax in your PR?
thoughts?

I thought we could leave the make all part directly, but it's ok also to re-add it in the other PR :slightly_frowning_face:


Input mapping with empty String causes a FEEL error

Describe the bug
The converter maps an empty input mapping (without a value) to a FEEL syntax error.
As a modeler you use empty input values to initialize local variables with empty Strings.
The mapped result is currently:
<zeebe:input source="=" target="rueckforderungsart"/>

Steps to reproduce
Convert a process with an input mapping like
<camunda:inputParameter name="rueckforderungsart" />

Expected Behaviour
The result is a valid FEEL expression.
Usually the  user wants to initalize a value to
Library version
0.4.3
Camunda version
egal
Camunda Distribution
other
Other Camunda distribution
No response

Usually the user wants to initalize a value to

To what? I would initialize it to null to not determine the data type upfront.

I think it depends on the magic of the type conversion.
We should get the details what happens in Camunda 7 with this input mapping: <camunda:inputParameter name="rueckforderungsart" /> and find a valid init value. I got distracted when I typed it.

A variable is type-agnostic, so initializing it to null will just create an empty variable scope with no data which should be exactly what was intended with an empty value in Camunda 7.


Getting started - Unable to get the code to install and run

Describe the bug
Unable to get the code to install and run. Also, how do I run the code examples?
To Reproduce
Steps to reproduce the behavior:

Git clone the repo and cd into the folder
$ ls
AUTHORS			CODE_OF_CONDUCT.md	LICENSE			dist			examples		package-lock.json	rollup.config.js	test
CATALOG.md CONTRIBUTING.md README.md		docs			node_modules		package.json		src			yarn.lock

Run
$ yarn build

yarn run v1.22.5
$ npm-run-all -p build:*
$ rollup -c rollup.config.js

src/js/index.js → dist/esm/iexjs.js...
┌────────────────────────────────────┐
│                                    │
│   Destination: dist/esm/iexjs.js   │
│   Bundle Size:  138.51 KB          │
│   Minified Size:  138.5 KB         │
│   Gzipped Size:  31.99 KB          │
│                                    │
└────────────────────────────────────┘
created dist/esm/iexjs.js in 14.3s

src/js/index.js → dist/cjs/iexjs.js...
(!) Plugin inject: rollup-plugin-inject: failed to parse /Users/kunalpunjabi/Code/EXPLORATIONS/STOCKS/iexcloud/iexjs/package.json. Consider restricting the plugin to particular files via options.include
package.json
created dist/cjs/iexjs.js in 7s
✨  Done in 24.13s.

Expected behavior
The build to be successful.
Desktop (please complete the following information):

OS: Mac
Browser N/A - console
Version [e.g. 22]

Also, how do I run the code examples?

you ran yarn before yarn build right?

looks like this happens in CI as well, might be a plugin problem:
https://github.com/iexcloud/iexjs/runs/3237147598?check_suite_focus=true

(note that it doesnt actually effect the build, its just a warning)

@timkpaine thank you for the quick response, yarn && yarn build  worked. Still not sure how to get the code running from either CLI or browser

Create a new application for node or browse, npm or yarn install iexjs, and then follow along with any of the examples or the README code.


Add activity feed API

#436  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @danielpgross and the rest of your teammates on  Graphite


Make rust-cache work on all GitHub Runner OSes

The cache action doesn't work on windows or macOS because it relies on sha256sum which isn't installed on mac, and the commands don't work on windows.

Can use the runner.os option to specify different logic for different OSes.
if: runner.os == 'Linux'
if: runner.os == 'Windows'
if: runner.os == 'macOS'


[RoosterTeeth] Add new extractor

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests

What is the purpose of your pull request?

[ ] Bug fix
[x] New extractor
[ ] New feature

Description of your pull request and other information
Added a new extractor for all Rooster Teeth sites. In addition to the video, it extracts the description and the thumbnail. It can download both public and sponsor-only videos (login).

m3u8 download detected but ffmpeg or avconv could not be found. Please install one.

Seems like there was an error with ffmpeg? It extracted the m3u8 URL just fine.

Squash commits when done.

@dstftw Relaxed the regex and squashed the commits: 65855424d3117d971b087935d18bf77b1b0ee0b1

Not actually. You've restricted it. And still capture the group you don't use.

@dstftw Right now, it's not capturing the subdomain group, just matching it. The ?: prevents the capture. Besides, how else can it detect all the possible subdomains?

Wrong. You have inner group that is captured (www|achievementhunter|funhaus|screwattack|theknow).

If you take a look here, only the episode id is matched. Unless I'm misunderstood, the ?: marks the inner group as non-capturing.

If you take a look at the string you'are matching you may notice that you have nothing to capture by your first group. Change it to http://www.roosterteeth.com/episode/day-5-day-5-episode-1-waking-nightmare and see.

Oh okay I see.
How about this: https://regex101.com/r/tH2tR2/2

Just change to ``(?:[\da-zA-Z-]+.)?roosterteeth.comor(?:.+?.)?roosterteeth.com`.

Thanks, changed it.


Keep-Alive flag removed

Keep-alive flag in socket settings removed. This flag is probably  causing problems with node connectivity after network outages, for example, see https://github.com/ergoplatform/ergo/issues/894

Coverage remained the same at 46.984% when pulling 69a650b8fd970ab49b7c0ab378860b07979c1288 on no-keepalive into 332e1f2a262c81ae3c06b28ee145e673efa04bfd on master.


Doesn't handle batch requests

Java library should test and handle batch requests.

Working on the basic version of this one today.


Hosting ASP.NET Core on Full .NET Framework with IIS

This article seems to be talking exclusively about .NET Core. eg. states The bundle installs the .NET Core Runtime,  .

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

ID: ec484002-18c1-6a0d-00de-820d56f038d3
Version Independent ID: 7903ce53-2cbb-f083-7479-c8abc30211a0
Content: Host ASP.NET Core on Windows with IIS
Content Source: aspnetcore/host-and-deploy/iis/index.md
Product: aspnet-core
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @fowl2 ... That's correct. This topic pertains to hosting ASP.NET Core apps on IIS. ASP.NET Core is a different implementation of .NET than .NET Framework. See: Comparison with .NET Framework

Thanks for the confirmation!
So I guess I have two asks then:

This article should make clear which runtime it is targeting.
Information on how to run ASP.NET Core targeting .NET Framework be added (or split into a new page)


GH1: Identify SDK project based on import statement.

Fixes #1

Thanks a bunch! This little project is starting to come together :smile:. I went ahead and just rebased and merged this manually since it was just the solution file that had a conflict.
Figured out the problems I was having locally were due to the VS update changing my test settings to a x86 host which apparently caused the in-proc MSBuild to freak out a little. All is good.


Update to ESLint 6

Update dependencies, because eslint-config-airbnb has been updated for ESLint 6 support 😄

#14

Done in #17


feat: replace alert component

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes on GitPod.

Contribution to UI Component Library #44668

This PR replaces the bootstrap Alert Component with freecodecamp Alert Component.
Note: It still requires few commits for comments removal and to make FlashMessage dismissable.

Hey @Sboonny ,
I have replaced the bsStyle props with variant props and removed closeLabel prop as Alert component is not dismissable, But for the Alert component with id prop, I don't know what is best thing to do. And also the Flash component which uses the Alert component requires to be dismissable So I have commented them for this commit and require your guidance so I can resolve them.

Thank you @Sboonny for your review. I understand the props part now. And once I'm done with that, I'll work on dismissable part and will give you the update.

AlertProps are changed and Dismissable issue resolved.
Also, I did look for unused .alert css classes but they seems to be used in some other files (like client/src/components/profile/profile.tsx). So I haven't removed any css classes.

Optimally we should update the tests so they are not classname dependent.

I understand the tests related to username-change and they are failing because it is not able to file those old .alert and
.alert-* classes.
So should I remove them or update them with new css classes. But I'm afraid that updating them with new classes wouldn't be so specific like they are right now.

updating the CSS classes won't be helpful, because they can have the class and not the styles if building tailwind fails, so the test aren't helpful, and we can change them later and face the same situation. (yes, the current tests aren't helpful)
Personally, I do delete these types of test because they aren't helpful. Ahmad's suggestion is good too, it will make them useful, you can apply Ahmad suggestion and test for CSS property.

the tests will look like something like thisthe success
cy.get(element)
   .should('have.css', 'color')
   .and('match', /var(--green70)/)

the warning
cy.get(element)
   .should('have.css', 'color')
   .and('match', /var(--yellow70)/)

the info
cy.get(element)
   .should('have.css', 'color')
   .and('match', /var(--blue70)/)

the warning
cy.get(element)
   .should('have.css', 'color')
   .and('match', /var(--red70)/)

Hey @ahmaxed can you help me here? I'm stuck at this username-change tests where I don't know what is the best way to write them because I haven't worked with the cypress testing and for that matter any kind of testing framework.

Use data-cy attributes to provide context to your selectors and isolate them from CSS or JS changes.

@pankildoshi, I can take it from here.

@Sboonny, there are a few inconsistencies that I wanted to bring to your attention so they could be addressed in upcoming prs.

There are a few p elements with alert classes that act as alert components.
There link colors for alert components should be consistent with their variant ( after bootstrap migration)

There are a few p elements with alert classes that act as alert components.

I think this one should be handled, before we migrate from bootstrap.
we will need to update the alert component, after this is merged, to allow for it to element change to span or p when needed, and swap them with the ones that aren't the component in the codebase. Similar situation will happen for Button, and Link component.


Proposal: Option to disable automatic top padding for navigation view

Proposal: Add option to disable automatic top padding for navigation view
Summary

When using the navigation view and extending the view into the title bar: CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;
then the NavigationView automatically adds a ContentTopPadding to the layout. This results in the following:

The light blue area is the Content of the NavigationView, and the red dotted area is the ContentTopPadding element automatically added. What I want is to have the light blue area extend to the top of the window.
I'd like to have a simple way to remove this padding, e.g. a bool property or similar on the NavigationView.
Rationale

When I set CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; I often want to expand my content as well into the title bar. As far as I know, to achieve this right now I've got to modify the complete NavigationView style to remove the element, or set a negative margin on the content matching the height of titlebar (which can change so quite a bit of code). A Boolean/value to override/disable this behaviour would be much better.
I also couldn't find any documentation on this, for me quite "magic" and unexpected, behavior. So at a minimum some comments about this in the documentation would be nice.

@yulikl sounds like a dupe but I can't find it. :)

This is tracked by #47. @mrjfalk, please up vote that issue and provide feedback in case it's missing anything.


ci: Add commitsar linter to ensure conventional commits

Oh, conventional commits have their own https://github.com/conventional-changelog/commitlint, I will use it instead


Add test to ensure presence/absence of empty history warning

Bonnie-268 Add test to ensure presence/absence of empty history warning depending on amount of uploadsummaries

So, I didn't see Lizzie's suggestion, but since Matt had gone home, I wrote it up and pushed it so we could discuss.
Then...I saw Lizzie was also concerned about the duplication...and I guess great minds think alike? 😅

@c-monkey great! I like what you did! My suggestion wouldn't have actually worked now that I look at it again. I'm glad you were able to reduce the duplication and do something that did work!


Minification breaks with html chars in inner text

Description
It appears that minify-html breaks when there is html characters in inner text :
Failed at character 281:
Expected tag name.
--------
0|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><meta http-equiv=content-type content="text/html; charset=utf-8"><title>Title Goes Here</title>
This is my web page
 is my web page

1|
 <<<<<<

>|             R

Steps to reproduce
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Title Goes Here</title>
This is my web page

 <<<<<<

' > index.html
minify-html --src index.html

Thanks for raising, great catch. I have just added support for this in version 0.3.8, and it appears to be working now for the provided input.
I was not aware that this was actually allowed, but according to the spec it is: https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
This actually simplifies the logic a bit and makes the minifier even more effective. Great find!


Using Dataloader

This is just a suggestion:
How about using dataloader. This brings the code a little closer to a nice abstraction for SQL queries.

Thanks @Neitsch again for the great work. Could you please resolve the conflict in server/data/database.js and server/data/schema.js? I will merge it after the resolving.

No problem. I like the clean design!

Thanks @Neitsch!


Autosave controller

Problem
After generating the controller address during creating "server setup", the controller address don't save in "SUBSCRIPTION SETTINGS" automatically. This may lead to loose the controller address by user.

Proposal
Save the controller address automatically after generating "server setup", or at least ask user during server setup to save this address
Additionally we can auto add the controller address to SUBSCRIPTION list.

tested on b4c699b

still actual 421bcb719d6ac739db89c01a686600021dcc6a77
more that, the address is regenerated easily in the magic account creation pop-up, leads to loss of controller account


Add addin to website to allow for automatic documentation

Submit a PR to cake-build website to include XML comment documentation for addin

Pull Request - https://github.com/cake-build/website/pull/504


?format=wookiee does not work

Hi @astagi, the url formatting does not properly work.
I tried it out and I get 404 errors. Can you please write a test that mimics the tests we have for urls, but with your rendering? That should help you understand what the bug is, and then fix it.
I've rolled back to a previous version for now.

It doesn't work because it's "wookie" but "wookiee" should be the correct name to use, right?

@phalt I've update my branch https://github.com/astagi/swapi/tree/feature/wookie

Please rebase with the master branch. "wookiee" is the correct spelling.

Oh I haven't seen new commits on the master branch! no problem, sorry for the typo

Rebased https://github.com/astagi/swapi/tree/feature/wookie, do you need a new PR?


PackageId:CPython39.Exe.x64;PackageAction:Repair;ReturnCode:1638;

This issue has been moved from a ticket on Developer Community.

Describe your issue here
===DO NOT EDIT BELOW THIS LINE===
PackageId:CPython39.Exe.x64; PackageAction:Repair; ReturnCode:1638;

Original Comments
Feedback Bot on 2/15/2023, 00:58 AM:
(private comment, text removed)

Original Solutions
(no solutions)

duplicate of https://github.com/microsoft/PTVS/issues/7407


Extract Thumbnails on Startup

It would be nice to have the option to start extracting missing thumbnails when you open the app! 😄

@whyboris Have many people requested this feature?
An alternative option is #4, a Verify Thumbnails button that could be pinned to the main bar.

Sounds good! 👍 I'll look into this!

Related: #205

#64 -- @cal2195 you said:

I'd like these function to be pinable to the button bar! (needs new icons)

I think this is a better idea than to have auto-extract-on-start-up 😅
While we could have both, I'm thinking about the annoying scenario of a user opening an old hub and it starts adding new files, locking the app while the green progress bar extracts all the meta. If the user exits out in the middle, perhaps there will be some weird state the app will be in that will be hard for the user to recover from ...
I'm uneasy about anything happening automatically, even when there is an explicit toggle for it.
I think the simplest solution is to allow the users to add the rescan button to their toolbar and then click on it whenever they feel ready.
This solves another problem -- which of the two scan options would the automatic rescan use? The add only or add and remove? Making the decision for the users makes me uneasy, but providing two different options makes it a headache.
Your suggestion of simply letting users surface the rescan button to the toolbar is the best 👍 👍 👍
I'll implement it now and close this issue 👍 Please feel free to comment as we can change the behavior from what I described here too 👌

I prefer your solution! 👍


Test issue

To help us fix your issue, please provide the information in the below template. If something causes a crash, provide as much information as you can gather.
Just imagine: we do not know what you are doing!

Note: There is often little we can do without a minimal reproducible sample of the issue, so please provide that in a standalone git repository and link it here.

Steps to reproduce

Expected behavior
Tell us what should happen
Actual behavior
Tell us what happens instead
Crashlog
If something causes an exception paste full stack trace + Exception here
Configuration
Version of the Plugin: e.g. 1.0.0 / 1.0.1-alpha3
Platform: e.g. iOS 10.1 / Android 4.4 / ... (including version!!! e.g. Android 5.1 / i0S 10)
Device: e.g. HTC Sensation /i Phone 7 ...

Hi @TAMHAN,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.


Unable to attack particular AP providers.

Hello ZeroBeat,
I hope you are well. First, I want to thank you for your work, it is outstanding tool, and has very high accuracy in terms of attack and capture. I have hacked almost all neighbourhood with it. Thank you so much for coding it, I am python scripter but this is another level of tool.
Using hcxdumptool I have been largely successful but with only a limited type of APs. I live in the United Kingdom.
The Access Points I have been able to attack with 90% accuracy (and crack the hash with hashcat) are the Sky routers. I have obtained PMKID's from Talk Talk provider too, but haven't worked on them with custom masks.
I wanted to ask, if you have time, why I have been unsuccessful in capturing PMKID from BTHub and Virgin Media ISP.
The exchanges are taking place as such:
00:13:35   6 6231451a2d98 e45740cd9090 VM6573660 [EAPOL:M3M4ZEROED EAPOLTIME:14706 RC:2 KDV:2]
00:13:35   6 b05cdab43ecc e45740cd9090 VM6573660 [EAPOL:M2M3 EAPOLTIME:10449 RC:2 KDV:2]
00:13:35   6 b05cdab43ecc e45740cd9090 VM6573660 [EAPOL:M3M4ZEROED EAPOLTIME:5077 RC:2 KDV:2]
00:13:55   6 b05cdab43ecc e45740cd9090 VM6573660 [AUTHENTICATION]
00:14:12   6 6231451a2d98 e45740cd9090 VM6573660 [EAPOL:M1M2 EAPOLTIME:16100 RC:1 KDV:2]
00:14:12   6 6231451a2d98 e45740cd9090 VM6573660 [EAPOL:M2M3 EAPOLTIME:12791 RC:2 KDV:2]
00:14:12   6 6231451a2d98 e45740cd9090 VM6573660 [EAPOL:M3M4ZEROED EAPOLTIME:10624 RC:2 KDV:2]
However, I have not had success with obtaining a valid Identifier. Is this because:

These routers do not exchange information like other routers, and authentication processes are different.
I am too far from the APs and the attack is unable to complete efficiently.
Other obscure reasons, such as driver incompatibility or some feature not working (I don't think so).

I use Kali operating system (yes, for everyday use, browsing, I even run Plex Server on it) and it appears everything is working apart from only some models. My monitor interface is ALFA Network AWUS036NH.
Thank you again, I hope to get an answer.

These routers do not exchange information like other routers, and authentication processes are different.
BTHub3-xxxx, BTHub4-xxxx, BTHub5-xxxx, BTHub3-xxxx router transmit a PMKID and you should receive it (PMKIDROQUE)
VMxxxxxxx usually don't transmit a PMKID (except repeater systems).
Additional you should receive some M1M2ROGUE on all captures.
The authentication process is not different.

I am too far from the APs and the attack is unable to complete efficiently.
Just run
$ sudo hcxdumptool -i interface --do_rcascan
and check the HIT count. It should increase on APs in range. If you got no HITs, either no AP is in range or packet injection is not working.
output should look like this:

$ sudo hcxdumptool -i wlp5s0f4u2 --do_rcascan
 BSSID         CH COUNT   HIT ESSID                 [08:08:31]
---------------------------------------------------------------
140708b68f9a  11    14    11 TEST_NETWORK

Other obscure reasons, such as driver incompatibility or some feature not working (I don't think so).
Do a driver test and an injection test:
$ sudo  hcxdumptool -i interface --check-driver
output should look like this:

$ sudo hcxdumptool -i wlp5s0f4u2 --check_driver
initialization...
starting driver test...
driver tests passed...
all required ioctl() system calls are supported by driver

terminating...

$ sudo hcxdumptool -i interface --check-injection
output should look like this:
$ sudo hcxdumptool -i wlp5s0f4u2 --check_injection
initialization...
starting packet injection test (that can take up to two minutes)...
packet injection is working!
ratio: 141 to 94

terminating...

A ratio above 100 to 25 is is workable, but there is room to improve your antenna.
A ratio above 100 to 50 is is standard.
All above - your equipment is nearly perfect.
If one (or both) of the two tests failed or you received a warning, you're running into driver issues and/or your system is misconfigured.

Thank you for your time. The tests undertaken have all passed with flying colours it seems:

I also have captured a PMKID from BThub-3. I have not been successfull with BT-Hub6 with your application, and I have instead used EAPOL cap (cleaned with wpaclean) from deauthentication attack with aircrack suite, then converted into hccapx with hcap2hccapx utility.
Also you mention that VM does not send PMKID, so I guess it is not possible to attack this router clientless. Is it possible with standard deauth attack? I do not know of antoher way to attack this router, as its a popular ISP here in the UK.
I wonder if you have any advice on this, meanwhile thank you for the detailed reply.

It looks like every thing is fine. I can see at least 4 BT-Hubs in your list. Two of them are out of range (0 hits).
If hcxdumptool requested a PMKID from an AP, you should see PMKIDROGUE.
If it captured the PMKID from an authentication sequence between an ACCESS POINT and a CLIENT you should see PMKID.
BTW:
Do not use wpaclean. It will remove important frames from your dumpfile and has several unfixed issues in timestamp handling and handshake detection.
https://github.com/aircrack-ng/aircrack-ng/issues/1958
https://github.com/aircrack-ng/aircrack-ng/issues/1993
https://github.com/aircrack-ng/aircrack-ng/issues/2079
https://github.com/aircrack-ng/aircrack-ng/issues/2067
There is also an issue in PMKID detection:
https://github.com/aircrack-ng/aircrack-ng/issues/2175
hccapx is deprecated and replaced by new hash mode 22000 which covers old hash mode 16800 and old hash mode 2500:
https://github.com/hashcat/hashcat/issues/1816
https://hashcat.net/forum/thread-6661-post-47931.html#pid47931
The format is no longer binary and you can use simple bash tools or hcxhashtool to prepare them for hashcat.
https://hashcat.net/forum/thread-6661-post-48055.html#pid48055
In every case, I recommend to use hcxpcapngtool to convert hashes for hashcat and JtR.

Also you mention that VM does not send PMKID, so I guess it is not possible to attack this router clientless. Is it possible with standard deauth attack? I do not know of antoher way to attack this router, as its a popular ISP here in the UK.
I wonder if you have any advice on this, meanwhile thank you for the detailed reply.

A deauthentication attack is working as long as Management Frame Protection (MFP) isn't activated.
hcxdumptool detect this and use a reassociation attack to get the handshake.
In addition it will attack the CLIENT to request his M2. In that case you should see M1M2ROGUE.
In other words, hcxdumptool will use all attack modes (PMKID, deauthentication, disassociation, M4 fail, reassociation, and M2 request).
To make less noise, an attack is stopped after n trials. We don't want to spam the channel.
You can change that behavior with --stop_ap_attacks=n --resume_ap_attacks=n
example:
$ hcxdumptool -i interface -f 79 -o dump.pcapng  --stop_ap_attacks=6000 --resume_ap_attacks=12000 --essidlist=beaconlist --active_beacon
that is a very, very aggressive mode against APs and CLIENTs

$ hcxdumptool -i interface -o dump.pcapng --disable_deauthentication --disable_ap_attacks --active_beacon
that is a less noisy mode against CLIENTs

than convert the results:
$ hcxpcapngtool -o hash.22000 -E list1 -I list2 -U list3 dump.pcapng
For the first hashcat task try:
$ cat list1 list2 list3 | sort | uniq > list
$ hashcat -m 22000 hash.22000 list

Please notice: That will only convert the best hashes.
You can use --all to convert them all!
$ hcxpcapngtool -o hash.22000 --all -E list1 -I list2 -U list3 dump.pcapng
Additional you can select single hashes by hcxhashtool (by ESSID, MAC, ESSID length and more.....)
This will give you an overview of the converted hashes:
$ hcxhashtool -i hash.22000 --info=stdout

Hello ZeroBeat,
I wanna say.... that was beautiful. Initially had some difficulty with getting any response from the AP, but setting the channels did the trick:
It seemed like there was no response, possibly due to incorrect settings:

adjusting the channel and with proper bssid list all four EAPOL exchanges were made (ANONCE, SONCE+MIC etc)

cleaning things up with your commands made it beautiful:

and everything was written to file for hashcat to work on.
There are things which I still don't understand, like setting the packet frames to be saved to "79." Maybe there are frames which are needed beyond the "64" value instructed in "hcxdumptool -h". Or maybe it is not necessary and all one really needs to save are EAPOL exchanges, or settings "-f 2".
In the initial attack I inputed the "stop_ap_attacks" and "resume" values as instructed, but I felt that this was not necessary as exchanges were made without "aggressive mode." I also removed the option to transmit beacon frames more frequent.
Of course, there is the slight matter of obtaining valid passkey, which can take days, but everything is very clear on at least how the program works on a superficial level (i.e. options and commands). It is all much simpler than airmon-ng and the captures seems cleaner. I am happy with it.

That is fine, but please do not use airmon-ng to set monitor mode for hcxdumptool.
airmon-ng is designed to run with aircrack-ng tools and attack modes and not with hcxdumptool and its attack modes.
airmon-ng run internally iw and iw will add(!) a virtual monitor interface (by NETLINK messages) named wlanxmon and leave the physical interface untouched.
hcxdumptool need a physical interface (not shared, not virtual) and set an own(!) monitor mode. You don't need airmon-ng to do this and you received a clear warning "wlan0mon is probably a virtual monitor interface". That means, some active high preformance - high speed attack modes will not(!) work on this interface.
Will explain the difference between NETLINK messages and ioctl() system calls:
https://www.quora.com/What-are-the-differences-between-netlink-sockets-and-ioctl-calls
Control: ioctl should be your first choice, unless there’s an overriding reason, due to its immediacy and reliable delivery.
Data: For occasional data passing, ioctl should work fine. For bulk data, and especially if you’re look at asynchronous operation, Netlink is preferred.

We control - we don't wan't to share social media cat videos!
f 79 option will dump TCP and UDP traffic, too and hcxpcapngtool can look for additional passwords in the dumpfile. You can remove this option safely (and run defaults - dump all necessary and important frames) if you don't need that feature (usernames from WiFi traffic: hcxpcapngtool -U).
Transmitting BEACONs will force a CLIENT to connect to hcxdumptool. You can receive his M2 without being in range of the CLIENTs ACCESS POINT.
BTW: If an AP is far away (only a few HITs in do_rcascan) you can that channel option (-c) to stay on that channel. You have noticed that this will increase your chances to get PMKID and or EAPOL 4Way handshake.)
I think we can close this report, because it isn't an issue of hcxdumptool, but you can still ask your questions here.

Ok. I know something has got to be wrong here. Please teach me.

Answer is here:
https://github.com/ZerBea/hcxdumptool/issues/178


[FEATURE] : Preloader

Description
The website is awesome, but the website takes few seconds to load the content/images this makes the website appear slow.
I would like to add a preloader to the website, which makes the website look more professional and attractive.
Use Case
The preloader helps the users wait till the website resources are loaded, which helps the website by not letting the website appear slow and odd.
Proposed Solution
No response
Additional Information
would you assign me this issue under GSSOC'24?
Thank you.
Attachments

What is a preloader? @chaanakyaaM, Because we have shimmer loading already in place

By the way if you are still interested in working on this project, let me know via the project's discord, I might have some better issues of level 2 and 3 that you could work on !! @chaanakyaaM

Can you provide the link of the discord channel.

It is the readme @chaanakyaaM

Ok

@krishnaacharyaa , if this is not a valid issue, we can close it.


Gulp Critical task does not wokr

Got a problem with Gulp critical task.
Clone the repo >> run npm install >> run gulp default task >> Everything is ok and working.
then locally run command "gulp critical" just for testing
here got an erro in CLI:
TypeError: (0 , _critical2.default) is not a function
at Gulp. (/Users/MYNAME/MYFOLDER/starterkit/gulpfile.babel.js:247:9)
at module.exports
....
did i do something wrong?
or is there is a bug?
help :)

I get the same error aus @valeriosillari

Just added .stream to the critical pipe, thanks @henningbe.


crawling all links of same domain in Sparkler - best practice

What would be the recommended approach to exclude outgoing links (to other domains) for subsequent crawls in Sparkler by default?

@rainergeissendoerfer
If your list of domains is small, you may configure urlfiter-regex plugin.  More on this (https://wiki.apache.org/nutch/NutchTutorial#A.28Optional.29_Configure_Regular_Expression_Filters)
If you have more domains and wouldn't like to write rules for all the domains (perhaps it is inefficient too), then we need to develop a plugin and add it to sparkler.
Sparkler provides a URLFilter contract which has
boolean filter(String url, String parent) {...}

You may consider https://github.com/USCDataScience/sparkler/tree/master/sparkler-plugins/urlfilter-regex as an example and implement a new plugin to fit your needs. I assume this plugin will be simpler than the regex filter since you just need to add one liner
return new Url(url).getHost().equals(new URL(parent).getHost());

P.S. I created #88 for discussion of plugin. We will be very happy to have you as a contributor :-)

Closing this issue, Use #88 page for the further discussion on this feature


README: December update

Note: This should be merged via github’s web interface so we get a nice and quick way to revert it, when we no longer need it.

:+1 LGTM

Merged as e83c0099aaac27ab440b28bbca2ba1e0ec1a4d04.


unpoller.conf path for Docker

Hello David,
I have spent more than 20hours installing unpoller to Ubuntu 21.04 64bit. It seems that everything is working but Unpollen can not pick up settings from unpoller.conf file. Instead of that it is taking some default config file with URL https://<IP_ADDRESS>:8443: unifi controller. I have UDM Pro...
I have even try to set path with
docker run -v /home/ubuntu/Docker/unpoller:/config/unpoller.conf golift/unifi-poller
Absolutely nothing works.
It tried permissions to folders. Set config to different etc locations....
Last part of Yaml:
unpoller:
container_name: Unpoller01
restart: unless-stopped
image: golift/unifi-poller:latest
depends_on:
- influxdb
- grafana
volumes:
- /home/ubuntu/Docker/unpoller:/config
unpollen.conf:
UniFi Poller v2 primary configuration file. TOML FORMAT
###########################################################
[poller]
debug = true
quiet = false
plugins = []
OUTPUTS
[prometheus]
disable = true
http_listen = "<IP_ADDRESS>:9130"
ssl_cert_path = ""
ssl_key_path  = ""
report_errors = false
dead_ports = false
[influxdb]
disable = false
url  = "http://<IP_ADDRESS>:8086"
user = "unifipoller"
pass = "xxx"
db = "unifi"
verify_ssl = false
interval = "30s"
dead_ports = false
[loki]
url = ""
user       = ""
pass       = ""
verify_ssl = false
tenant_id  = ""
interval   = "2m"
timeout    = "10s"
[webserver]
enable = false
port   = 37288
html_path     = "/usr/lib/unifi-poller/web"
ssl_cert_path = ""
ssl_key_path  = ""
max_events = 200
[webserver.accounts]
INPUTS
[unifi]
dynamic = false
[unifi.defaults]
url = "https://<IP_ADDRESS>"
user = "unifipoller"
pass = "ssssss"
sites = ["all"]
save_sites = true
hash_pii = false
save_ids = true
save_events = true
save_alarms = false
save_anomalies = true
save_dpi = true
save_rogue = true
verify_ssl = false
ssl_cert_paths = []

Rename it to unifi-poller.conf. The documentation is currently ahead of the app. It was hastily renamed.

Uff Uff. Thanks that works instantly. I thought I will give up. It is running nicely on Raspberry Pi 4, ubuntu server 21.04 64bit. I had a problem with Raspbian 32bit as Influx ran one of the raspberry core on 100% and the second was jumping up and down from 40%-100%. Even the swap file is empty now and it is using just 470Mb of memory
Now one core is running on 5% with 471. So it is perfectly suitable for unpoller. I will make an easy install tutorial for it.

Hello,
i have the same problem.
I edited like 20 different versions of the .conf file.
I am using the config file down below, i changed all the variables.
When I run unpoller with this docker command:
$sudo docker run -v /your-local-location/unpoller.conf:/config/unpoller.conf golift/unifi-poller
I get this output:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 2021/07/19 20:13:01 [INFO] Loading Configuration File: /etc/unifi-poller/up.conf 2021/07/19 20:13:01 [INFO] UniFi Poller v2.1.3 Starting Up! PID: 1 2021/07/19 20:13:01 [ERROR] Controller 1 of 1 Auth or Connection Error, retrying: unifi controller: making request: Get "https://<IP_ADDRESS>:8443/": dial tcp <IP_ADDRESS>:8443: connect: connection refused 2021/07/19 20:13:01 [INFO] Poller->InfluxDB started, interval: 30s, dp: false, db: unifi, url: http://<IP_ADDRESS>:8086 2021/07/19 20:13:01 [INFO] Internal web server disabled! 2021/07/19 20:13:01 [INFO] Loki config missing (or disabled), Loki output disabled! 2021/07/19 20:13:01 [INFO] Prometheus exported at http://<IP_ADDRESS>:9130/ - namespace: unifipoller
It is really weird that he uses my defined database but not the new ip addresses that i defined.
Does anyone have a clue what this could be?
Thanks in Advance :-).
Config example:
UniFi Poller v2 primary configuration file. TOML FORMAT
###########################################################
[poller]
Turns on line numbers, microsecond logging, and a per-device log.
The default is false, but I personally leave this on at home (four devices).
This may be noisy if you have a lot of devices. It adds one line per device.
debug = false
Turns off per-interval logs. Only startup and error logs will be emitted.
Recommend enabling debug with this setting for better error logging.
quiet = false
Load dynamic plugins. Advanced use; only sample mysql plugin provided by default.
plugins = []
OUTPUTS
# If you don't use an output, you can disable it.

[prometheus]
disable = false
This controls on which ip and port /metrics is exported when mode is "prometheus".
This has no effect in other modes. Must contain a colon and port.
http_listen = "<IP_ADDRESS>:9130"
Adding an SSL Cert and Cert Key will make Poller listen with SSL/https.
ssl_cert_path = ""
ssl_key_path  = ""
Errors are rare. Setting this to true will report them to Prometheus.
report_errors = false
Record data for disabled or down (unlinked) switch ports.
dead_ports = false
[influxdb]
disable = false
InfluxDB does not require auth by default, so the user/password are probably unimportant.
url  = "http://<IP_ADDRESS>:8086"
user = "unifipoller"
Password for InfluxDB user (above).
If the password provided here begins with file:// then the password is read in from
the file path that follows the file:// prefix. ex: file:///etc/influxdb/passwd.file
pass = "unifipoller"
Be sure to create this database. See the InfluxDB Wiki page for more info.
db = "unifi"
If your InfluxDB uses a valid SSL cert, set this to true.
verify_ssl = false
The UniFi Controller only updates traffic stats about every 30 seconds.
Setting this to something lower may lead to "zeros" in your data.
If you're getting zeros now, set this to "1m"
interval = "30s"
Record data for disabled or down (unlinked) switch ports.
dead_ports = false
To enable output of UniFi Events to Loki, add a URL; it's disabled otherwise.
User, pass and tenant_id are optional and most folks wont set them.
Pick which logs you want per-controller in the [unifi.controller] section.
This is a new feature. Feedback welcome!
[loki]
url = ""
The rest of this is advanced & optional. See wiki.
user       = ""
pass       = ""
verify_ssl = false
tenant_id  = ""
interval   = "2m"
timeout    = "10s"
Poller has an optional web server. To turn it on, set enable to true. If you
wish to use SSL, provide SSL cert and key paths. This interface is currently
read-only; it just displays information, like logs, devices and clients.
Notice: Enabling the web server with many sites will increase memory usage.
This is a new feature and lacks a UI, enabling only recommended for testing.
[webserver]
enable = false
port   = 37288
The HTML path is different on Windows and BSD/macOS.
html_path     = "/usr/lib/unifi-poller/web"
ssl_cert_path = ""
ssl_key_path  = ""
How many events per event group to hold. 200-2000. Use fewer with many sites.
With 1 site, you'll have a max total of 9 event groups; 1 per plugin, 4 per site.
Each site adds 1 event group for each of these inputs that is enabled:
save_ids, save_events, save_anomalies, save_alarms.
max_events = 200
By default the web interface does not require authentication. You can change
that by adding a username and password hash (or multiple) below.
To create a hash, run unifi-poller with the -e CLI argument. See Wiki for more!
[webserver.accounts]
username = "password-hash"
captain = "$2a$04$mxw6i0LKH6u46oaLK2cq5eCTAAFkfNiRpzNbz.EyvJZZWNa2FzIlS"
INPUTS
[unifi]
Setting this to true and providing default credentials allows you to skip
configuring controllers in this config file. Instead you configure them in
your prometheus.yml config. Prometheus then sends the controller URL to
unifi-poller when it performs the scrape. This is useful if you have many,
or changing controllers. See wiki for more.
dynamic = false
The following section contains the default credentials/configuration for any
dynamic controller (see above section), or the primary controller if you do not
provide one and dynamic is disabled. In other words, you can just add your
controller here and delete the following section. The internal defaults are
shown below. Any missing values will assume these displayed defaults.
[unifi.defaults]
URL for the UniFi Controller. Do not add any paths after the host:port.
Do not use port 8443 if you have a UDM; just use "https://ip".
url = "https://<IP_ADDRESS>:8443"
Make a read-only user in the UniFi Admin Settings, allow it access to all sites.
user = "unifipoller"
Password for UniFi controller user (above).
If the password provided here begins with file:// then the password is read in from
the file path that follows the file:// prefix. ex: file:///etc/unifi/password.file
ex: file:///etc/unifi/passwd.file, windows: file://C:\UserData\Unifi\Passwd.txt
pass = "unifipoller"
If the controller has more than one site, specify which sites to poll here.
Set this to ["default"] to poll only the first site on the controller.
A setting of ["all"] will poll all sites; this works if you only have 1 site too.
sites = ["all"]
Enable collection of site data. This data powers the Network Sites dashboard.
It's not valuable to everyone and setting this to false will save resources.
save_sites = true
Hash, with md5, client names and MAC addresses. This attempts to protect
personally identifiable information. Most users won't want to enable this.
hash_pii = false
Enable collection of Intrusion Detection System Data (InfluxDB/Loki only).
Only useful if IDS or IPS are enabled on one of the sites. This may store
a lot of information. Only recommended for testing and debugging. There
may not be any dashboards to display this data. It can be used for annotations.
Enable this only if using InfluxDB or Loki. This will leak PII data!
save_ids = false
Enable collection of UniFi Events (InfluxDB/Loki only).
This may store a lot of information. Only recommended for testing and debugging.
There are no dashboards to display this data. It can be used for annotations.
This is a new (June, 2020) feature. Please provide feedback if you try it out!
Enable this only if using InfluxDB or Loki. This will leak PII data!
save_events = false
Enable collection of UniFi Alarms (InfluxDB/Loki only).
There are no dashboards to display this data. It can be used for annotations.
This is a new (June, 2020) feature. Please provide feedback if you try it out!
Enable this only if using InfluxDB or Loki. This will leak PII data!
save_alarms = false
Enable collection of UniFi Anomalies (InfluxDB/Loki only).
There are no dashboards to display this data. It can be used for annotations.
This is a new (June, 2020) feature. Please provide feedback if you try it out!
Enable this only if using InfluxDB or Loki.
save_anomalies = false
Enable collection of Deep Packet Inspection data. This data breaks down traffic
types for each client and site, it powers a dedicated DPI dashboard.
Enabling this adds roughly 150 data points per client.  That's 6000 metrics for
40 clients.  This adds a little bit of poller run time per interval and causes
more API requests to your controller(s). Don't let these "cons" sway you:
it's cool data. Please provide feedback on your experience with this feature.
save_dpi = false
Enabling save_rogue stores even more data in your time series databases.
This saves neighboring access point metrics in a dedicated table or namespace.
save_rogue = false
If your UniFi controller has a valid SSL certificate (like lets encrypt),
you can enable this option to validate it. Otherwise, any SSL certificate is
valid. If you don't know if you have a valid SSL cert, then you don't have one.
verify_ssl = false
You may provide a list of SSL cert files (PEM format) that you expect your
controller to use. As long as one of the certs you provide here shows up in
the cert trust chain the controller presents it will be accepted and allowed.
These files may be re-read while poller is running.
Example: ssl_cert_paths = ["/path/to/cert.pem", "/another/cert.pem"]
ssl_cert_paths = []
The following is optional and used for configurations with multiple UniFi controllers.
You may repeat the following [[unifi.controller]] section as many times as needed to
poll multiple controllers. Uncomment the entire section including [[unifi.controller]].
Omitted variables will have their values taken from the defaults, above.

#[[unifi.controller]]
url         = "https://<IP_ADDRESS>:8443"
user        = "unifipoller"
pass        = "unifipoller"
sites       = ["all"]
save_sites  = true
hash_pii    = false
save_ids    = false
save_events = false
save_alarms = false
save_anomalies = false
save_dpi    = false
save_rogue  = false
verify_ssl  = false
ssl_cert_paths = []

Same solution: rename your config.

Same solution: rename your config.

Actuelly i tried it and it doesnt work with the same output.

Does the location of the config file matter?

The location matters. It can be in one of two locations, both defined on this line of code: https://github.com/unpoller/poller/blob/master/build_unix.go#L6
The default/empty config exists in the container at /etc/unifi-poller/up.conf. You can either overwrite that one, or put it in /config at /config/unifi-poller.conf.

The location matters. It can be in one of two locations, both defined on this line of code: https://github.com/unpoller/poller/blob/master/build_unix.go#L6
The default/empty config exists in the container at /etc/unifi-poller/up.conf. You can either overwrite that one, or put it in /config at /config/unifi-poller.conf.

Hello,
thanks for the fast reply.
I tried to put the config file in /etc/unifi-poller/up.conf as well as /etc/unifi-poller/unifi-poller.conf
My command to run looked than like that: sudo docker run -v /etc/unifi-poller/unifi-poller.conf:/config/unifi-poller.conf golift/unifi-poller
Now i get more error messages like this: cnfg unmarshal: unmarshaling file [/config/unifi-poller.conf]: Near line 39 (last key parsed 'poller.Password'): expected key separator '=', but got 'f' instead
Any Ideas?
Thank You in Advance.

That means the config file format is bad, or you're passing something that is not a poller config file. Can you share the file? Also, try this:
sudo docker run -v /etc/unifi-poller:/config golift/unifi-poller

That means the config file format is bad, or you're passing something that is not a poller config file. Can you share the file? Also, try this:

sudo docker run -v /etc/unifi-poller:/config golift/unifi-poller

Hmm weird,
this is my config file: https://github.com/unpoller/unpoller/blob/master/examples/up.conf.example
I will try the other command later.
Thank You for your help.

That's not your config file.

That's not your config file.

This is the example config, i dont want to share my passwords.
Everything in this file is the same except the variables like IPs and Passwords.

Good luck.

Good luck.

Well the command sudo docker run -v /etc/unifi-poller:/config golift/unifi-poller  doesnt work.
Why do you need my exact config file?
Everything is identical except the variables.

I don't. I suspect the error message telling you line 30 is malformed should be enough for you to troubleshoot and fix the problem.

I don't.

I have tried to uncomment the line after that i get the next error on another line and so on.
So I dont think i cant fix it on my own.
I would if i think i could do anything but i ran out of ideas.

Try using env variables instead of a config file.

Try using env variables instead of a config file.

Ok thx i will try it later.

Try using env variables instead of a config file.

Hello now i can test the variables.
Could you show me an example on how to write those variables?
Thx :-)

docker run -e UP_UNIFI_DEFAULT_URL=http://localhost:8443 -e UP_UNIFI_DEFAULT_PASS=superSecret123 golift/unifi-poller

The two variables shown here are the bare minimum, but you probably need to also pass UP_INFLUXDB_URL if you're using InfluxDB. All variables are documented here: https://unpoller.com/docs/install/configuration

docker run -e UP_UNIFI_DEFAULT_URL=http://localhost:8443 -e UP_UNIFI_DEFAULT_PASS=superSecret123 golift/unifi-poller

The two variables shown here are the bare minimum, but you probably need to also pass UP_INFLUXDB_URL if you're using InfluxDB. All variables are documented here: https://unpoller.com/docs/install/configuration

Hello,
thanks but i tried with the config file a little bit more.
I got it to work now.
I shranked down my config file to this:
[unifi.defaults]   url  = "https://controller_url:8443"   user = "read_only_user"   pass = "read_only_user_password"   save_dpi = true [influxdb]   url  = "http://influxdb_url:8086"   db = "database_name"   user = "influxdb_user"   pass = "influxdb_password"
And placed it in /etc/unifi-poller/unifi-poller.conf
Than I start the unpoller with: sudo docker run -v /etc/unifi-poller:/config golift/unifi-poller
Thank You for your help and sorry for wasting your time.
Hope it helps someone else too.
:-)

Rename it to unifi-poller.conf. The documentation is currently ahead of the app. It was hastily renamed.

That worked for me using Docker Compose as well, thanks!

the documentation is littered with careless mistakes and gaps.
look man, i get that this isn't your business but you are wasting peoples time. at least have a disclaimer that the documentation is just plain incorrect and you are likely to spend hours figuring it out.
either that or care enough to spend an hour running through a fresh install for each path and correcting the documentation.

@beezub99 Submit a PR with the disclaimer. Happy to include it.

i deleted my comment because it was harsh. but i would be happy to take note of the documentation errors i found and send them over if that helps.

 One day I'll care enough to update the readme to that affect. PRs welcome.

thats fair enough, i didn't realize they had done that. definately in line with how they operate. i apologies for the post, I think i was taking my frustration of them out on you.

Sorry it's been frustrating. Not many people 'know'. I just slipped away. If you join discord I'm happy to provide assistance there.

updated this in 2.4.x
https://github.com/unpoller/unpoller/blob/master/pkg/poller/config.go#L39
/etc/unpoller/up.conf

docs will get updated soon-ish


Remove version: foxglove.studio version 1.17.1

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/foxglove/studio/releases/download/v1.17.1/foxglove-studio-1.17.1-win-arm64.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 720)


Bigger main.dart.js than expected on flutter web using freezed.

We're currently using Flutter 3.3.4 and we're having some issues with generated code size, specifically for flutter web.
The current size of our main.dart.js file is around 9MB (2.3MB with gzip), built with flutter build web --release
One interesting thing I've noticed, is that we're heavily using the package freezed (^2.2.0 currently).  I'm not sure whether I should open issues in the freezed repo or dart-sdk or flutter, since to me, it looks like there could be further optimizations with dart2js on this.
I do see a lot of code looking like this in the main.dart.js
$16$setEmail$setError$setFirstName$setGender$setLastName$setLoading$setMiddleName$setOrganisationId$setPassword$setPasswordRepeat$setProfessionId$setProfessionSince$setRecoveryCode$setSecurityAnswer$setTitle$setWorkplaceId(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){return this.a.$16$setEmail$setError$setFirstName$setGender$setLastName$setLoading$setMiddleName$setOrganisationId$setPassword$setPasswordRepeat$setProfessionId$setProfessionSince$setRecoveryCode$setSecurityAnswer$setTitle$setWorkplaceId(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)},

for all our classes generated with freezed. As you can see, the names aren't minimized/obfuscated much.
After some brief analysis of the generated code, I do see some occurrences of these pragma instructions
class __$$_SetSecurityAnswerCopyWithImpl<$Res>
    extends _$CreateProfileEventCopyWithImpl<$Res, _$_SetSecurityAnswer>
    implements _$$_SetSecurityAnswerCopyWith<$Res> {
  __$$_SetSecurityAnswerCopyWithImpl(
      _$_SetSecurityAnswer _value, $Res Function(_$_SetSecurityAnswer) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? securityAnswer = null,
  }) {
    return _then(_$_SetSecurityAnswer(
      securityAnswer: null == securityAnswer
          ? _value.securityAnswer
          : securityAnswer // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

I imagine those vm:prefer-inline pragma instructions aren't used for web? I don't even know if these are relevant to be honest.
I'm looking for potential advice on what to do here, or what else I should be looking for. Could there be a missing compilation switch on our end?
Also, I know the answer is most likely going to be "it depends" and pretty variable, but do you have a ballpark expected size (of main.dart.js) for a medium-big sized flutter web app? Am I scraping too much for performance, or is there something definitely wrong here?
cc: @kevmoo

After doing some tests locally with shelf_gzip, I figured we didn't enable gzip on our production site 🤦. Turns out our main.dart.js is around 2.3MB now. Which is much more acceptable IMO.

Here's an idea. Take a look at https://developer.chrome.com/docs/devtools/coverage/
Try to use...a LOT of your app in one session. And see how much of the compiled output is hit.
Just curious...

After playing with my app for a few hours, trying to hit most code paths, the coverage tool settled around 40% unused code. I could probably shave around 5-8% if I really dig deeper I feel like, but so far I haven't been able to do that.

That's good context. Our JS tree shaking algorithm can only be so aggressive, while also being conservative.
Have you enabled https://dart-lang.github.io/linter/lints/avoid_dynamic_calls.html on your code? (Don't go TOO crazy with it if you have a lot of failures. But it might be interesting to do a before/after comparison after fixing 10-20...if you have any)

Yes we've enabled that.

To investigate:

easy way to drop pkg:intl languages that are not used
The weird long strings showing up in the app (pkg:freezed?)

So far the best I've been able to come up with was this
I've added a symlink to build/main.dart.js in the root of the repo just so you can see it.
Turns out as you mentioned in our other discussion, we do save a bit of space by removing the toString() override feature from freezed.
Now I still see some occurrences of method names/parameters not being minimized. I suspect it is because of the way dart2js does its thing with named parameters.
In our code base we do tend to mix bloc with freezed a lot. (Representing the bloc state with a freezed DTO class, bloc events with a freezed union type).
Freezed does generate when and map methods, with the actual event names. I'm thinking this is why we're seeing non-minified names in there. Would that make sense?

There's not much we can do on the Flutter side. This issue is better suited for either Dart SDK or freezed.


Issue running, Index out of range.

Hi, I am trying to run a buffered command, and when I call my python script I get this:
line 78 in bCommand
readySig = s.read(0)[1]
indexError: index out of range
any ideas?

It should be s.read(1)[0]
This tells pySerial to read 1 byte from the serial device into an array and return the zeroth byte in the array.

Okay, thank you. When writing, and testing this software did you connect directly to the device or were you using a system interface module like the 506C?

I don't remember exactly but I think I connected through some sort of interface which connected to multiple devices.


15-minute Santa feedback

[ ] Snow and animations can be very laggy on the web; implement them more efficiently or have a setting to disable
[ ] Skip button after reaching goal? Some players don't have an interest in getting high scores and just want to proceed
[ ] Restart level button. Useful when realizing you've messed up. It's possible now by pausing -> back to main menu, but that wasn't obvious during playtesting.

[ ] Different meters refilled by different types of businesses. Hunger<->restaurants, tired of climbing hills<->massage therapy, etc
[ ] Some kind of multiplayer, likely antagonistic
[ ] Race against grinch, who steals delivered presents or closes roads or closes stores or downgrades apartments to SFHs

[ ] It would also be helpful to have a “continue run after time limit option” to see how much longer it’d take to get to 5k, so one knows how much they need to shave off

From @Hsalat:

[ ] Consider restricting zoom level range for difficulty -- if you can zoom out and plan a route better, it gets much easier
[ ] More houses colors besides SFH and >1 unit
[ ] Create pins on the upzone map just to help people plan a route


[EPIC] Generic routing

Currently, we have some ad-hoc logic in some places to reroute some requests from one node to another, but we need to solve this problem with a more generic solution.
We want to put a router in front of all the requests that decides whether a request can be satisfied by the node or should be forwarded to another one.
Goals:

any node can satisfy any request.
efficient routing, i.e., minimizing the number of hops
remove ad-hoc logic and reduce boilerplate

Linked issues:

[x] #2705
[x] #2706

Do we keep this on 0.6?

After landing #3332 and #3243, routing requests has become much easier, so we're close. What needs to be added is the ability to route a request from an actor on node A to another on node B, but we can tackle that later. There's no pressing need for this.


Report the correct number of pushes on the feeds

Since the number of commits in the Action table has been limited to 5
the number of commits reported on the feeds page is now incorrectly also
limited to 5. The correct number is available as the Len and this PR
changes this to report this.
Fix #16804
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Agh the opening comment needs to be updated with my findings in the attached bug report.
Essentially we made a mistake in al the referenced pr meaning that the number of commits stopped being stored.
We can use Len where it was previously written but otherwise we need to use the length of commits and change to store the Len again.
This means that some pushes have lost their information about how many commits were sent unless anyone can figure out where else that data might be.
Perhaps heatmap has it?

Codecov Report

Merging #16811 (f36ad45) into main (1cd4a3b) will decrease coverage by 0.01%.
The diff coverage is 70.00%.

@@            Coverage Diff             @@
##             main   #16811      +/-   ##
==========================================
- Coverage   45.50%   45.48%   -0.02%
==========================================
  Files         762      762
  Lines       85940    85983      +43
==========================================
+ Hits        39108    39113       +5
- Misses      40521    40556      +35
- Partials     6311     6314       +3

Impacted Files
Coverage Δ

modules/templates/helper.go
51.36% <0.00%> (-0.18%)
:arrow_down:

routers/web/repo/setting.go
14.41% <0.00%> (-0.02%)
:arrow_down:

modules/repository/commits.go
82.85% <100.00%> (+1.03%)
:arrow_up:

modules/util/timer.go
42.85% <0.00%> (-42.86%)
:arrow_down:

modules/git/repo.go
43.31% <0.00%> (-4.40%)
:arrow_down:

services/archiver/archiver.go
54.47% <0.00%> (-4.40%)
:arrow_down:

modules/git/log_name_status.go
61.98% <0.00%> (-0.52%)
:arrow_down:

services/pull/pull.go
41.78% <0.00%> (-0.41%)
:arrow_down:

cmd/embedded_stub.go
0.00% <0.00%> (ø)

modules/public/dynamic.go
100.00% <0.00%> (ø)

... and 33 more

Continue to review full report at Codecov.

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

I could write a migration to "backfill" and attempt to recalculate Len but I'm not certain if it's the right thing - as it won't necessarily be right.
I suppose we could actually make the Len field a string, so that for any actions that represent commits/pushes but don't contain a Len whilst do have len(Commits) >= setting.UI.FeedMaxCommitNum  we set the Len to "≥" + setting.UI.FeedMaxCommitNum

I don't think we should restrict the commit list in pushUpdates.
actionNotifier.NotifyPushCommits uses the commits and it may be reasonable to limit the list
indexerNotifier.NotifyPushCommits does not use the commits and it may an error if the list was stripped
webhookNotifier.NotifyPushCommits uses the commits and it may be reasonable to limit the list
Now the question is if both limits should be identical. Personally I think webhooks should get more data than the ui notification.
For webhooks Github [1] and Gitlab [2] deliver 20 commits. Gitlab adds a total_commits_count attribute with the real count.
So it may be good to limit the list inside NotifyPushCommits only and provide a TotalCommitsCount for the receivers.
[1] https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push
[2] https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#push-events