I don't quite understand how to use it

Hi! I'm interested in your program. I tried to set it to cache rimword in the ini file, but it doesn't seem to work (or I'm doing something wrong). Can you record a video guide on how to use prefetch for programs other than firefox?
p.s. reading your wiki, I found a mention of file ParseProcmonLog.py but I do not see it in the 4.0.1 release

upd1: Found ParseProcmonLog.py
upd2: Still don't understand how to make it work.

By my imagination, user first look at main page then:

How to use
prefetch.ini
PrefetchFolder

PrefetchFolder Literally says what folder you want to prefetch.
Example:
[PrefetchFolder]
FirefoxAppData=C:\\\Mozilla\\AppData
FirefoxProgramFiles=C:\\Mozilla\\Program Files

ExcludeFolder

Literally says what folder you DON NOT want to prefetch.

PriorityIncludePattern

When you still want to include certain files from already excluded folders.
Start with simple, this config will get you a at least work instance,
by remove all values from ExcludeFolder and PriorityIncludePattern,
the two is used to set advanced rules instead of prefetch anything.
[PrefetchFolder]
FirefoxAppData=C:\\\Mozilla\\AppData
FirefoxProgramFiles=C:\\Mozilla\\Program Files
[ExcludeFolder]
[PriorityIncludePattern]

About "FirefoxAppData" and "FirefoxProgramFiles"

See array wiki, key name is not matter,
it just requires unique key name to let program know how many values out there.

ParseProcmonLog.py

This additional program is used to set more advanced rules, because one discovered powerful of regex.
You may need to familiar the basic (step 2~5), then go advanced.

Download of ParseProcmonLog.py
ParseProcmonLog method is way too complex for public people who not an experienced programmer.
For example, the relationship between python, program exe, logs, systeminternals, filter...
However, gifted people will magically utilize it without any education.
I do forget to mention where did I put the file.

Some settings are way too basic to forget to document them:

[ ] PrefetchFolder
[ ] ExcludeFolder
[ ] PriorityIncludePattern

And:

[ ] Fix: Forget to mention download of ParseProcmonLog.py

Hello,
So, after I removed everything from ExcludeFolder and PriorityIncludePattern, prefetch seems to work. First, it scanned the folder for 5 seconds, and then 11.8 seconds of prefetching went on. During these 11.8 seconds, prefetch was loading the disk by 30-40%. After the prefetching was finished, I decided to run the rimworld, but I don't think I saw any difference in loading speed. Is this supposed to be like this, or did I do something wrong again?

Probably caused by : libstdc++-6.dll ( libstdc___6!ZN9__gnu_cxx27__verbose_terminate_handlerEv+18d )
Windbg ^
QObject::killTimers: timers cannot be stopped from another thread
terminate called after throwing an instance of 'std::bad_alloc'
terminate called recursively
what(): std::bad_alloc
Program "[15092] prefetch.exe" program ended with code 3 (0x3).
VC22 ^

Disk usage not go to 100%
Windows 10 task manager "Process" tab show disk usage of all disk device.
For example, if you got 2 disk, then one disk maximum will be 50%.
Go to "Performance" tab, and click one of the disk,
this time, disk usage is accurate.
If disk usage still not go to 100%, try increase thread numbers:
[Thread]
MaxThreadCount=16

Default is your CPU cores, if you have a dual core cpu, default 0 means 2.
If you have hyper thread enabled, default 0 means 4.
The value is still low, some disk can handle more thread, so they go to 100% usage.
Thread value target is 100% and no more,
for example, 8 thread is 96%, 9 thread is 100%, then do not go 10 thread.
No difference in loading speed
You spend 5.59+11.8 seconds on all files of RimWorldWin64 by not filter them.
For example, my Firefox instance takes 53.2+55.67 seconds to scan and load.
That means:

You've got a high performance disk
RimWorldWin64 is a relative small size game
The game well packaged its resource, 4K random read is reduced
(A well packaged game could reduce its ACL overhead, so scan take no time)

Compare to a game, Firefox drop dll, config, and database everywhere,
each of them usually don't greater than 1 MB.
Remember that sequence read are not bottleneck of a HDD, but random read is.
Look at the task manager during game loading,
you should notice that disk usage should always be 0%.
Because resource are already in RAM.
In this case, CPU decompress resource speed is the bottleneck.
You may need a better CPU.
prefetch.cache.ini
This file is used to cache scan result, so you don't go through file tree at 2nd time.
When you go through file tree to list all file, ACL is the maximum overhead so it can be slow.
ACL is operating system need to confirm do you have the permission to even know the file exist.
Instead, with a cache, you get the file directly without run ACL to know exist.
User interface
There is similar relationship in software world, be like:

7z GUI and 7za, tar
GitHub Desktop and git
Windows file explorer and dir, ls

The project has no development team, I must choose the style of "do less to do more".
So the program have relative good API to let you write your own GUI or inject additional feature.
For example, compile as a console application and use python or something to send text to stdin interface.
The program crash directly with no error check is a side effect,
I simply not possible to predict any potential bug.
Dashes crash
#52 new issue created, it should be solved once I plan to code.
I know it's critical, but I can't take action immediately.
Since you have the source code, you can add some code to read_thread.cpp.
Look at line 37 bool ReadThread::run_SearchExclude(),
Add an extra check, if filePath contains -, return true to skip this file.
However, because this is a crash, you may need to use Qt debugger,
and LAST_KNOWN_POSITION macro to find real crash point.
QTimer warning
#53 new issue created, but I think when QTimer warning is print,
the program already crashed. QTimer must be destroyed by the operating system.
During normal run, this message should not show.
Compile in 64 bit
Unless you have a >= 3.5 GB file to prefetch, x64 only run slower in my imagination.
Prefetch most deal with random read files which often smaller than 1 MB.
64 bit is a compiler issue, if you use correct compiler, you can get 64 bit exe.
Not require to modifying source code.
I've also not include Linux compile, although it's possible to run on Linux.
Compare to do anything personally, I prefer to leave the possibility to let people do their interest.
Folders with many files
Did the program crash? Or just run slow.
It's normal to slow when folder and files amount go large.
That's how an HDD is slow, and how NTFS slow in ACL overhead.
Prefetch itself already try to use multi thread.

Folders with many files
Did the program crash? Or just run slow. It's normal to slow when folder and files amount go large. That's how an HDD is slow, and how NTFS slow in ACL overhead. Prefetch itself already try to use multi thread.
Prefetch is utilize the time while you are not using PC. For example, you power on the computer, then go to breakfast, when you're back, files are already in RAM, although they did take 2+ minutes to load.

Yes, the program crashed, and my guess is that it's because of the large number of files (although I could be wrong since when I prefetch rimworld there were 48306 lines in the prefetch.cache.ini file) because prefetch crashes when I scan the folder with the stable diffusion neural network and the folder with my anaconda virtual environments.
I am using Windows 11, Ryzen 5 5600X, GTX 1660 6GB GDDR5 10Ghz, 32 GB DDR4 Ram CL16.

Holy[beep], I never imagined such a program can be useful when you are trying to machine learning AI on HDD.
But it makes sense.
To debug, I have few ideas:

Look at these file, if one of them >= 3.5 GB, use a x64 build, this is 32 bit out of memory
You've mentioned when path contains "-", it will crash
Too many files beyond limitations of QT ini file
Too many files beyond limitations of C++ int<PHONE_NUMBER>)

You may also 7-zip your problem folder and prefetch config,
send them to me via BitTorrent, Mega online storage, OneDrive share, Syncthing, or anything you familiar with.

Folders with many files crash issue created #56, related discussion go to that issue.
Path contains "-" crash issue created #52, related discussion go to that issue.
Lacking document issue created #54, related discussion go to that issue.

You've mentioned when path contains "-", it will crash

About that, it was just a coincidence. Since my stable diffusion folder was called "stable-diffusion-webui", I thought it might be the "-", but no, after I removed all the dashes by renaming the folder, the program kept crashing.

You may also 7-zip your problem folder and prefetch config, send them to me via BitTorrent, Mega online storage, OneDrive share, Syncthing, or anything you familiar with.

Well, there might be a problem with that. I can send the prefetch folder, but the Stable Diffusion neural network folder weighs 39.7GB and anaconda weighs 75.5GB.

@AndreyRGW Then Syncthing is the only choce.
Share your folder to Syncthing address P3JPFOT-AGSUKMA-SO3MUHN-DJOLHDJ-7UBNI3G-XEL3XST-UUBTR4K-VRUABQQ
You can continue to use these folders without compress them to take twice space.
This address is 7x24 online, once you open Syncthing, transfer will begin and keep update.

@mhtvsSFrpHdE I think I sent it

@AndreyRGW I don't see a request, go to Syncthing web management UI:

"Add Remove Device"
Type address to "Device ID"
Give a nickname to "Device Name"
You can now click on your folder, Edit, Sharing, Check the device just added
Wait until I confirm request

@mhtvsSFrpHdE I made a torrent file, I think it will be faster that way.
Anaconda3.zip

@AndreyRGW I don't see there is a speed problem with Syncthing, cross-country network just be like that.

@AndreyRGW I don't see there is a speed problem with Syncthing, cross-country network just be like that.

Ah, ok.

@AndreyRGW With BT, you can only push a bunch of files at a time, but Syncthing allow delta update, it basically is "Sync" software, work like OneDrive, but decentralized. So I can get future file updates without download another giant torrent.

Minidump created by windows
prefetch.exe.11076.zip

@AndreyRGW Look like the Connection Type is Relay right now, if you have dedicated IP, try forward 22000 port TCP and UDP.
Or if you don't, I have a private relay server doesn't limit speed (public relay often come with anti abuse)
Settings, Connections, Sync Protocol Listen Addresses, paste the following text and OK
tcp://<IP_ADDRESS>:22000, quic://<IP_ADDRESS>:22000, relay://i.americansdyg.com:22067/?id=BBX4JOK-SVMV7Z7-SBF7TAN-JUXEXRP-WXAIAOU-YJG5NMS-T6YTMW3-QF3WTQT&pingInterval=1m0s&networkTimeout=2m0s&sessionLimitBps=0&globalLimitBps=0&statusAddr=:22070&providedBy=

@mhtvsSFrpHdE  I don't have a dedicated ip. And with these settings I get i/o timeout.

@mhtvsSFrpHdE I don't have a dedicated ip. And with these settings I get i/o timeout.

I check the relay server, it's just updated it's address. Domain TTL is 40 minutes, and I just connected to new address.
You can use nslookup -debug i.americansdyg.com, and you'll know when you will get new address.
    ANSWERS:
    ->  i.americansdyg.com
        canonical name = americansdyg.oicp.net
        ttl = 2321 (38 mins 41 secs)    // <- here

When this counter go to 0, new address will arrived.

@AndreyRGW Oh, I see it begins!

@AndreyRGW If you can confirm "-" in path is not the problem, then obvious this is 32 bit out of ram.
A not yet completed download ~syncthing~wd-v1-3-float32.ckpt.tmp is 3.97 GB.
~syncthing~torch_cuda_cu.dll.tmp is 885 MB.
~syncthing~torch_cuda.dll.tmp is 833 MB.
Prefetch use multi thread, that means it has the possibility to acquire 3.97 GB + 885 MB + 833 MB,
total 5.64 GB, x64 is necessary.
I think 4.0.2 or above build will provide x64, I just not thought of this possibility before.

Or I may add a buffer, read 100 MB each time, instead of load the entire file.

What if I turn on large address aware?

I don't think that will work in your scenario.
I just see a new file created, ~syncthing~model.ckpt.tmp is 3.97 GB too.
If this file goes into prefetch with ~syncthing~wd-v1-3-float32.ckpt.tmp,
maximum ram usage can go up to 7.94 GB.
That option may only allow you to not crash at 3.75 GB, 32 bit default is crash at 2 GB.

What if I turn on large address aware?

I don't think that will work in your scenario. I just see a new file created, ~syncthing~model.ckpt.tmp is 3.97 GB too. If this file goes into prefetch with ~syncthing~wd-v1-3-float32.ckpt.tmp, maximum ram usage can go up to 7.94 GB.
That option may only allow you to not crash at 3.75 GB, 32 bit default is crash at 2 GB.

I see. I will wait for 64bit version then)

By the way, prefetch can't magically speed up all of your 108 GB files.
It just accesses these files once, so they will reserve in RAM by operating system.
Look at your task manager, Performance, Memory,
There are value named "Available" and "Cached".

Available
How much IDLE RAM can be used as cache
Cached
How much file already in RAM, our mission is to move file from disk to cached
Cached will never be greater than Available

108 GB is greater than 32 GB. If you have 22 GB available at the time,
after prefetch done, only last 22 GB of 108 GB will remains in RAM.
Others just be overrides between each other.
Haven't considered if your AI program eats 24 GB, you end up with only 8 GB available.
That's why filter rules comes in. They help you pick up most slow files.
For an HDD, they basically are small random files.
For example, plugin-container.exe is 297 KB, AccessibleHandler.dll is 180 KB.
 If you have 22 GB available at the time, after prefetch done, only last 22 GB of 108 GB will remains in RAM.

Actually, the main files I wanted to add to prefetch in total weigh 12GB, so in theory, my 32GB of RAM should be enough.


[Do Not Merge] Enable signon jenkins rake tasks

Part of https://trello.com/c/BrKRdn4f/495-rebuild-gov-uk-app-deployment-pipeline
Missed in https://github.com/alphagov/govuk-puppet/pull/5191
These are only needed in integration and production.

I've DNM'd this because it's possible that Puppet would be deployed before the application deploy config was updated/deployed and the tasks would be scheduled twice


#2137 - Full Time Work Question - Bug

The conditional is not applied in the panel rather applied in the question below, so fixed it right now.

👍


[Bug]: Typeahead for Select not taking only ItemText

Environment
Developement/Production OS: macOS 15.1.1 (24B91)
Node version: 22.6.0
Package manager<EMAIL_ADDRESS>Radix Vue version: ^1.9.11
Vue version: ^3.5.13
CSS framework: ^3.4.16

Link to minimal reproduction
https://github.com/Ericlm/radix-select
Steps to reproduce
Create a Vue project with Radix and create a Select Component. Within the <Select.Item> components, add the Select.ItemText with some content.
const fruits: [name: string, emoji: string][] =
  [
    ['Apple', '🍏'],
    ['Banana', '🍌'],
    ['Orange', '🍊'],
    ['Pineapple', '🍍'],
    ['Watermelon', '🍉'],
    ['Strawberry', '🍓'],
    ['Blueberry', '🍋'],
    ['Blackberry', '🍑'],
    ['Raspberry', '🍁']
  ]

 <Select.Root>
      <Select.Trigger
        class="inline-flex justify-center gap-x-1.5 rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50">

        <Select.Value placeholder="Select a fruit" />
      </Select.Trigger>

      <Select.Portal>
        <Select.Content :side-offset="4" class="bg-white w-56 rounded-md shadow-md" position="popper">
          <Select.Item v-for="fruit in fruits" :value="fruit[0]" :key="fruit[0]">
            <kbd>
              {{ fruit[1] }}
            </kbd>

            <Select.ItemText>
              {{ fruit[0] }}
            </Select.ItemText>
          </Select.Item>
        </Select.Content>
      </Select.Portal>
    </Select.Root>

Describe the bug
With this setup, typeahead works perfectly, but if some text (or an emoji) is added outside of the ItemText, it doesn't work as it's now part of the typeahead. And it doesn't work either with the text-value props.
Expected behavior
Typeahead should only take into account the content of the Select.ItemText, or the text-value.
Context & Screenshots (if applicable)
No response

From what I saw, the issue is in the SelectContentImpl.vue file, where the content of the Select is passed to useTypeahead, where it includes the emojis, not only the <ItemText> part of the content.


Left and Right Click Same Time

I cannot left + right click at the same time when Pointer Events is enabled in the browser. Setting window.PointerEvent=null allows InteractionManager to fall back to mouse events and both onClick events to fire properly.
Pointer events do not to seem trigger another click event when one is already pressed but other events will have the updated button info. For example - https://jsfiddle.net/us6kn78p/3/

Just in case this is related to some sort of browser implementation issue, what browser are you having this issue in?

I am using Chrome 58.0.3029.110. Firefox has Pointer Events disabled by default so no issues there. Issue is also present in Edge.

Anyway, this behaviour is as designed in the PointerEvent spec: note https://www.w3.org/TR/pointerevents/#chorded-button-interactions
and there is a converstation about this very issue on the official w3c github: https://github.com/w3c/pointerevents/issues/33
So, pointerdown only ever fires when that element has gone from nothing pressed, to something pressed. Likewise, pointerup only fired when the element has gone from something pressed to nothing pressed.
Think of 'pointermove' more of a 'pointerchange' (they kept the move name to keep consistent with mouse events). If pointerdown has been fired, and whilst holding a button down you press a second button down, a pointermove event is guaranteed to be fired with the correct .buttons value.
 Almost getting to a point of 'should we ignore actual pointer events and just normalise mouse and touch events instead' due to the problems actual pointer events are causing


Non-master default branch

failed to fetch .travis.yml

https://lint.travis-ci.org/phpredis/phpredis
Here the default branch is develop.
Could you detect the default branch during fetching?

Duplicate of #29


Add device and version inquiry for Launchpad Mini and Launchpad S

This moves the device/version inquiry code from the Launchpad MK2 into a shared location, fixes it up, and uses it for the 3 devices which should support it. The Launchpad Control may also support it, but I don't have one to test with. This does unfortunately mean pattern matching and destructuring these is a little more annoying (because of the shared types) but it does let us share a pretty big chunk of code.
While I was in the area, I also cleaned up the matching code for the MK2.

If you want to check the version info, most of these devices have an "advanced mode" where you can boot into the bootloader by holding the right-most 4 top control buttons when plugging it in. If it works there should be 2 lit-up pads in the bottom left corner. Pressing 1 will make "Bootloader" scroll by then the version, pressing the other will make "Firmware" scroll by then the version.


:bug: fix(radio-button): on mutation set col sizes

Current Behavior

Expected Behavior
A bug happened!
Steps to Reproduce

Version
13
Browsers
No response
Device
No response
Code Reproduction URL
No response
Additional Information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

/cib


Is it possible to use fastai library without jupyter notebook ?

I tried to train some network using fastai library without jupyter notebook, but got stuck on ploting figures, for instance, learn.recorder.plot() from matplotlib ? and also is there any flexibility to lodge output in custom logger?
Thank you.

https://forums.fast.ai/t/how-to-plot-fastai-genereted-figure-from-matplotlib/48780/2


Test

I think this can be improved

Definitely!
propose how.

[laugh]         Fredrik Wetterhall reacted to your message:

From: milanavuckovic @.>
Sent: Wednesday, January 31, 2024 12:10:29 PM
To: CLIMAAX/crabook @.>
Cc: Fredrik Wetterhall @.>; Author @.>
Subject: Re: [CLIMAAX/crabook] Test (Issue #1)
Definitely!
propose how.
—
Reply to this email directly, view it on GitHubhttps://github.com/CLIMAAX/crabook/issues/1#issuecomment-1918984024, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQREL7IVI43HERSQ4OABH23YRIYDLAVCNFSM6AAAAABCRP4M3CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJYHE4DIMBSGQ.
You are receiving this because you authored the thread.Message ID: @.***>


Adding buoyancy

Adding Gazebo's Buoyancy plugin to the world.
PTO and Heave Cone volume should come to 0.3139 m^3 and 0.1928 m^3, respectively. Also, updated center of buoyancy from #31. Since collision won't be used for anything else right now, made all the collision boxes to be a cuboid.

To run:
ign gazebo mbari_wec.sdf

Another thing I should have mentioned before is that the ultimate test for the buoyancy should be to remove the joint that's currently preventing the model from sinking.
The buoyancy added in this PR should be tuned so that when the joint is removed:

the model doesn't sink - if it does, we'll need to add more collisions or increase the ones we have
the model doesn't fly away - we'll need the graded_buoyancy for that, so the buoy stops floating when it reaches the plane between the water and the air.

Judging by past experience, getting to the right balance may be very tricky and we may need to iterate on it every time something changes in the model. Let's see how the first pass goes and adjust as we go.

Sneak peek of buoy submerged :)


Avoid overwriting Base.convert

I will of course not merge before all checks pass, which is contingent on #15


Allow customization of Aeon form defaults

Is your feature request related to a problem? Please describe.
Branching from https://github.com/RockefellerArchiveCenter/request_broker/issues/228, and pending any migration to using the Aeon API directly for requests, the Grouping / Concatenation / FirstValue settings, the Reading Room defaults, and the Duplication defaults are likely candidates for institutional customization.
Describe the solution you'd like
Either configuration variables to localize these settings, or settings editable in the Django application.
Describe alternatives you've considered
The alternate approach of using the Aeon API to directly write to Aeon seems like a subsequent effort to me, following a low-effort implementation of configuring the form-based interaction.
Additional context
n/a

We should also note in the configuration that the effective selection of Grouping / Concatenation / FirstValue settings is dependent on the Aeon GroupRequestsByLocation key:
https://support.atlas-sys.com/hc/en-us/articles/360011919533-Submitting-Requests-via-EAD-Finding-Aids
If this key is set to "No", the Grouping* fields are ineffective/irrelevant.


feat: update image label with actual kernel version

Since we use differing kernels from upstream, we should be properly setting the ostree.linux label on the image to reflect the actual kernel within the image.

I haven't checked yet, but I think we could add this to akmods images as well.

While we're at it, version is using date right now, which is fine -- but it would be nice if it also included commit or build number so two builds on the same date have different version strings.

While we're at it, version is using date right now, which is fine -- but it would be nice if it also included commit or build number so two builds on the same date have different version strings.

that's fine, but lets make that a distinct issue, probably start in main?


graphiql-spring-boot-starter not work

i had  add graphiql-spring-boot-starter as a dependency to a boot application.but it didn't work.

@guanzhenxing what version of spring boot are you using?

@guanzhenxing you can refer to issue #2

@shishuwu thx, i haved use graphql-java project instead

The correct dependencies are as follows:
<!-- GraphQL -->
<dependency>
    <groupId>com.embedler.moon.graphql.boot.starter</groupId>
    <artifactId>graphql-spring-boot-starter</artifactId>
        <version>2.0</version>
</dependency>
<!-- GraphiQL -->
<dependency>
    <groupId>com.embedler.moon.graphql.boot.starter</groupId>
    <artifactId>graphiql-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

In the readme the groupid is missing starter at the end.


feat: support horizontal and vertical auto-scaling

The Kubernetes community has been working on the auto scaler for a long time. They have had the HorizontalPodAutoScaler GA and provided a CRD and the controller of the VerticalPodAutoScaler. These auto-scalers targets the workload resources such as Deployment and StatefulSet. But we will scale the RisingWave instance, which contains four components and multiple groups of workload resources. Therefore, there're two options for implementing the auto-scaling:

Leverage the pod auto-scaler provided by Kubernetes and ignores the replicas defined in the RisingWave spec when the auto-scalers are enabled. We need to define the behavior when auto-scaler is enabled/disabled and ensure there're no ambiguities.
Define new CRs ourselves and re-implement the trigger and scaling progress by operating the RisingWave resources directly. This lets us have more control over the progress, e.g., we can have a customized policy for triggering the scaling, and there will be no ambiguity, but we need to do a lot of work that the community has done.

Either option makes sense to me. Since we don't have much effort, I think we have to decide what to do.
References:

HorizontalPodAutoScaler
VerticalPodAutoScaler

cc. @Nebulazhang @twocode

#204 is HPA related.


Flutter opening in chrome instead of emulator

Hi, I have android studio installed along with a working emulator, however when I run my app in VScode, it opens in chrome instead of the emulator. Here is my launch.json file
{     // Use IntelliSense to learn about possible attributes.     // Hover to view descriptions of existing attributes.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387     "version": "0.2.0",     "configurations": [         {             "name": "darussalam_app_v0",             "request": "launch",             "type": "dart"         }     ] }

Hi @FaisalAhmed123
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


:newspaper: Updates repo links in README

Changes Unknown when pulling b5617f250c84035d1df2bf7170c8e10bda954d18 on jt/readme into ** on master**.


FR: V2 Truck Builder - Phase 3

Description
A 360 image view of a truck in the configurator
Sliding navigation bar to be able to see views from all angles of the trucks
User Story
As a business owner, I want to be able to see a 360 view of the truck that I am about to configure, so that I have the best possible understanding of how it looks and its different features.
Acceptance Criteria

Navigation slider bar to rotate the image
Image rotation follows the direction of the sliding navigation arrow when it is dragged to either side
Follow the format and development of #214 where we have the same functionality

#147  Existing slider - code to be edited for #214
Multiple 2D images instead of 3D model
Max 8 images per truck (same criteria as 214)

Open Questions

Inquire about solution direction with Adobe

Assumptions

HL estimate based on:

Only seven truck images
All images have the same background

Desired View

https://www.figma.com/file/oNwe2jHIICPMIe551EY62l/Mack-Reskin---Full-Project?node-id=2243%3A159073&mode=dev

@shirin27 Can this one be moved to the backlog, please?

Kamino cloned this issue to hlxsites/vg-macktrucks-com


JAVA-1263: Eliminate memory copies in SnappyFrameCompressor and use netty's allo…

…cator for allocations
Motiviation:
Snappy allows to use ByteBuffer for compress/decompress when direct buffers are used. At the moment a memory copy to heap buffers is done, which is wasteful.
Modification:
Use ByteBuffer for compress/decompress when possible and allocate the buffer from the ByteBufAllocator of netty which may be a pooled implementation.
Result:
Less memory copies == Better performance.

I noticed a small difference between this PR and #726 is that this checks if the input buffer is a direct buffer and then behaves accordingly when creating the output buffer (whether to use heap buffer or direct buffer).   For some reason (still debugging) when using -Dio.netty.noPreferDirect=true performance takes a really big hit.  Will get a profile and share why shortly.

@tolbertam which one take a big hit.. This one or #726 ?

Ah yes, sorry I should have clarified, it is this one.  Maybe i have something misconfigured, but JFC is showing heapBuffer() allocating a lot of memory outside TLAB:

For context previously the combined memory allocated without -Dio.netty.noPreferDirect=true is around 330MB in new TLAB after 1 million writes.   With the system property ~1TB was allocated outside TLAB after ~60k writes.

@tolbertam ha! I know why ;) Because I suck... Let me fix the bug :)

@tolbertam pushed an update... Please check again, I think this is fixed now

@tolbertam PTAL again buddy :)

Ah, I see what you did there!  Trying it out now and will let you know how it goes :)

@tolbertam yep basically I not calculated the max length correctly

Looking great!   Some numbers recorded from 1 million op stress with the following configurations:
pre: Existing code
post: This PR
pre_npd: Pre with -Dio.netty.noPreferDirect=true
post_npd: Post with -Dio.netty.noPreferDirect=true
There are a few things I need to look into:

why decompress() allocates more in the write cases for the new code (maybe some small overhead when the response payload is small?).

why compress() is so small in the post_npd cases, guessing it has something to do with how i'm parsing the flight recording (heapBuffer allocates outside TLAB, and I think I'm capturing that right, but could be wrong).  I think it might be because the HeapArenas are already created (i see 9 objects outside TLAB that were created by other parts of code.

     pre_write: TLAB Size: compress(): 642.79MB decompress(): 137.69MB combined: 780.48MB, which is 07.74% of overall:   9.85GB
    post_write: TLAB Size: compress(): 139.28MB decompress(): 190.87MB combined: 330.15MB, which is 03.76% of overall:   8.58GB

 pre_npd_write: TLAB Size: compress(): 615.91MB decompress(): 134.00MB combined: 749.90MB, which is 06.48% of overall:  11.30GB
post_npd_write: TLAB Size: compress():  21.50MB decompress(): 193.15MB combined: 214.65MB, which is 02.23% of overall:   9.40GB

---

     pre_read : TLAB Size: compress(): 185.45MB decompress(): 511.39MB combined: 696.84MB, which is 08.15% of overall:   8.35GB
    post_read : TLAB Size: compress(): 125.78MB decompress(): 160.83MB combined: 286.61MB, which is 03.34% of overall:   8.38GB

 pre_npd_read : TLAB Size: compress(): 227.82MB decompress(): 498.09MB combined: 725.92MB, which is 07.98% of overall:   8.88GB
post_npd_read : TLAB Size: compress():  13.75MB decompress(): 213.96MB combined: 227.71MB, which is 02.14% of overall:  10.40GB

---

     pre_mixed: TLAB Size: compress(): 459.93MB decompress(): 320.22MB combined: 780.15MB, which is 08.89% of overall:   8.57GB
    post_mixed: TLAB Size: compress(): 151.64MB decompress(): 194.06MB combined: 345.70MB, which is 04.14% of overall:   8.16GB

 pre_npd_mixed: TLAB Size: compress(): 461.39MB decompress(): 299.57MB combined: 760.96MB, which is 08.61% of overall:   8.63GB
post_npd_mixed: TLAB Size: compress():  22.59MB decompress(): 210.88MB combined: 233.48MB, which is 02.69% of overall:   8.47GB

Another thing I noticed is that when using -Dio.netty.noPreferDirect=true that on the decompress path we are still working with Direct ByteBufs.  Might be somewhere in the driver code path where we are calling direct explicitly, so the non-direct path is not exercised.  I'll look into that but not something to do with this PR.

@normanmaurer, ahh i see, that makes sense.  I did some debugging to see where things were allocated on the read path and found it here in AbstractByteBufAllocator#ioBuffer
    @Override
    public ByteBuf ioBuffer(int initialCapacity) {
        if (PlatformDependent.hasUnsafe()) {
            return directBuffer(initialCapacity);
        }
        return heapBuffer(initialCapacity);
    }

If I use -Dio.netty.noUnsafe=true, I might be able to exercise that path, trying it out.

Looks like that worked!  I'll give it a spin.

Looking good, in all cases the overall memory allocation is cut at least in half.  In the noPreferDirect/noUnsafe cases the existing pool arenas are reused.
It does seem odd how in the 'write' case decompress uses more memory with this patch, but it is probably a consequence in there being a little more overhead when there is little/no payload in the response?   This also happens on the LZ4 PR too, I think it is ok.

pre: Existing code
post: This PR
pre_npd_u: Pre with -Dio.netty.noPreferDirect=true -Dio.netty.noUnsafe=true
post_npd_u: Post with -Dio.netty.noPreferDirect=true -Dio.netty.noUnsafe=true

       pre_write: TLAB Size: compress(): 642.79MB decompress(): 137.69MB combined: 780.48MB, which is 07.74% of overall:   9.85GB
      post_write: TLAB Size: compress(): 139.28MB decompress(): 190.87MB combined: 330.15MB, which is 03.76% of overall:   8.58GB

 pre_npd_u_write: TLAB Size: compress(): 558.51MB decompress(): 129.94MB combined: 688.45MB, which is 06.39% of overall:  10.52GB
post_npd_u_write: TLAB Size: compress():  21.52MB decompress():  31.42MB combined:  52.94MB, which is 00.58% of overall:   8.92GB

---

       pre_read : TLAB Size: compress(): 185.45MB decompress(): 511.39MB combined: 696.84MB, which is 08.15% of overall:   8.35GB
      post_read : TLAB Size: compress(): 125.78MB decompress(): 160.83MB combined: 286.61MB, which is 03.34% of overall:   8.38GB

 pre_npd_u_read : TLAB Size: compress(): 286.68MB decompress(): 486.23MB combined: 772.91MB, which is 08.30% of overall:   9.10GB
post_npd_u_read : TLAB Size: compress():  18.34MB decompress():  28.46MB combined:  46.81MB, which is 00.53% of overall:   8.63GB

---

       pre_mixed: TLAB Size: compress(): 459.93MB decompress(): 320.22MB combined: 780.15MB, which is 08.89% of overall:   8.57GB
      post_mixed: TLAB Size: compress(): 151.64MB decompress(): 194.06MB combined: 345.70MB, which is 04.14% of overall:   8.16GB

 pre_npd_u_mixed: TLAB Size: compress(): 442.32MB decompress(): 286.99MB combined: 729.31MB, which is 08.10% of overall:   8.79GB
post_npd_u_mixed: TLAB Size: compress():  24.79MB decompress():  34.16MB combined:  58.94MB, which is 00.73% of overall:   7.91GB

@tolbertam can you give some details about the "write" case ? what exactly this is all about ?

I should have included that here.  The scenario is as follows:
I'm using cassandra-stress against a single node on cassandra trunk with the following parameters:
tools/bin/cassandra-stress <mode> n=1000000 -rate threads=500 -mode native cql3 compression=snappy

Recorded allocation profiling using JFC with the following parameters to cassandra-stress (profile)
-XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=$JFR,maxsize=10G,maxage=1d,disk=true, \
-XX:StartFlightRecording=defaultrecording=true,settings=allocation_profiling.jfc \

The modes used are 'write', 'read', and 'mixed'.   Each write inserts 5 34-byte blob columns for a key, and the read and mixed workloads read the data back.  So in the 'write' case, we expect at least 170 bytes to compress, very little to decompress (since we get an empty result back), where in the read case it is the opposite, and the 'mixed' case is a mixture of both.

@tolbertam so what you say is that if you test the write case decompress(...) will be called with a very small buffer and with this pr the allocations are bigger compared to before ? can you tell me if we go in the isDirect() block or not ? And also if you use the PooledByteBufAllocator for this test or not ?

so what you say is that if you test the write case decompress(...) will be called with a very small buffer and with this pr the allocations are bigger compared to before ?

I think that is what is happening.  There is very little coming back in the response payload in the write case since there are no rows (since it was an insert query).  So using ByteBuffer instead of a byte array maybe introduces a very small overhead that wouldn't otherwise be noticeable if you actually had some payload to decompress.  I don't think we need to optimize around that case though.

can you tell me if we go in the isDirect() block or not?

In the post case it does, its only when i used -Dio.netty.noUnsafe=true that it doesn't (i.e. post_npd_u_write)

And also if you use the PooledByteBufAllocator for this test or not ?

I am not, but I think if I used that the memory allocations would be reduced and look a lot like when I was using -Dio.netty.noPreferDirect=true since heapBuffer uses a pooled buffer allocator.   Using -Dio.netty.allocator.type=pooled should kick that into gear right?  I'll give it a shot.

Guess I was wrong about that, we are using PooledByteBufAllocator already.

For context, the previous implementation:

I see, I might have misunderstood the benefit initially of using ByteBuf making use of a pooled  implementation (this is a bit new to me).  In the case of using a pooled implementation there isn't actually new bytes being allocated as it can re-use the memory allocated from the pool, there is just some overhead in creating new DirectByteBuffers in internalNioBuffer (duplicate() / slice()).
In the write scenario,  decompress() with the previous implementation didn't allocate much to begin with (137.69MB overall), where in the read scenario it did (511.39MB).   With the changes, the overhead in creating new DirectByteBuffer objects surpasses that of the previous implementation where it was creating tiny byte arrays and then wrapping them.  Where in the case where there is actually data to decompress (read) that overhead does not surpass it (511.39MB vs. 160.83MB).
The allocations are basically the same in all three modes (read, write, mixed) for each compress and decompress within some margin.  This makes sense given that a pooled byte buf allocator is used
compress() post:
write: 139.28MB
read: 125.78MB
mixed: 151.64MB

decompress() post:
write: 190.87MB
read: 160.83MB
mixed: 194.06MB

compared to the previous implementation where it was more of a function of the size of the request/response payloads:
compress() pre:
write: 642.79MB
read: 184.45MB
mixed: 459.93MB

decompress() pre:
write: 137.69MB
read: 511.39MB
mixed: 320.22MB

Hopefully I'm understanding that right.

Created a combined PR with commit from this and #726 with some additional changes, thanks!


{Request} Unknown Senders tab

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @monicow in #requests.

Dupe: https://github.com/BlueBubblesApp/BlueBubbles-Android-App/issues/579
you literally duped another ticket that you created


Document new setup for Ubuntu 16.04 LTS

This took me a long time to figure out, and I didn't know where else to dump this knowledge, so here goes.
Some of the information on the Installing C++ page is no longer applicable, at least to Ubuntu 16.04 LTS. I found rumblings and bits and pieces around the Internet, and filled in a bunch of gaps, and this is the result.

Install Exercism per the Getting Started page.
Install GCC and CMake as per the Installing C++ page.
Install a package called libboost-all-dev:
sudo apt-get install libboost-all-dev
Install Boost 1.59. Install exactly this version and not a later one as implied on the Installing C++ page as both earlier and later versions will not work with CMake 3.5.1. The Samuel Bachmann PPA mentioned on the Installing C++ page (and the associated commands) will not work for Xenial Xerus (16.04 LTS) because it was never updated to, so download the source from Boost's Download page for Boost 1.59.
Extract the tar archive containing Boost 1.59
tar -xf boost_1_59_0.tar.gz
-- OR --
tar --bzip2 -xf boost_1_59_0.tar.bz2
Move the extracted directory to /usr/local:
sudo mv boost_1_59_0/ /usr/local/
Open your shell config file; for example, if you're running Bash (the default in Ubuntu 16.04 LTS), you might open your .bashrc file in an editor like Text Editor:
gedit ~/.bashrc
Add these lines at the end of your config (still assuming Bash here) to let CMake know where your Boost installation is (though not sure if $BOOST_LIBRARYDIR is necessary):

# Boost (for CMake and Exercism)
export BOOST_ROOT="/usr/local/boost_1_59_0"
export BOOST_LIBRARYDIR="$BOOST_ROOT/boost"

Reload your shell config file (assuming Bash, yet again):
source ~/.bashrc
Navigate to your Boost directory:
cd $BOOST_ROOT
Run the bootstrap.sh script:
./bootstrap.sh
Run the b2.sh script (my machine is old, but it took about 30 minutes to complete for me):
/.b2.sh
Assuming you have not already done so, navigate to the folder you're keeping Exercism's CPP exercises in and download the first exercise:
exercism download --exercise=hello-world --track=cpp
If you have not already done so, create the exercise's files as per the Running the Tests page.
If you have not already done this, either, use CMake to create the Unix Makefiles (include the quotes):
cmake -G "Unix Makefiles"
If you already attempted this once, delete these files from your exercise's folder:

CMakeFiles/
cmake_insall.cmake
CMakeCache.txt

Once you have completed the exercise and want to build, simply run the make command:
make
There will be a lot of warnings, but if you did the exercise properly, the project will build successfully, and the output will end like this:

[ 66%] Building CXX object CMakeFiles/hello-world.dir/hello_world.cpp.o
[100%] Linking CXX executable hello-world
Running 1 test case...

*** No errors detected
[100%] Built target hello-world

I know lots of people were having issues with newer versions of Visual Studio and Windows 10, as well, so I hope this helps you at least find a direction to go in.

I think for you step 12 you need to run:
./b2 install
At least that is what I had to do on my machine.

We've removed our dependency on Boost, see #233. The setup now is much simpler. Closing this.


Add docs on PYTHIA_DATASET_DIR

Closes https://github.com/ProjectPythia/pythia-foundations/issues/143 by adding info to the README for the pythia-datasets repo on how to specify a custom data cache location.

@ktyle & @brian-rose, Sorry 😧 I hit the "merge" button too early :)...

@andersy005 no worries! We'll let @ktyle enjoy his holiday and call this done.


added html skeleton with bootstrap classes

This is a University directory website that helps users navigate through websites easily and find their dream University,
currently, there are three main pages, "The Search page, The result page, and the details page" with a fixed navigation help users navigate through the website, all parts of the pages are linked together.
the main language is Html with CSS.

I took the typo and colors from the original website as required, and all breakpoints and column changes are like the original website, basically, for the small screen sizes I used bootstrap but for bigger breakpoints, I used CSS Grid and flexbox,
and also I used CSS selectors and semantic HTML tags.

I took the typo and colors from the original website as required, and all breakpoints and column changes are like the original website, basically, for the small screen sizes I used bootstrap but for bigger breakpoints, I used CSS Grid and flexbox,
and also I used CSS selectors and semantic HTML tags.

Thanks for the review and I like to tell you that I did these improvements:
1/Added icons to the four steps page.
2/Added photos to the About Us page
3/Fixed Typo in the readme.


Reduce encryption qps

Synchronizing encryption controllers is expensive because they pull data directly from the servers to get the most recent data.
By default, the controllers resync every 60 seconds. However, tighter loops can be enforced on dependencies. For example, the authentication operator reconciles its resource every 20 seconds.
This PR introduces two wrappers. One for reacting to changes only if an RV has changed and the other one for ignoring updates to nodes since the node's names cannot change.
This allows us to save QPS both on the encrypted and unencrypted clusters.
In the future, we might push it a bit further and avoid QPS entirely when the encryption is disabled.

/assign @sttts

/close
https://github.com/openshift/library-go/pull/1059 merged


Branch tracking not working

Hey,
Branch tracking (up and down arrows) are not working, and I don't know why. I tested on different machines (ubuntu and macos) and got the same result.
When I make a new commit I don't see the UP arrow, and when I have a new remote commit I don't see the down arrow.
I'm a new zsh user, so maybe I'm missing some basic zsh config?
Thank you.

It's also not working on my machine. -> Ubuntu 14.04
$ZSH_THEME_GIT_PROMPT_AHEAD and $ZSH_THEME_GIT_PROMPT_BEHIND variables are set correctly.

In my case i must call "git remote update" to fetch the refs from remote. After that the prompt shows all needed data.

What you should do is compare the output of zsh-git-prompt with what you get by issuing git status -sb. If you see remote information with that command, but not on the prompt, then it's a bug. Otherwise, you have to setup branch tracking correctly for this to work. Feel free to reopen if you are sure that this is a bug.


Page.navigate hangs with angular application

Component
Version

Operating system
Manjaro Linux

Node.js
8.9.4

Chrome/Chromium/...
64.0.3282.140

chrome-remote-interface
0.25.5

Is Chrome running in a container? NO
When navigating in an angular application, the call to Page.navigate hangs forever.
I bundled a minimal script that triggers this bug: https://gist.github.com/m-rousse/de42a69db1405d82a919689778329c12
If I add a void Page.navigate({url: 'http://localhost:8123/index.html#!/next'}) before line 10 of main.js, the call is successful and the navigation is resumed.
If I reload the page in the browser (using F5), it does also resume the script.
While debugging, I noticed that the Page.navigate command is successfully sent but no response is received. (cf. image)

I have this same bug at other calls in my code, and noticeably when using the Debugger.resume command, and the only way out of this being calling the Page.navigate once again.
This might be a problem of chrome itself so I crossposted this issue on the chromium bugtracker (cf. issue)

Hm here it seems that is the await Page.loadEventFired(); that hangs, i.e., the event doesn't trigger. I see the following output:
Page 1 loaded
navigate 2 finished

I'm using Chrome 66.0.3343.0 on macOS though.

Same goes for Chrome 64.0.3282.140 on Linux.

the event doesn't trigger

And I guess this is the intended behaviour since there is not actually a page load from a network point of view. If you want to detect an Angular page load you have to manually implement the check.

That's odd, I tried, in a docker this time (with circleci/node:latest-browsers and :8.5.0-browsers), and still have the same result (only Page 1 loaded).
So OK for the loadEventFirst not being triggered.
I am going to try on an Ubuntu 16.04 to double check.

I have the exact same behavior with an Ubuntu 16.04, node 8.9.1, chrome-remote-interface 0.25.5 and Chrome 64.0.3282.119.
My output is only Page 1 loaded.
Do you have any idea why it goes on step further on your side?

Same goes for Chrome 64.0.3282.140 on Linux.

I apologise this is wrong, it works with version 65.0.3325.51, so I assume it was a bug that has been fixed for Chrome >= 65.

So you would suggest to simply use Chrome >= 65?
I have been able to reproduce this bug in a similar manner but I could not factorize it to a simple example.
https://gist.github.com/m-rousse/9330319d662ccc05fdb1d630b3f318ce
This time, the whole tab hangs, I am unable to scroll, execute any other commands and even the video in background freezes (after a few seconds).
It does this with both 64 and 65 (I do not have an OSX/Windows to try with 66).

So you would suggest to simply use Chrome >= 65?

Yes, I mean the original example works with Chrome 65 but it doesn't with Chrome 64, have you tried this one with the former?

About your second example, it hangs because you set up to pause on exceptions and for some reason the debugger does not resume after a Drupal.AjaxError which happens after the synthetic click.
You can even reproduce this manually with DevTools, as soon as you perform the click, an AJAX request is started then immediately cancelled:

This is a different issue IMO. Anyway the debug part is quite fragile in my experience, I would avoid using it if possible.

have you tried this one with the former?

It works with 65 for me too! (When removing the loadEventFired)
However, I do not understand why it does not work with the version 64.
Do you see a reason why the Page.navigate works for you and not for me? (It works if I call it twice)

For the second bug, I will report it to the chromium team.

It works with 65 for me too! (When removing the loadEventFired)

That's right, navigating to a fragment does not trigger a load event.

However, I do not understand why it does not work with the version 64.

Possibly a bug, I guess.

Do you see a reason why the Page.navigate works for you and not for me? (It works if I call it twice)

I though we were on the same page here, the original example works the same for both you and me with Chrome >= 65, right? Namely, the output is Page 1 loaded \n navigate 2 finished then the Page.loadEventFired never fires.

My bad, I did not write it well!
It is okay for both of us for Chrome >= 65.
I was asking about for 64, but as you say, possibly a bug!
Thank you for your help!

For the second bug, I will report it to the chromium team.

Feel free to post here the follow up so to help others.

768961 - [regression] Page.navigate protocol method doesn't resolve immediately - chromium


Subdivided GVRCylinderSceneObject.

Subdivided GVRCylinderSceneObject.
Optimized the normal computation for cylinder body part.
Fixed bugs in subdivised GVRSphereSceneObject.
GearVRf-DCO-1.0-Signed-off-by: Guodong Rong
<EMAIL_ADDRESS>

While developing code for cylinder, I found a bug in sphere code. I fixed the bug in this commit as well as added new code for cylinder. I also enabled state and frustum culling in the cube map sample to verify the subdivided versions behave as expected.

compiles, seems to work as expected.

Code looks ok to me. Work as expected.


chore: drop Node.js 12

This would require a semver major bump so may want to time landing/releasing appropriately.

This would require a semver major bump so may want to time landing/releasing appropriately.

In which case, maybe the commit should be
chore!: drop Node.js 12

? https://www.conventionalcommits.org/en/v1.0.0/
(or https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-both--and-breaking-change-footer with an example with ! and the BREAKING CHANGE: footer)


Fixes #24 (Update wiki/README from old project)

Add Maven coordinates to main README.

Codecov Report

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

@@            Coverage Diff            @@
##             master     #154   +/-   ##
=========================================
  Coverage     70.71%   70.71%
  Complexity      267      267
=========================================
  Files            67       67
  Lines          1144     1144
  Branches        128      128
=========================================
  Hits            809      809
  Misses          276      276
  Partials         59       59

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 b53a051...4b6171c. Read the comment docs.

Fixed by #154 due to missing DCO...


Added FFT spectrum testcase. It is a hard one :-)

This PR contains:

[ x] a new test-case for the benchmark

[ x] I hereby confirm that NO LLM-based technology (such as github copilot) was used while writing this benchmark

[ ] new dependencies in requirements.txt

[ ] The environment.yml file was updated using the command conda env export > environment.yml

[ ] new generator-functions allowing to sample from other LLMs
[ ] new samples (sample_....jsonl files)
[ ] new benchmarking results (..._results.jsonl files)
[ ] documentation update
[ ] bug fixes

Related github issue (if relevant): closes #0
Short description:

This test cases require coding a function that returns the FFT spectrum of an nD image with padding and apodisation:

"Returns the FFT spectrum of an arbitrary nD image as the absolute logarithm (log1p) of the Fourier transform magnitude. Ensures that the DC component is at the center of the image. Uses reflection padding (provided as integer parameter) and Hamming apodisation to reduce artefacts due to discontinuities at the image borders"
How do you think will this influence the benchmark results?

This is a hard one

Why do you think it makes sense to merge this PR?

Because of good reasons.

Hi @royerloic ,
awesome, thanks for sending this! We need to work a little bit on this one before it can be merged.

The body of the function fft_spectrum will be replaced during benchmark runtime by the LLM solution. Hence, the test will compare the result with itself. This will always pass. Two options: 1) We copy-paste the function into the check function. 2) We modify the assert statement so that not the entire image is compare but individual result values, which we can be sure about what the value should be.
I would like to change the np.array_equal to np.all_close and provide a tolerance. That way we can make sure that also other implementations, e.g. using GPUs or whatever can pass the test, even though they might differ in the third digit after the decimal delimiter.

I'm also happy to do these changes if you`re busy. I just need to hear your opinion how to do it. I'm not soo used to applying FFTs.
Thanks again!

Awesome, thanks for your contribution @royerloic !
I would like to add you to our list of co-authors. I presume your affiliation is "CZ Biohub San Francisco" (and also anything else?).
Also, do you have any conflicts of interest to declare, we should mention when submitting the paper?

Thanks! Preferred form for my (and my team's) affiliation: 'Chan Zuckerberg Biohub, San Francisco, United States'


Corrected Get-EntraDomainFederationSettings spelling

Corrected the spelling for 'Get-EntraDomainFederationSettings' which had been misspelled as 'Fedration'.

Fixed by #908


beta 20 compatibility

I also had to change the renderTemplate route from sprout-notes/widgets/Notes/notes' to notes and 'sprout-notes/widgets/Notes/settings' to settings for it to work. Does that make sense?


Categories of confidence level for the identified insertion sequence

Hi, durrantmm.
Could you tell us what IAwoC and ArSC mean?
I found the 4 words ( IAwFC, IAwoC, IDB, ArSC) used to specify confidence level of the identified insertion sequence in the file 02.genotype..tsv.
In the user manual, IAwFC and IDB are explained, and I could not find the above two.
My purpose is strain genotyping based on polymorphism of the inserted position of MGEs  by using resequencing data.
Additionally, if possible, could you recommend or suggest any tools for the analysis of strain genotyping based on 02.genotype..tsv.  I especially want to know which strain belongs to which cluster consist of strains harboring an identical MGE profile.
Many thanks for your kind support.

Hello!
IAwoC means "Inferred from assembly without context", meaning that it found a predicted element in the assembly, but it wasn't in the expected genomic context. This is common if the element assembled alone on its own contig, without anything flanking it, which often happens when there are multiple copies of the element.
ArSC means "Ambiguous - Resolved by Site Comparison." In some cases, the identity of the element is ambiguous because multiple element clusters share the same terminal ends. MGEfinder then compares that specific genomic site across all other sites in the sample to predict the identity of the inserted element, assuming that it may have been inherited by descent.
I think that the 02.genotype file should work for your purposes. You may want to apply some additional filters to the genotypes. For example, you may want to discard any insertions that only appear in one isolate, or you could use some other allele frequency cutoff. Or you could limit the genotypes only to the elements you are confident are real. I am not sure what you mean by "I especially want to know which strain belongs to which cluster consist of strains harboring an identical MGE profile." Maybe you could try building a phylogenetic tree based on the insertions? You'll have to give me more detail.

Hi, again.
Thanks for your detailed explanation for IAwoC and ArSC. I could understand them very well.
Yes, I want to reconstruct phylogenetic tree based on the insertions positions, and want to find out clustered-strain groups from the tree.
Following your kind advise, I could build a phylogenetic tree.
I extracted inserted positions from 02.genotype and visualized the tree using the following site.
http://insilico.ehu.es/
I also can see clustered-strain groups, which may reflect identity of the strains. I hope there are difference between IS-clustering and SNP-clustering and this make sense for my research purpose.
I sincerely appreciate your kind support. Many thanks!

Great, glad to hear that!


replay doesn't replay

Hi,
the operator replay seems not able to serve more than one subscription.  The second subscription is never called.
Running similar code using Rx.NET outputs the followings:

tap: 1
subscribe A: 1
tap: 2
subscribe A: 2
tap: 3
subscribe A: 3
subscribe B: 1
subscribe B: 2
subscribe B: 3

Aha! This baked my noodle for a while! Thanks for the report!
I think that the A subscription is completed and that when the B subscription is started the subscription has already been unsubscribed and that prevents B one from being sent any values.
This appears to be a bug. Replay should allow subscribe on a completed sequence.
If the above is accurate, this is a horrible workaround that requires knowing how many items are being emitted.
        auto cob = rxcpp::rxs::concat(rxcpp::rxs::from(1, 2, 3)
            .tap([](int v) {cout << "tap: " << v << endl; }), rxcpp::rxs::never())
            .replay()
            .take(3)
            .ref_count()
            ;

obviously an actual PR is needed.

This one is probably related:
auto o = rxcpp::observable<>::create<int>(
            [=](auto s) {
                s.on_next(5);
            })
            .replay(1);  // <-- Doesn't work

// o.replay(1);  // <-- This one works

o.subscribe(
   [](int v) { std::cout << "next"; });

Another simple example that fails:
rxcpp::subjects::subject<bool> test{};
test.get_subscriber().on_next(true);
test.get_observable()
	| rxcpp::operators::replay()
	| rxcpp::operators::subscribe<bool>([](auto&& value){ std::cout << value << std::endl; });
test.get_subscriber().on_next(false);

Expected output:
true
false

Actual output: nothing.

Any progress on this? I think I just got bit by this.

Reading through the issues and it looks like this can be closed? @kirkshoop

Hi, sorry for the late response. Yes I confirmed that the latest version fixed this issue on my code.
Thanks for fixing it !

Sorry for the surprise comment! I was really excited to find this project and in hindsight probably didn’t need to say anything. Thank you all so much for the hard, thoughtful work :)

Hi, also experienced this issue when using version 4.1.0.
Now I have to use the code from master..
Maybe it's time for another version?

have the same issues with 4.1.0 resolved when using master branch


Put resolves promise before the actual file transfer is completed

We are experiencing this issue intermittently during uploading multiple files via SFTP. All the promises with put method are resolving successfully but we receive the exception below when end method is called.

events.js:160
throw er; // Unhandled 'error' event
^

Error: The requested operation cannot be performed because there is a file transfer in progress.
at SFTPStream._transform (/var/app/current/node_modules/ssh2-streams/lib/sftp.js:410:27)
at SFTPStream.Transform._read (_stream_transform.js:167:10)
at SFTPStream._read (/var/app/current/node_modules/ssh2-streams/lib/sftp.js:181:15)
at SFTPStream.Transform._write (_stream_transform.js:155:12)
at doWrite (_stream_writable.js:334:12)
at writeOrBuffer (_stream_writable.js:320:5)
at SFTPStream.Writable.write (_stream_writable.js:247:11)
at Channel.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at Channel.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Channel.Readable.push (_stream_readable.js:134:10)
at SSH2Stream. (/var/app/current/node_modules/ssh2/lib/Channel.js:166:15)
at emitOne (events.js:96:13)
at SSH2Stream.emit (events.js:188:7)
at parsePacket (/var/app/current/node_modules/ssh2-streams/lib/ssh.js:3443:10)
at SSH2Stream._transform (/var/app/current/node_modules/ssh2-streams/lib/ssh.js:668:13)
at SSH2Stream.Transform._read (_stream_transform.js:167:10)
at SSH2Stream._read (/var/app/current/node_modules/ssh2-streams/lib/ssh.js:251:15)
at SSH2Stream.Transform._write (_stream_transform.js:155:12)
at doWrite (_stream_writable.js:334:12)
at writeOrBuffer (_stream_writable.js:320:5)
at SSH2Stream.Writable.write (_stream_writable.js:247:11)
at Socket.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:548:20)

Hi, I am experimenting the same issue.


Improve contribution guidelines

Change Summary

Related issue number

Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

please review

I added a couple comments, feel free to accept/reject them at your discretion and then merge when ready.
I'll ping Samuel about the cloudflare thing, I think he's going to at least get me access so I can see what's going wrong there.


"cd: tmp: No such file or directory" when start sshcode

I try to start sshcode under windows to connect server in Ubuntu, then when it install code-server I got the error message. I have checked server, /tmp and /tmp/code-server are there:

I think it maybe the default login directory is /home/user? does someone know how to solve it or skip the step?

Are you running under WSL on windows? sshcode doesn't support windows natively

Are you running under WSL on windows? sshcode doesn't support windows natively

No, I run sshcode in build-in cmd, but the error is wired since it seems to have nothing to do with windows, and I think the error occurs during bash operations on server which is indeed linux......

Have the same error here, also on Windows. The command line is git-bash.
I think go is using windows path, which interprets slash as an backslash, but also over ssh so the Ubuntu reads it as escape character.

Have the same error here, also on Windows. The command line is git-bash.
I think go is using windows path, which interprets slash as an backslash, but also over ssh so the Ubuntu reads it as escape character.

I suspect that, the first 4 commands in fig that contains "slash" runs without problem on my server (it creates and downloads code-server). I don't familiar with go, but I think if someone change the call of 'cd tmp' to 'cd /tmp', it might work.

/bin/bash should not exist on windows

/tmp is not a dir in windows. I believe that tmp for apps in windows is within %APPDATA%.

I'm thinking it's probably an issue caused by the windows SSH command interpreting the bash script incorrectly since that script should be running on the remote host

Could potentially be, I am not too familiar with windows.

/tmp is not a dir in windows. I believe that tmp for apps in windows is within %APPDATA%. I am pretty sure that windows support is eventually coming.

Actually, it succeed to execute that "wget" command to download code-server to /tmp in remote server, so I think the commands are run inside remote bash.


Cannot reproduce README example

Hi Nick,
I've got a problem trying out the README example using the following versions:

roar: 0.9.1
representable: 1.0.1
ruby: 1.9.3p0

Code
require 'roar/representer/json'
require 'roar/representer/feature/hypermedia'

class Article
  include Roar::Representer::JSON
  include Roar::Representer::Feature::Hypermedia

  property :title
  property :id

  link :self do
    article_url(represented)
  end
end

Then running
Article.new(
  title: "Lonestar",
  id:    666)

leads to
ArgumentError: wrong number of arguments(1 for 0)
    from (irb):15:in `initialize'
    from (irb):15:in `new'

And
Article.from_hash(
  title: "Lonestar",
  id:    666)

leads to
NoMethodError: undefined method `title=' for #<Article:0x0000000235e240>
    from /home/dan/.rvm/gems/ruby-1.9.3-p0/gems/representable-1.0.1/lib/representable.rb:54:in `block in update_properties_from'
    from /home/dan/.rvm/gems/ruby-1.9.3-p0/gems/representable-1.0.1/lib/representable.rb:50:in `each'
    from /home/dan/.rvm/gems/ruby-1.9.3-p0/gems/representable-1.0.1/lib/representable.rb:50:in `update_properties_from'
    from /home/dan/.rvm/gems/ruby-1.9.3-p0/gems/representable-1.0.1/lib/representable/json.rb:47:in `from_hash'
    from /home/dan/.rvm/gems/ruby-1.9.3-p0/gems/representable-1.0.1/lib/representable/json.rb:31:in `from_hash'

Fixed: https://github.com/apotonick/roar#readme

Thanks.


EntityTileScreen - Losing item on insert

When an item is inserted using the EntityTileScreen, the details then change to the first item available.

Changed DetailScreen to load the saved item on insert.


the gring.Unlink is not same as ring.Unlink

1. What version of Go and system type/arch are you using?

go version go1.15.6 darwin/amd64
2. What version of GoFrame are you using?

v1.16.6
3. Can this issue be re-produced with the latest release?
yes
4. What did you do?
func Test_ring2(t *testing.T) {
	ring := gring.New(10)
	type PageInfo struct {
		page int
	}
	for i := 0; i < 10; i++ {
		ring.Put(&PageInfo{
			page: i,
		})
	}

	t.Logf("the length:%d", ring.Len())

	r1 := ring.Unlink(6)

	for i := 0; i < 10; i++ {
		t.Log(ring.Val())
		ring = ring.Next()
	}
	t.Logf("the ring length:%d", ring.Len())
	t.Logf("the r1 length:%d", r1.Len())
}

func Test_ring3(t *testing.T) {
	ring := ring.New(10)
	for i := 0; i < 10; i++ {
		ring.Value = i
		ring = ring.Next()
	}

	t.Logf("the length:%d", ring.Len())

	r1 := ring.Unlink(6)

	for i := 0; i < 10; i++ {
		t.Log(ring.Value)
		ring = ring.Next()
	}
	t.Logf("the ring length:%d", ring.Len())
	t.Logf("the r1 length:%d", r1.Len())
}

5. What did you expect to see?
the ring length is diff from r1, and the ring.len may be 4 or 6,not 5
6. What did you see instead?
    gf_test.go:150: the length:10
    gf_test.go:155: &{1}
    gf_test.go:155: &{2}
    gf_test.go:155: &{3}
    gf_test.go:155: &{4}
    gf_test.go:155: &{5}
    gf_test.go:155: &{6}
    gf_test.go:155: &{1}
    gf_test.go:155: &{2}
    gf_test.go:155: &{3}
    gf_test.go:155: &{4}
    gf_test.go:158: the ring length:5
    gf_test.go:159: the r1 length:5

    gf_test.go:169: the length:10
    gf_test.go:174: 0
    gf_test.go:174: 7
    gf_test.go:174: 8
    gf_test.go:174: 9
    gf_test.go:174: 0
    gf_test.go:174: 7
    gf_test.go:174: 8
    gf_test.go:174: 9
    gf_test.go:174: 0
    gf_test.go:174: 7
    gf_test.go:177: the ring length:4
    gf_test.go:178: the r1 length:6

I think this is a bug. Please refer to https://github.com/gogf/gf/pull/1400


Create rust.yml

This feature has similar capabilities in its original form, as can be seen in the master code.


Littering with gls.log

gls leaves behind a gls.log file when run
$ gls -path .
$ file gls.log
gls.log: ASCII text

Maybe the creation of this file should be tied to the -debug option?

It’s actually where the gls logs are written and it’s created inside cmd/gls.go, and used in log/core.go. It seems I forgot to document it

Also, log.SetDebug(1) is used inside cmd/gls.go if the -debug is set. We can keep the logging logic, but we can also make the log file a hidden file (such as .gls.log) and document it


x-real-ip headers missing in workers

Hi,
The x-real-ip header (documented here) is missing in requests to workers. There are a few other headers listed there which I assume are also missing.
It looks like some cloudflare specific headers are added here, but only ones that are forwarded to original hosts, not headers that only get sent to workers.
I haven't read the code base in any detail, but I assume just adding these headers there would also forward them to upstream, which in the case of at least x-real-ip would be incorrect.
For now I'm just going to work around this locally, so at least from my perspective there's no urgency in fixing this, but I thought I should let you know.

Awesome, thanks :)


Your Python environment or installation doesn't have the spyder‑kernels module or the right version of it installed (>= 1.9.2 and < 1.10.0). Without this module is not possible for Spyder to create a console for you.  You can install it by running in a system terminal:  conda install spyder‑kernels

Issue Report Checklist

[ ] Searched the issues page for similar reports
[ ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[ ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ ] Tried basic troubleshooting (if a bug/error)

[ ] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[ ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
spyder keeps showing me this error no matter either I create a new environment or use an old one. this error is not going. I have already checked spyder-kernels it is already installed.  Could anyone give me any suggestions?

What steps reproduce the problem?

What is the expected output? What do you see instead?
basically, I want to use tensorflow in my program which is installed only in one of the env. and when I tried to switch from the default python interpreter to my env. then spyder gives me this error. A month ago when I tried to switch from one env. to another it did not give me the error that time.
Paste Traceback/Error Below (if applicable)

Your Python environment or installation doesn't have the spyder‑kernels module or the right version of it installed (>= 1.9.2 and < 1.10.0). Without this module is not possible for Spyder to create a console for you.
 The screenshot you posted is from spyder-terminal or your system terminal?

Hi @steff456,
The above screenshot is of my system terminal( already installed spyder-kernels) and yet it is showing me this error on spyder.

If you do conda list in your environment which version of spyder-kernels appear?
Also I'm seeing in the list you added in the issue that you have a mix of packages installed by pip and conda. Did you installed tensorflow with pip or conda?

Here is the screenshot after running conda list

Can you please in a clean environment install all the packages with only conda or only pip?
Please remember that it is not a good idea to mix pip with conda, if you want to learn more about it please see this video https://www.youtube.com/watch?v=Ul79ihg41Rs. In there you can probably find a way to solve your environment and get Spyder running with the dependencies you need.

Same issue here. All packages have been installed via anaconda.
conda list

(nlp) C:\Users\Me>conda list
# packages in environment at C:\Users\Steven\anaconda3\envs\nlp:
#
# Name                    Version                   Build  Channel
backcall                  0.2.0              pyhd3eb1b0_0
ca-certificates           2021.4.13            haa95532_1
certifi                   2020.12.5        py39haa95532_0
cloudpickle               1.6.0                      py_0
colorama                  0.4.4              pyhd3eb1b0_0
decorator                 5.0.6              pyhd3eb1b0_0
ipykernel                 5.3.4            py39h7b7c402_0
ipython                   7.22.0           py39hd4e2768_0
ipython_genutils          0.2.0              pyhd3eb1b0_1
jedi                      0.17.2           py39haa95532_1
jupyter_client            6.1.12             pyhd3eb1b0_0
jupyter_core              4.7.1            py39haa95532_0
libsodium                 1.0.18               h62dcd97_0
openssl                   1.1.1k               h2bbff1b_0
parso                     0.7.0                      py_0
pickleshare               0.7.5           pyhd3eb1b0_1003
pip                       21.0.1           py39haa95532_0
prompt-toolkit            3.0.17             pyh06a4308_0
pygments                  2.8.1              pyhd3eb1b0_0
python                    3.9.4                h6244533_0
python-dateutil           2.8.1              pyhd3eb1b0_0
pywin32                   228              py39he774522_0
pyzmq                     20.0.0           py39hd77b12b_1
setuptools                52.0.0           py39haa95532_0
six                       1.15.0           py39haa95532_0
spyder-kernels            2.0.1            py39haa95532_0
sqlite                    3.35.4               h2bbff1b_0
tornado                   6.1              py39h2bbff1b_0
traitlets                 5.0.5              pyhd3eb1b0_0
tzdata                    2020f                h52ac0ba_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                      py_0
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0
zeromq                    4.3.3                ha925a31_3

Hi @setegonz,
Which version of Spyder are you using?

@steff456 4.1.5

@setegonz, please install spyder-kernels 1.10.2

@ccordoba12 @steff456
conda remove spyder-kernels
then:
conda install spyder-kernels=1.10.2
And the issue continues....
# packages in environment at C:\Users\Steven\anaconda3\envs\nlp:
#
# Name                    Version                   Build  Channel
backcall                  0.2.0              pyhd3eb1b0_0
ca-certificates           2021.4.13            haa95532_1
certifi                   2020.12.5        py39haa95532_0
cloudpickle               1.6.0                      py_0
colorama                  0.4.4              pyhd3eb1b0_0
decorator                 5.0.6              pyhd3eb1b0_0
ipykernel                 5.3.4            py39h7b7c402_0
ipython                   7.22.0           py39hd4e2768_0
ipython_genutils          0.2.0              pyhd3eb1b0_1
jedi                      0.17.2           py39haa95532_1
jupyter_client            6.1.12             pyhd3eb1b0_0
jupyter_core              4.7.1            py39haa95532_0
libsodium                 1.0.18               h62dcd97_0
openssl                   1.1.1k               h2bbff1b_0
parso                     0.7.0                      py_0
pickleshare               0.7.5           pyhd3eb1b0_1003
pip                       21.0.1           py39haa95532_0
prompt-toolkit            3.0.17             pyh06a4308_0
pygments                  2.8.1              pyhd3eb1b0_0
python                    3.9.4                h6244533_0
python-dateutil           2.8.1              pyhd3eb1b0_0
pywin32                   228              py39he774522_0
pyzmq                     20.0.0           py39hd77b12b_1
setuptools                52.0.0           py39haa95532_0
six                       1.15.0           py39haa95532_0
spyder-kernels            1.10.2           py39haa95532_0
sqlite                    3.35.4               h2bbff1b_0
tornado                   6.1              py39h2bbff1b_0
traitlets                 5.0.5              pyhd3eb1b0_0
tzdata                    2020f                h52ac0ba_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                      py_0
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0
zeromq                    4.3.3                ha925a31_3

Sorry, the mapping between Spyder and spyder-kernels is here:
http://docs.spyder-ide.org/current/troubleshooting/common-illnesses.html#spyder-kernels-not-installed-incompatible


Problems with the guild delete event handler

The deleting of messages, channels and members can take a lot of time so we should first emit eventHandlers.guildDelete
When a guild gets unavailable we should delete the guild from cache since we have a separate cache for them

Cache should be modified prior to emitting the event listener, otherwise, the user will receive 'outdated' Guild object.


fix: sort documents correctly when overlaying

Documents should always be sorted by _id, even when overlaying. This attempts to fix that, but:

I was a bit unsure of how to write a test for this. Maybe under query.test.ts? I don't fully know how this fixture dataset works.
Do we consider this a breaking change? 🤔

I was a bit unsure of how to write a test for this. Maybe under query.test.ts? I don't fully know how this fixture dataset works.

You can add it to query.test.ts yeah.

Do we consider this a breaking change? 🤔

No, it's a bugfix as far as I'm concerned.

Yeah I think you lack a token @judofyr, I see on the repo itself it has a GROQ_STORE_TEST_TOKEN, so given the CI is passing we should be good to go?


Missing hyphen '-' character in deserialized string

I used JsonSerializer.Deserialize method to deserialize an object. One field containing the value

"\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0430"

was deserialized to "ШриЛанка", i.e. hyphen was skipped.

Actually, found that this happends, not only with hyphen, for example "\u041d\u043e\u0432\u0430\u044f \u0437\u0435\u043b\u0430\u043d\u0434\u0438\u044f" was deserialized to "Новаязеландия", i.e. space was skipped.

thank you, this is bug, when mixed unicode encoding with ascii, ignored ascii.
I've fixed and released update v1.0.6.

Thanks, I confirm the fix


Publish to maven central?

For now we'd recommend publishing to the github package Registry (no longer beta)


Issue with bottom sheet style modals and buttons with wave-effect

It looks like bottom-sheet modals does not play very well with buttons using the waves-effect class.  The first time the modal is opened, the button is visible, but the next time, the button is gone.  So it seems.
Using the inspect tool reveals that the button is still there.  You can click the button, and in the moment you do, it 'magically' appears.

        Blah blah

        Oh well

@vesteraas thanks for reporting this problem. Have you got a specific setup that reproduces it? Does it happen on a specific browser or screen size?
Here's the full component that I used to try and reproduce it, but it seems to work well for me. Can you give it a try? If that is still not working for you then we can try creating a repository fork for reproducing it and nailing down the exact use case where this happens.
import {MaterializeDirective} from "angular2-materialize";
import {Component} from "angular2/core"

@Component({
    selector: "dialogs",
    directives: [MaterializeDirective],
    template: `

      Modal

              Blah blah

              Oh well

    `
})
export class Dialogs {
}

I've spent an hour creating a minimal working example, but I'm not able to reproduce the problem.  I have no more time to spend on this now, but have managed to 'solve' it temporarily by removing the waves-effect and waves-red classes from the button.

Cool, I'm going to close this issue. If you do find a way to reproduce I'd be happy to take a look :)


Allow detailed guide slugs to start with /guidance

This is part of the RFC to move detailed guides paths from the root to guidance/.
cc @boffbowsh @jamiecobbett

@elliotcm updated

Whitespace fixed.


2FA Support

2FA is not supported.
Add ability to submit 2FA code as a command line option.

This is still planned.

If you add your 2FA code on the end of the password, no spaces or anything, you can still log in as expected, try it!
@SPDurkee

Should the "feature" to append the 2FA code to the end of your password be documented somewhere?

@SPDurkee https://support.plex.tv/articles/two-factor-authentication/#toc-1

In the very rare case where you’re using a Plex app that doesn’t directly support 2FA verification (which typically means it’s a third-party app or tool that isn’t using our standard authentication methods), you can still sign in via 2FA. Specifically, you append a valid verification code to the end of the password when submitting: <password><verification code>


Update macOS app icon for Big Sur

Before submitting, please confirm you've

[x] read and understood our Contributing Guidelines
[X] completed Mattermost Contributor Agreement
[X] executed npm run lint:js for proper code formatting

Please provide the following information:
Summary
Update macOS app icon for Big Sur
Issue link
https://github.com/mattermost/desktop/issues/1389

Hello @tdimeco,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

hello @tdimeco
thanks a lot for contributing a new icon!
can you please provide some screenshots of the icon in use?

Hi @Willyfrog,
Sure, you have some examples in the related issue: https://github.com/mattermost/desktop/issues/1389 ;)

thanks @tdimeco
fixes #1389

@matthewbirtch You are welcome. I understand, I suspected it ;)

@matthewbirtch @Willyfrog do we have a ticket to track the big sur icon updates?

Yep. These two tickets:
https://mattermost.atlassian.net/browse/MM-30619
https://mattermost.atlassian.net/browse/MM-30619


consider reusing CSVW and DQV

It's great that you reuse Schema.org.
But please also consider reusing these:

CSVW is for describing the semantics of CSV, or even exposing CSV tables as RDF. I see a big overlap, eg cr:Field
DQV allows capturing objective and subjective quality observations about datasets.

Perhaps it is applicable to the RAI (Responsible AI) part, where currently all props are simple text.
See these papers:
Introducing the Data Quality Vocabulary (DQV)
A comprehensive quality model for Linked Data
Automated approach for quality assessment of RDF resources
See these usages ("implementations")

Hi Vladimir,
We considered CSVW, but it wasn't appropriate to describe the structure of data in Croissant, as it focuses on CSV tables. We needed a construct that could also describe unstructured data like text, images, etc., as well as nested data, like JSON, and allows joining data across these modalities.
Thanks for the pointers to DQV, definitely worth considering for RAI, as well as potential future extensions that are related to quality (e.g., in the health or geospatial domains).


Segmentation Fault

Hello,
I'm using a Pi Zero W with a generic ili9340 display.  I've got it wired as per your instructions in the README.md.  I followed the directions that you have labeled just for the Raspberry Pi and did not receive any errors. during setup/compiling.  When everything was done I ran:
./demo
from the Raspberry-ili9340spi directory and received the following error:
Your TFT resolution is 240 x 320.
Your TFT offsetx    is 0.
Your TFT offsety    is 0.
Segmentation fault
I looked through the issues and saw a recommendation to someone to use bmc2835 1.6.4, so I used the only Raspberry Pi instructions to use 1.64 instead.  I still receive the same error.
Thank you

I don't have Pi Zero W.
Do you have some other Pi?

Actually, I was just trying it out on a Pi 3 B, although I just swapped the SD card and didn't do a fresh install.  I ended up with the same result.

Did you change tft.conf?

OK
Change some code of demo.c & try.
    // You can change font file
    FontxFile fx32G[2];
    FontxFile fx24G[2];
    FontxFile fx16G[2];
    Fontx_init(fx32G,"./fontx/ILGH32XB.FNT","./fontx/ILGZ32XB.FNT"); // 16x32Dot Gothic
    Fontx_init(fx24G,"./fontx/ILGH24XB.FNT","./fontx/ILGZ24XB.FNT"); // 12x24Dot Gothic
    Fontx_init(fx16G,"./fontx/ILGH16XB.FNT","./fontx/ILGZ16XB.FNT"); // 8x16Dot Gothic
    printf("pass1\n");

    FontxFile fx32M[2];
    FontxFile fx24M[2];
    FontxFile fx16M[2];
    Fontx_init(fx32M,"./fontx/ILMH32XF.FNT","./fontx/ILMZ32XF.FNT"); // 16x32Dot Mincyo
    Fontx_init(fx24M,"./fontx/ILMH24XF.FNT","./fontx/ILMZ24XF.FNT"); // 12x24Dot Mincyo
    Fontx_init(fx16M,"./fontx/ILMH16XB.FNT","./fontx/ILMZ16XF.FNT"); // 8x16Dot Mincyo
    printf("pass2\n");

    lcdInit(screenWidth, screenHeight, offsetx, offsety);
    printf("pass3\n");
    lcdReset();
    printf("pass4\n");
    lcdSetup();
    printf("pass5\n");

Hello
I have not made any changes to tft.config.
I hade already put in some debugging code in demo.c.  I only made changes to the main function.
int main(int argc, char **argv)
{
    int i;
    int screenWidth = 0;
    int screenHeight = 0;
    int offsetx = 0;
    int offsety = 0;
    char dir[128];
    char cpath[128];

printf("argv[0]=%s\n",argv[0]);
    strcpy(dir, argv[0]);
    for(i=strlen(dir);i>0;i--) {
        if (dir[i-1] == '/') {
          dir[i] = 0;
          break;
        } // end if
    } // end for
printf("dir=%s\n",dir);
    strcpy(cpath,dir);
    strcat(cpath,"tft.conf");
printf("cpath=%s\n",cpath);
    if (ReadTFTConfig(cpath, &screenWidth, &screenHeight, &offsetx, &offsety) == 0) {
        printf("%s Not found\n",cpath);
        return 0;
    }
printf("ReadTFTConfig:screenWidth=%d height=%d\n",screenWidth, screenHeight);
    printf("Your TFT resolution is %d x %d.\n",screenWidth, screenHeight);
    printf("Your TFT offsetx    is %d.\n",offsetx);
    printf("Your TFT offsety    is %d.\n",offsety);

    // You can change font file
printf("fontx 0");
    FontxFile fx32G[2];
printf("fontx 1");
    FontxFile fx24G[2];
    FontxFile fx16G[2];
    Fontx_init(fx32G,"./fontx/ILGH32XB.FNT","./fontx/ILGZ32XB.FNT"); // 16x32Dot Gothic
    Fontx_init(fx24G,"./fontx/ILGH24XB.FNT","./fontx/ILGZ24XB.FNT"); // 12x24Dot Gothic
    Fontx_init(fx16G,"./fontx/ILGH16XB.FNT","./fontx/ILGZ16XB.FNT"); // 8x16Dot Gothic
printf("fontx 2");

This is what I get when I compile and run it:
argv[0]=./demo
dir=./
cpath=./tft.conf
width=240 height=320
ReadTFTConfig:screenWidth=240 height=320
Your TFT resolution is 240 x 320.
Your TFT offsetx    is 0.
Your TFT offsety    is 0.
Segmentation fault

It's weird because the first statement after the printf that outputs my offsety is just another printf, and I never see the output from that.

Hello again,
I started with a fresh install of the latest version of Raspberry PI OS, did sudo apt-get update, sudo apt-get upgrade and then followed the Rapsberry Pi only instructions.  I did have to run sudo apt-get install git half way through, but other than that, I ran everything as the instructions indicated.  I still get the segmentation fault error.

I figured it out.  I was running
./demo
When I run
sudo ./demo
it works fine. So it's a permissions issue.

Perhaps the latest OS require permissions.


Make surveillance camera static shorter

About the PR
Makes surveillance camera static shorter. This is mostly to see if shorter static will still mask the effect of loading in entities, since the intent of the effect is to mask the pop in.
:cl:

tweak: NanoTrasen has supplied your stations with better routers! The static you see will now disappear much more faster than before!

Do we have functions to check if client received all data from server? If no, how hard it will be to add?

Do we have functions to check if client received all data from server? If no, how hard it will be to add?

@metalgearsloth

We don't and I don't think it'd be that hard though you'd need to cap the time anyway.


bootstrap_no_proxy being ignored

it is trying to proxy to localhost:8889 even though localhost is listed as no_proxy.
machine 'chef-server' do
  machine_options transport_options: {
                    host: 'chef-server',
                    username: 'kplimack',
                    options: {
                      prefix:  'sudo '
                    },
                    ssh_options: {
                      keys: ['/Users/kplimack/.ssh/id_rsa']
                    }
                  },
                  ssh_gateway: 'SSH_GATEWAY',
                  convergence_options: {
                    ssl_verify_mode: :verify_peer,
                    bootstrap_proxy: "http://myproxy_server:8080",
                    bootstrap_no_proxy: "localhost, *.mycompany.com"
                  }
end

[2016-02-23T16:07:15-08:00] DEBUG: Using myproxy_server:8080 for proxy
[2016-02-23T16:07:15-08:00] DEBUG: Initiating GET to http://localhost:8889/nodes/chef-server

same problem with machine_options as explained here https://github.com/chef/chef-provisioning/issues/481#issuecomment-218556111


Added ripper for hdporner

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[x] a new Ripper

Description
Added a ripper for hqporner.com
Testing
Required verification:

[x] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[x] I've verified that this change works as intended.

[x] Downloads all relevant content.
[x] Downloads content from multiple pages (as necessary or appropriate).
[x] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[x] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Coverage decreased (-0.3%) to 38.582% when pulling 01448cc9a021a120b10a3436021a00a6ac95f285 on cyian-1756:hdporner into b7f8b0edf61765af9df4e997a4778f64bb3581f9 on RipMeApp:master.


[Bug] step-1 ("Execute script") of "Check YAML consistency" job is broken if generated from project root

Action
I ran my workflow generating script from the root folder using the following shell command:
./.github/workflows/publish-plugins.main.kts
Expected
The same content is generated as if I run as ./publish-plugins.main.kts from the .github/workflows directory.
Actual
run: 'rm ''.github/workflows/publish-plugins.yaml'' && ''publish-plugins.main.kts'''
was generated instead of
run: 'rm ''.github/workflows/publish-plugins.yaml'' && ''.github/workflows/publish-plugins.main.kts'''.
It failed on GitHub at the "Check YAML consistency" job, step "Execute script" because the path to the script was wrong.
https://github.com/Splitties/gradle-dependencies-dsl/actions/runs/7227552380/job/19695431873
Workaround
I ran the script it again after running cd .github/workflows, and committed the changes: https://github.com/Splitties/gradle-dependencies-dsl/commit/c273d68a1c7b10325ed38dae182d5f283e5ce9e4
Library version
v1.7.0

Was it working fine for you in the past?
Generally it should already work the same way in both cases. See e. g. the workflows in this repo:
https://github.com/typesafegithub/github-workflows-kt/blob/77d8c4ebd6c8bbc533a381e9d14c2b9a8992aa34/.github/workflows/build.yaml#L24
If the bug was reproducible in this case, the consistency check would produce a different YAML here.
@Vampire do you have a minute to take a look? I'm having a busy time.

I think it's the first time I'm running it manually from a terminal where the working directory is the project root.
All the other times, I was running it with the run button in IntelliJ (it is lacking in Fleet 😅), and that leads to it being run from the script directory in a terminal tab, where there's no bug.

@LouisCAD could you first check if you aren't affected by this issue with the Kotlin script cache? https://youtrack.jetbrains.com/issue/KT-64367/

I got a similar result to yours with such reproduction:
piotr@Piotrs-MacBook-Air gradle-dependencies-dsl % .github/workflows/publish-plugins.main.kts
piotr@Piotrs-MacBook-Air gradle-dependencies-dsl % git st
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
piotr@Piotrs-MacBook-Air gradle-dependencies-dsl % cd .github/workflows
piotr@Piotrs-MacBook-Air workflows % ./publish-plugins.main.kts
piotr@Piotrs-MacBook-Air workflows % git st
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   publish-plugins.yaml

no changes added to commit (use "git add" and/or "git commit -a")
piotr@Piotrs-MacBook-Air workflows % git diff
diff --git a/.github/workflows/publish-plugins.yaml b/.github/workflows/publish-plugins.yaml
index a2b4630..9e2877b 100644
--- a/.github/workflows/publish-plugins.yaml
+++ b/.github/workflows/publish-plugins.yaml
@@ -1,4 +1,4 @@
-# This file was generated using Kotlin DSL (.github/workflows/publish-plugins.main.kts).
+# This file was generated using Kotlin DSL (.github/workflows/.github/workflows/publish-plugins.main.kts).
 # If you want to modify the workflow, please change the Kotlin file and regenerate this YAML file.
 # Generated with https://github.com/typesafegithub/github-workflows-kt

@@ -22,7 +22,7 @@ jobs:
       uses: 'actions/checkout@v4'
     - id: 'step-1'
       name: 'Execute script'
-      run: 'rm ''.github/workflows/publish-plugins.yaml'' && ''.github/workflows/publish-plugins.main.kts'''
+      run: 'rm ''.github/workflows/publish-plugins.yaml'' && ''.github/workflows/.github/workflows/publish-plugins.main.kts'''
     - id: 'step-2'
       name: 'Consistency check'
       run: 'git diff --exit-code ''.github/workflows/publish-plugins.yaml'''
piotr@Piotrs-MacBook-Air workflows % rm -rf ~/Library/Caches/main.kts.compiled.cache/
piotr@Piotrs-MacBook-Air workflows % ./publish-plugins.main.kts
piotr@Piotrs-MacBook-Air workflows % git st
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
piotr@Piotrs-MacBook-Air workflows %

@LouisCAD please confirm if cleaning the cache makes the script work correctly.

Resolving as not really a bug with the library. Please reopen if needed.


Add extension method for appending cookie read by CookieRequestCultureProvider

Currently, in order to emit a cookie that will be successfully parsed and used by the CookieRequestCultureProvider, code like the following is required:
public IActionResult SetLanguage(string culture, string returnUrl)
{
    HttpContext.Response.Cookies.Append(
        CookieRequestCultureProvider.DefaultCookieName,
        $"c={culture}|uic={culture}",
        new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) });

    return LocalRedirect(returnUrl);
}

There should be a helper extension method to make this much easier, without having to have knowledge of the format of the cookie value, e.g.:
public IActionResult SetLanguage(string culture, string returnUrl)
{
    HttpContext.Response.Cookies.AppendRequestCultureCookie(
        culture: culture,
        uiCulture: culture,
        options: new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
    );

    return LocalRedirect(returnUrl);
}

Why we didn't use CookieRequestCultureProvider.MakeCookieValue to construct the cookie value, without adding more extension methods
The code may look like this
HttpContext.Response.Cookies.Append(
        CookieRequestCultureProvider.DefaultCookieName,
        CookieRequestCultureProvider.MakeCookieValue(requestCulture),
        new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) });

@hishamco because I totally forgot I added that method :confused:


Reduce the height of the m-e element because the Chromium logo doesn'…

…t appear with Chromium. This was being drawn over the file path links which made it hard to click them.

Is there a way to fix up the commit message to make it git style? I.e. first line summary "Reduce the height of the m-e element." or similar, empty line, then the rest of what you've written?
The changes lgtm but the description will look a bit out of place in the commit log.

Also please change the version in manifest.json to 10.4.

Done. I am not sure if you see the changes, though.

I see the changes, sort of, as another patch. Lastly, could you squash these into a single commit? There are a few guides I found like http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request for how to do that.

OK, I tried that and it did merge them as you can see here: https://github.com/aawc/kalman-chrome-extensions/commit/eea168d2086c29de1e92db87f6ce344cff00d0bd
I am not sure we are in a much better state now than earlier since it has linked even more commits to the PR now.

I'm still trying to figure out what is going on here. This interface is super confusing.

Couple more things though.

Like my other commits, put "OmniChromium: " before the summary (sorry for missing this out).
You've lost the structure I mentioned earlier, with summary followed by blank line followed by message.

I tried the squash myself and these instructions worked: http://push.cwcon.org/learn/squashing-commits.html

I am sorry I closed this PR without checking with you first but I had ended up spending too much time trying to wrestle Git. I have opened PR https://github.com/kalman/chrome-extensions/pull/5 for the exact same change following the guidelines you outlined in this PR. Sorry again and thanks for reviewing the change.


Here's a new site I'd like you to consider blocking

Here's a new site I'd like you to consider blocking:
https://www.youtube.com
(please include any other relevant details)

It already does, but if you still see them somewhere let me know.