IE 11 - image resizing bug?

So, I'm resizing an image to fill the width of a flex div. In Chrome, this works like I would expect it to: the image fills the div by width and auto's the height proportionally. In IE 11, though, it appears to size the image correctly, but the surrounding body div sizes up its height (never collapses) as if the full height of the source image were there.
http://codepen.io/darby3/pen/waZRme?editors=110
IE 11 bug? Or am I doing something wrong?

I think this is definitely a bug. What's interesting is it only seems to happen with a nested flexbox. If you comment out the flex declaration on the wrapper element, it renders correctly.
Have you found a workaround? I think there's a whole class of IE-related bugs that result from nested flexboxes, but I haven't found enough commonalities or generalized workarounds to be able to properly document them.

I don't think I found a workaround yet (other than, like, using consistently sized images so at least I don't wind up with random bursts of excessive whitespace) but I'll be looking at my use cases again in the next week or so.

Possible workaround: applying a 1px min-height to the body div in the above example collapses the div as I'd expect it to.
http://codepen.io/darby3/pen/VLoExv?editors=110
Kind of a shot in the dark, I stole the min-height idea from something else and tried it on a whim, but now I can't remember where I saw it/used it.

Hmmm, it's very strange why 1px works but not 0px. I'm hesitant to suggest a workaround if I can't explain why it works. Any ideas?

"Why" is a bit over my head. I can also say I just used a min-width:1px to make form inputs in Firefox respect a flex-basis percentage. It's all a bit magic pixie dust to me but I'd love to know if someone can explain what's going on here.

I just finished dealing with this bug. It's terrible and unintuitive. Here's a stripped-down code example that describes and replicates the bug in IE10 and IE11:
http://codepen.io/anon/pen/EPxaBJ
Adding min-height: 1px to the flex item does, in fact, work around the issue. There's some sort of sorcery going on here in IE's guts. My best guess is that the min-height forces IE to recalculate the height of the rendered content after all of the resizing, and that makes it realize that the height is different.
Here's the code example with the workaround: http://codepen.io/anon/pen/RrwPbG
Thanks @darby3 for putting up this workaround.

@ScottTrenda thank you so much! fixed my issues.

@ScottTrenda Thanks from 2017.

@ScottTrenda Thank you so much. I've spent a lot of hours trying to solve that problem. Thank you!!

Another "Thank You!" from me. I was going crazy about this one.

As @rtack mentioned, the min-height trick doesn't work when the flexbox grid is inside of another flexbox grid, like the Holy Grail Layout. Here's my example https://github.com/philipwalton/solved-by-flexbox/issues/114.
Seems like there isn't a workaround for this case...

Thanks from 2372.

@Jip-Hop
I seem to have discovered a work-around for this, setting the flex container to min-height: 1px and the image element to have a max-height: [VALUE], as well as max-width: 100%, with the max-height value being as large as you need. At least, this approach has worked for me.

Thank you @darby3 and @ScottTrenda. You have made my day!

Thank you @darby3 and @ScottTrenda. The two of you managed to save me from hours more of frustration figuring out why this wasn't working.
It's a shame that this isn't in the Flexbugs page properly. FWIW, this issue is quite high up on the google search for "ie11 flexbox image size bug". It would be good if people were directed to the proper Flexbugs page than this issue, but I understand that it's due to lack of documentation. Anyway, thanks for this. 😄

Hi everyone I go through all of the discussion it's a very good discussion but doing what you guys figure out still remain the height of the card same and the space is created between the image and the text

I've got to the point that that I've set the max-width for the image inside the flex-item that would not affect height and would not affect the image resizing.
The layout I need to have is:
[       ]
[] [] []
The small boxes won't grow much until it reach mobile size and it would need some css changes to adjust for a stacked mobile display.
FlexBox
Flex-Item
Img
width: 100%;
max-width: 300px;

happened for me today with bootstrap4 and an image inside .modal-body
min-height: 1px; on .modal-body fixed it.

@media screen and(-ms-high-contrast: active), (-ms-high-contrast: none) {
  /**
   * IE11 Fix image auto height
   * https://github.com/philipwalton/flexbugs/issues/75
   */
  .modal-body {
    min-height: 1px;
  }
}

THANKS! :pray: :pray: :pray:

@ScottTrenda Thanks, worked perfectly for UIkit 3.0.3

Thank you from 2019!

thx

I cannot imagine that it is still a workaround in 2019... Thank you very much!

That's what happens when development stops on an old browser version.

Thanks from Sep 2019!

Thanks from 2020. :)

this saved me today! thanks many times.

Thanks from 2020. Saved me a lot of headache.

Thanks from March 2020 as well!

👀

Thanks from April 2020..!!

Thanks from May 2020! IE is terrible

Thanks from July 2020!

Thanks from Aug 2020!
I added min-height and removed parent flex grid because the workaround won't work in nested flex elements.

I'll continue the custom 😸:
Thanks from October 2020!
..just ridiculous we are still dealing with this browser

how on hell could someone come up with such workaround?! ;)
nevermind, just saved me after several hours of head scratching!!
🙏🙏🙏

The min-height fix doesn't necessarily have to be applied to the flexboxes. In my case I had a few layers of elements between the  and the nested flexboxes. Setting the min-height to the flexboxes did not help but applying it to one of the immediate elements fixed the problem.
You can decrease the min-height to .1px or less.

@ScottTrenda thanks from 2021 because we are still using IE11 🙇🏻♂

Thanks from September 2021!


Drawer with ReactNavigation and SafeAreaView

💬 Question
Is it intended, that the navigation drawer is displayed as below? I think it is missing the safe area view (used an iPhone 11 Pro Simulator)

UI Kitten and Eva version

Package
Version

@eva-design/eva
2.0.0

@ui-kitten/components
5.0.0

@react-navigation/drawer
5.8.0

@joleb we don't handle it out of the box because there are multiple approaches to handle safe area, e.g by using context.
Also, sometimes you don't need safe area there (in case you use heading image).
So yes, it is.


Single HTML file.

Hello, I hope you will provide a copy of this operating system as a single HTML file that can be easily shared among users and run anywhere, even on smart devices, without the need for complex tools such as NodeJS and the use of a terminal. Thank you very much.

Something like this: https://github.com/prozilla-os/ProzillaOS/blob/gh-pages/index.html ?

Yes, that is what I mean, but I would like to provide a pre-built version that the user can download and run easily without having to build from source if the application does not rely on the web server primarily, for example, to store user data. Even I, as a web developer, faced difficulty in building the application and it did not work for me.  The build required some dependencies, and when I installed it, some errors appeared.

if the application does not rely on the web server primarily, for example, to store user data.

Could you elaborate on this please? Do you want the application to work without having to store user data or are you asking for an offline storage solution?

The build required some dependencies, and when I installed it, some errors appeared.

Could you show me the errors that appeared in a new issue so I can work on solving them?

"if the application does not rely on the web server primarily, for example, to store user data."
In the above-mentioned part of the message, I was wondering whether the application could be run independently on a web browser without the need for a web server, or is it designed to be in two parts, a front end and a back end?

This application is purely frontend, but as far as I know, you still need a web server to serve the necessary files, either locally on your PC or online via a web service. I'm wondering why you would want to avoid using a web server when running this website, could you describe your goal?

There are many reasons that push me to avoid using a web server with this application. The first reason is ease. If this application was a single independent HTML file, it would be much easier for users to download and run it with the click of a button without the need for additional steps such as setting up the web server and it would be completely cross-platform.  It is more flexible, as it will work on any device that has a web browser, and it will be easier to share and transfer. The second reason is speed, as the application’s connection with the web server may consume more time. The third reason is security, as the application’s connection with the web server may be exposed to hacking, which leads to receiving fake files.  The fourth reason is the need for an Internet connection. When a user uses the cloud services that host this application, he will need an Internet connection, and this is not always available.

Do you have any other real-world examples of websites that provide a download as a single HTML file? This is my first time hearing about this approach. Wouldn't this also be possible in the form of a PWA? Besides, most of your arguments, including being easy to share with friends, also apply to the current form, a website, which can easily be shared just by sending a URL. Sorry if I sound ignorant but it sounds like a lot of work for not so many benefits.

There is already a project called LumiOS that allows downloading it as a standalone HTML file. However, the problem with that project is that it's closed-source. As for the popularity of bundling web project files, tools have recently emerged called Web Bundlers. The function of these tools is to bundle web project files into unified files. For example, bundling all scripts into a single script or something similar, and the bundling process can be customized as desired. In the end, I’m not demanding that all websites take this step, but this particular idea should be considered because operating systems, as we know, are distributed as a single file in ISO or IMG format. Finally, I apologize, I know I may have given you a headache, but this is not something I'm directing at you—it's just a suggestion you can accept or reject, and I would be happy either way. Thank you very much for your patience.

Even I, as a web developer, faced difficulty in building the application and it did not work for me. The build required some dependencies, and when I installed it, some errors appeared.

Could you create a new issue and write the steps to reproduce this bug, @MuhammedSaleem-Brej ?

Alright, I will give it another try. This will require me to re-download the necessary libraries. But before I do that, and to be fair and not misjudge the application, the folder I tried to build from is the DIST folder. Is this the correct folder to start from? Just a note, I’m not very skilled in dealing with Node.js packages.

This thread is going slightly off-topic, but the folder you need to build depends on which part of the project you are trying to run. If you want to build the website, make sure you have pnpm installed and run pnpm run demo:build. For more information about the different scripts, check out the readme file.


Menu appears in bottom left corner

Hi,
With GLMakie 0.6.0 / Makie 0.17.0 (and also having tried HEAD), I'm seeing Menu text/dropdowns all appear (overlapping) in the bottom right corner.

I've got no idea what's going on here, other than that this seems to be occurring consistently.

Hm I thought I had fixed that on master a while ago. Blocks like Menu have a different Scene structure now and this changed some coordinate calculations for where things should be. @SimonDanisch did anything in that regard change recently? I definitely tested all Blocks to work with GLMakie before I merged that PR.

Oh, I may have incorrectly resolved some merge conflicts, e.g. here:
https://github.com/JuliaPlots/Makie.jl/pull/1818/files#diff-d8b9416e400a74c92f67c1c5d3b0685bc4a39b153f4b66b7890311ab1b38421e

I made a PR, and as far as I can tell, things work again!


Add support for Linux 32 bits?

Hi,
We still have 32 bits Linux dev machines here and there and I was wondering if jsass could easily support 32 bits Linux?
I'm willing to do the leg work if it seems feasible and a pull request implementing that would be accepted.
Thanks for the feedback!
--
Guillaume

hey @gsmet, in the latest development release, I have renamed the build-linux docker container into build-linux-x64. I am open to it to merge even a Linux 32 container pull request. :-)
At the moment I'm working on windows 32bit and 64bit builds.

I take a look around. The main problem why 32bit architecture is not supported is, that docker officially only support 64bit. But there are some 32bit docker images on the hub, like 32bit/ubuntu, f69m/ubuntu32 or phusion/centos-5-32.
It may be possible to create a 32bit build container with them.

Yes, I started to work on this with a CentOS 5 32 bits image.

:+1:

Would also like to see a linux x86 version as well.

Any progress on this?

Not that I know of ¯_(ツ)_/¯

I have started on a 32bit build in the feature-linux-x32 feature branch.
Inexplicably the unit tests are failing with class not found errors.
I will continue the work within the next days.

I'm happy to announce, that 32bit support will come soon. I have merged the feature-linux-x32 branch.
After playing around, finally a 32bit library can be build within a 32bit centos docker container.
Before making the release, I need to do some maintenance work. The travis builds failing, because the new docker containers are still missing on docker hub. But this should all be done in less than an hour.
I'm optimistic that tomorrow night the new version will arrive ;-)

Wow that was fast :+1: Thanks for your effort.

Version 5.5 is released now. 👏

Nice


Fixing the async crash, command line path

Threads are started safely and can be stopped now.
Also added model path.

thank you for this!


[SD CHANGE] <IP_ADDRESS>.3 tests

What is the change request for the SD? Please describe.
For the invoking platform tests, there is really just one test, but it is listed as 3. On a straight reading, listing Test 1, Test 2 and Test 3 for different platforms implies I need to do all. While it is clear they are conditional, this is all the same test, it is just specified what APIs need to be checked for each platform.
Describe the solution you'd like
The test should be structured like FCS_STO_EXT.1 test which only shows one test and then lists what to do on each separate platform.

Change implemented.


Add operations before submitting a registration

Description:
As an IO, I want to enter all of my operations (facilities) into the system so that they can each be registered later on
Acceptance Criteria:
Given
When
Then
Development Checklist:

[ ] Checklist item
[ ] Checklist item
[ ] Checklist item
[ ] Meets the DOD

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[ ] User story is included
[ ] User role and type are identified
[ ] Acceptance criteria are included
[ ] Wireframes are included (if required)
[ ] Design / Solution is accepted by Product Owner
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

·Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

Notes:

I think this is the same as https://app.zenhub.com/workspaces/climate-action-secretariat-60ca4121764d710011481ca2/issues/gh/bcgov/cas-registration/26

Closing this as duplicate


[website] Overlapping header elements

Description
On klimadao.finance, getting overlapping header elements and headline bar situation...

Mostly seeing this on Macbook Air Chrome, but also can see some aspects of this in brave and firefox as well.

from [atmos]
yooo i took another look at this and i think i cracked it
my hunch is that when we added auto-sort import, it changed the order of the css

because this 10rem header height breakpoint is being overridden by the 6.4rem
so if you import globals.css after variables.css, it should be fixed!
i hope 🙏
use the comments to block the auto sort like we did for carbonmark


[#365] add city viewer user class

Implementation should be okay, but my envirnonment (poetry) was broken and I was not able to fix it in the time I had available. Migration is missing and the test could be extended a little bit. The test data / fixture might be extended a little bit for that.

We have an altogether better idea to solve the use case in a whole different way. See #365.


docs: adjust formating and duplicate entries

What This MR Does

Removes duplicate Contributing section from my merge conflict earlier
Runs markdown all in one formatter

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Switch to space id

Hello,
Is it possible to switch to a specified space id? I know I can do it with mission control, but I would prefer to do it just with chunkwm / khd. I can see it is possible to switch to a monitor, but I cannot find how to switch to a specified space id.
On kwm it was possible (a little bit buggy, but possible) with
kwmc space -fExperimental space_name

This is not possible to do without going through mission-control, unfortunately.
The method I used in kwm uses the private APIs, but these cause the rest of the system to go out of sync. When this happens, it causes a lot of the macOS APIs that we otherwise rely on to report faulty information, leaving us in a very bad state overall.
Because of that, I have opted to not implement this at all in chunkwm.
I personally have made binds to switch spaces in the keyboard -> mission control section, and enabled the reduced motion option to get faster transitions.
See https://github.com/koekeishiya/kwm/issues/581#issuecomment-283169881
I mean, it is possible to do it properly (creator of TotalSpaces2 has done it), I just dont know how and there are no docs on it out there.

Okok. I have setup shortcut in Mission Control and it works for me. I am closing this one since there is a native way to do it.

I emailed support at TotalSpaces2 they said that it's done by injecting code into the dock (which involves
the user modifying the SIP settings)

@slifin
Would you happen to be able to get any more details? I have also successfuly been able to inject code into the dock (used for quite a few features of chunkwm already), but I'm unable to get the space APIs that we use to also update the state of mission-control.
In short, we can create, destroy and switch spaces, but mission control does not update.

I never got a response to my subsequent query, hard to know if they did not know or were unwilling to tell

I suspect that it is the former. There is only one application that I know of that currently is able to do this, and that is TotalSpaces2. I believe TotalSpaces2 is closed source and costs a small free, and so I do understand their decision. Thanks for investigating though :)

Future reference:
https://github.com/rentzsch/mach_override

More stuff:
https://github.com/pombredanne/osx_headers/tree/master/CoreServices/Dock

@koekeishiya, I haven't tried it yet, by it looks like hammerspoon is able to switch to a desktop: https://github.com/asmagill/hs._asm.undocumented.spaces
The lua interface has this function
spaces.changeToSpace(spaceID, [resetDock]) -> spacesIDArray

Which is bound to a system API call.
I will try tonight if it works.

Hammerspoon uses the same system calls that I did in kwm

Ok. Nevermind than..

I've been using nm to inspect the symbols of the FastSwitch binary (the binary that TotalSpaces2 scription addition seems to load), and there are references to classes used in the private system headers that I linked above, and: https://github.com/mstg/OSX-Runtime-Headers/blob/master/AppKit/_NSCGSSpace.h
I have successfully managed to instantiate instances of some of these classes inside the Dock binary using the objc reflection system, however I have yet to find any meaningful way to use them.
e.g: I've properly mapped a cgsspaceid (we have these) to types of NCGSSpace etc, but no idea if this even helps.

here is the email address I used in case any one else would like to try

I've been using TotalSpaces2 for years, and I have it integrated into my kwm setup. I've been playing with moving over to chunkwm this morning. Is there anything I can do to test if TotalSpaces2's implementation is not getting the rest of the system out of sync like the -fExperimental calls were? Maybe they just don't care about the sync issues?

this is what  I use:
cmd + shift - left  : chunkc tiling::window --send-to-desktop prev; khd -p "ctrl - left"
cmd + shift - right : chunkc tiling::window --send-to-desktop next; khd -p "ctrl - right"

@cjpetrus: i don't use mission control shortcut because they are static and cannot be changed programmatically. I have different configurations based on the type of work I am doing where a desktop number corresponds to different shortcuts.

I've researched this a bit and found with fs_usage that the keys are stored in ~/Library/Preferences/com.apple.symbolichotkeys.plist.
When changing the hotkey for Switch to Desktop 1 to ⌃1, the system process cfprefsd basically runs this command:
defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 118 "{ enabled = 1; value = { parameters = (65535, 18, 262144); type = standard; }; }"

Executing this manually, however, does not enable the hotkey. There is some piece missing, and it is likely why fseventsd also touches the file right after a change has been made with cfprefsd.
This seems like a good starting point, and further investigation of the inner workings of cfprefsd seems necessary to be able to change these programmatically.

Ah! this is interesting.. I guess some reload of some Daemon is needed.. Have you tried hupping cprefsd and fseventd after changing the hotkey?

Not sure if relevant; https://developer.apple.com/documentation/corefoundation/preferences_utilities has a Synchronizing Preferences section.

I just tried out to do what @dominiklohmann said and than syncronize CPrefs with python:
from Foundation import CFPreferencesSynchronize, kCFPreferencesCurrentUser, kCFPreferencesAnyHost

CFPreferencesSynchronize('com.apple.symbolichotkeys',kCFPreferencesCurrentUser, kCFPreferencesAnyHost)

Nothing happened. Than I logged out and relogged in and the keyboard preference is set, but not activated. Something needs to be restarted in order to make the system load the new keybinding.
Also we need to find the proper way to tell system prefs to activate the keybinding.

Anyway, I have manage to fix my profile based desktop switching with a trick between mission control and skhd which @cjpetrus made me think of:
On mission control set "complex" keybinding for desktops, like

Desk 1: CTRL + ALT + CMD + F1

On skhd profile1:

cmd+f1: skhd -p "ctrl + alt + cmd - f1"

On skhd profile2:

cmd+f2: skhd -p "ctrl + alt + cmd - f1"

Still it would be nice to have something integrated with chunkwm if it is not too complex to achieve.

I didn't realise until recently but totalspaces2 and chunkwm work quite well with each other in that they don't appear to conflict and totalspaces2 will give you instant switch between spaces by numerical and relative key binds
The only downsides are that totalspaces2 is non free software

I've found the totalspaces2, chunkwm, and khd combo provides a very stable combo, where totalspaces2 is basically only used for the instant space change w/ no transition and without the mission control system getting out of sync.

Just a little update here, as I have been messing around for fun, trying to investigate how this works.
The Dock DOES call CGSShowSpaces() and CGSManageDisplaySetCurrentSpace() as I posted a long time ago (these are the same functions we used in kwm, and they work, but out initial problem was that Mission Control (essentially the Dock) did not update). The missing piece is the following:
objc_msgSend([DPDesktopPictureManager init], @selector(spaceChanged:), ?)
I've added a question-mark for the third argument, because i don't yet know how to get at the data it passes. I do however know that it passes a pointer to some form of internal space structure (could it possibly be the space UUID??). The value is retrieved offsetting by a constant value (offset into a struct/class member-list)
r12 = *(rbx + *objc_ivar_offset__TtC4Dock12ManagedSpace_space);
Just for the sake of it, I did call a method of DPDesktopPictureManager called _notifySystemsThatDesktopsAreReady and funnily enough that function call reset the wallpaper for the desktop i switched to (after having called the beforementioned SetCurrentSpace(..)

@crisidev  @dominiklohmann
Earlier you mentioned the mission control hotkeys and~/Library/Preferences/com.apple.symbolichotkeys.plist
There are a group of private functions CGS*Hotkey that would probably go along with the defaults write thing you did earlier. I assume the implementation uses the plist that you wrote to for making changes persist through  logout / reboots, but the actual work uses the CGSHotkey APIs. See for instance this header file if any of you are interested and want to take a deeper dive at this: https://github.com/NUIKit/CGSInternal/blob/master/CGSHotKeys.h
The reason I believe the above is what is required, is because there are similar public APIs that I use to set keyrepeat-delay and keyrepeat-rate in https://github.com/koekeishiya/krp

So I figured the fastest way was to just inspect the payload that TotalSpaces2 loads inside the Dock.
Basically, what we need to do is the following

Identify which parts of the Dock is responsible for updating the current space. This is very likely to be the function I mentioned above: [DPDesktopPictureManager spaceChanged:]
The function above is an instance method, and not a class method, meaning we need to actually get a handle to the already instantiated object of this type, that the Dock already has.
Use meta-data of that class to call methods in our code using objc_msgSend (or define a class interface in our code, to call through regular objc-syntax) with a cast.
Identify which part of the Dock is responsible for other operations that we may be interested in (transitions, space created / destroyed etc).

The tricky part is getting a handle to an already instantiated object.
TotalSpaces is doing this by using fixed offsets from the baseaddress, and matching based on a pattern.
   if (*_FS_DPDesktopPictureManager_Inst == 0x0) {
            NSLog(@"[TotalSpaces] FS_DPDPM was nil");
            rax = _load_address();
            rax = _find_hex_seq(rax + 0xa000, "?? ?? ?? 00 48 8B 35 ?? ?? ?? 00 FF D3 31 D2 4C 89 FF 48 8B 35 ?? ?? ?? 00 FF 15 ?? ?? ?? 00 4C 8B 65 C8 E9 E8 01 00 00 44 89 65 D4 4C 89 75 98 48 8B 35 ?? ?? ?? 00 4C 89 FF FF 15 ?? ?? ?? 00 85 C0 0F 85 20 01 00 00 48 8B 35 ?? ?? ?? 00");
            if (rax != 0x0) {
                    objc_storeStrong(_FS_DPDesktopPictureManager_Inst, *(rax + *(int32_t *)rax + 0x4));
                    NSLog(@"[TotalSpaces] Location %p, value %p", rax + rcx + 0x4, *_FS_DPDesktopPictureManager_Inst);
            }
            else {
                    NSLog(@"[TotalSpaces] : Not found!");
            }
    }

Last update to end on for some time..
I've successfully managed to send a CGSSpaceID that we operate with in chunkwm, to our scripting addition running in the Dock, have it perform the space change AND update the rest of the system.
Next step is probably getting rid of animations, and operations to create and destroy spaces.

Thanks as usual for the dive deep! This looks closer to a solution than ever.

Ok I lied. I actually got space switching working WITH NO ANIMATIONS. This is a glorious day. :)
I consider this issue resolved, BUT I need to do some major cleanup and stuff before any of this can be pushed. I'll probably test it personally through the weekend before I do a "release".

Wonderful!!! I can help testing if you need during the weekend

Wow you shot that pie right out of the sky. Your determination is admirable.

Just a heads up, this is likely to require Sierra or High Sierra to work. El Capitan works differently, and as I don't have a machine with El Capitan running (and I've done my fair share of RE for quite a while) we will only support this feature on Sierra / High Sierra.

implemented on master.
`chunkc tiling::desktop --focus <prev | next | mission-control index>``
It's been working perfectly for me, although I have not tested multi-monitor support.

I will test it this afternoon and report back! One question related to chunkwm-sa: last time I tried on use it, it was not working after I switched back system protection. Am I wrong or it should work once it has been installed with system integrity protection off and than turned on again?

You should be able to turn SIP back on after having copied it into the directory and performed a sudo codesign.

Holy s**t! I just tested this and it works perfectly, even with 2 monitors.
Thank you so much @koekeishiya ! You've got some mad RE skills, really.
I remember trying to find out what Totalspaces2 was doing but I had no idea what to look for in those monster binaries.

Just for completeness. I build chwm-sa and codesigned it like this:
sudo codesign -f -s - CHWMInjector.osax

After it I copied it to the scripting addition folder.
Am I doing anything wrong?

Check the Dock's crash dump (open console.app)
On May 26, 2018 3:00 PM, Matteo Bigoi<EMAIL_ADDRESS>wrote:
hum, I am not able to make this working.. I have latest chwm-sa installed and when I run inject I can see the dock listening:
❯❯❯ ~/Crisidev/software/chwm-sa/inject_test lsof -i :5050
COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Dock    6188 bigo   26u  IPv4 0xb2795332bf895bbd      0t0  TCP localhost:mmcc (LISTEN)
After is I run chunkc tiling::desktop --focus 2 nothing happen (I am on desktop 1) and the listening Dock process disappears.
❯❯❯ ~/Crisidev/software/chwm-sa/inject_test lsof -i :5050
❯❯❯ ~/Crisidev/software/chwm-sa/inject_test
I am not sure how to debug this properly. I cannot see any useful info inside chunkwm log, I only see this:
2018-05-26 13:58:12 DEBUG: chunkwm: processing event of type 'ChunkWM_PluginCommand'
2018-05-26 13:58:12 DEBUG:     command: 'f', arg: '2'
2018-05-26 13:58:12 DEBUG: carbon: process details
Name: Dock
PID: 6460
PSN: 344148 0
Policy: 1
Background: 1
2018-05-26 13:58:12 DEBUG: carbon: process details
Name: com.apple.dock.extra
PID: 6475
PSN: 348245 0
Policy: 1
Background: 1
2018-05-26 13:58:16 DEBUG: chunkwm: processing event of type 'ChunkWM_SpaceChanged'
2018-05-26 13:58:16 DEBUG: chunkwm:Tiling:focused_desktop_mode
2018-05-26 13:58:16 DEBUG: chunkwm: processing event of type 'ChunkWM_PluginBroadcast'
2018-05-26 13:58:16 DEBUG: chunkwm: processing event of type 'ChunkWM_SpaceChanged'
2018-05-26 13:58:16 DEBUG: 1:desktop   432:0:iTerm2:Shell
2018-05-26 13:58:16 DEBUG: 1:desktop   121:0:iTerm2:Shell
Any pointer?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/koekeishiya/chunkwm/issues/127#issuecomment-392259910, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AF481-IkR2YK6QTrEC8PYV84bGccoiY0ks5t2VHggaJpZM4OSIcn.

Ok, I'll try to reinstall the bundle, codesign like you are doing it and reboot.

Same old story, the dock segfaults as soon as I run a chunkc command invoking chwm-sa action :(
I also tried to use the provided chunkwrc from the git repo to be sure I am not using anything weird in mine, but it happens the same.
NOTE: I have the system integrity protection disabled on my system to allow me to copy the chwm-sa bundle and reboot without having to go into recovery, but I don't think this could create any issue.

Try go to Console.app -> User Reports, and there should be (plenty) crash dumps for the Dock there. See if you can find the most recent one and post a gist or something of it.
I have SIP permanently disabled while I've worked on this (and prob for a longer period of time now) so that is not a problem. Could be something Sierra specific maybe.

Here the most recent crash:
Process:               Dock [2468]
Path:                  /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
Identifier:            com.apple.dock
Build Info:            Dock-1738015000000000~1
Responsible:           Dock [2468]
    __TEXT                 000000010bc1e000-000000010c11f000 [ 5124K] r-x/rwx SM=COW  /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
6   com.apple.dock                	0x000000010bdd30ca 0x10bc1e000 + 1790154
8   com.apple.dock                	0x000000010bc23bdf 0x10bc1e000 + 23519
2   com.apple.dock                	0x000000010bc412ef 0x10bc1e000 + 144111
       0x10bc1e000 -        0x10c11eff7  com.apple.dock (1.8 - 1738.15) <21F85527-2F2C-36E4-845F-8271010A860F> /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock

@koekeishiya thanks for the help. I am definitely just a macos user. If we would be on linux I would be more helpful :)

I have also found this line in the logs, not sure if related, but it happened a couple of times:
May 26 14:34:29 Dock[2468]: BUG in libdispatch client: kevent[EVFILT_MACHPORT] monitored resource vanished before the source cancel handler was invoked

Hmm is that all there is in the crash dump? Mine look something like: https://gist.githubusercontent.com/koekeishiya/849e0ed51ea54d1301cf1f379dd48b80/raw/1b0346e595e9af6ed29f9c91d852c5ed4fee5893/asd

I suspect it crashes here for you: https://github.com/koekeishiya/chwm-sa/blob/d81bd24cdc90389cb6eabbae12c11d2a777f220e/payload_test/payload.mm#L374
You can try and go back to this commit here and verify that it never reaches the print at L376
https://github.com/koekeishiya/chwm-sa/tree/d81bd24cdc90389cb6eabbae12c11d2a777f220e

My crash dump is what you see. I will try the commit you posted now.

You should be able to attach to the Dock using lldb with SIP disabled.

After I rebooted, I can see the full crashdump. I swear, what I posted is what I was able to see.
Here is the dump from latest version of chwm-sa: https://gist.githubusercontent.com/crisidev/1021149aa0929281e3411b3f8adb1889/raw/9d33156f2b6893a56b85ee974363dae64941b7c1/gistfile1.txt

It's definitely the isue that I mentioned. I added some safety guards in the latest commit to chwm-sa. Try run that one. So the current version probably only works on High Sierra then. I don't actually have a machine with Sierra to test on, but assumed (from what I saw in the TotalSpaces binary), that High Sierra and Sierra was equal.  I can tell you the dock scripting addition is running fine now since I have enabled transparency and it works. Also the socket stays there.
Any command I run to switch desktops is somehow ignored. Nothing crashes, but also nothing switches. I guess there are some differences in non-high Sierra.
Can I help in any way to get to the bottom of this?

@crisidev
I probably have to settle for what we got so far. It is not really feasible to try and RE something and make it run on a system that I don't have available. Is there any reason in particular why you are not on High Sierra yet though?

I am using chunkwm on my corporate laptop and I haven't had the time to switch to high sierra yet. I will try to switch in as soon as I can :)
Regarding making this work with old Sierra, I perfectly understand, there is no point of RE something you cannot test. Thanks for the help in the meantime!!

This is working great. Would it be possible to have chunkc tiling::desktop -f <next|prev> also be able to focus fullscreen windows?

I'll have a look at it later tonight
On May 26, 2018 6:41 PM, Matthew Dias<EMAIL_ADDRESS>wrote:
This is working great. Would it be possible to have chunkc tiling::desktop -f <next|prev> also be able to focus fullscreen windows?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/koekeishiya/chunkwm/issues/127#issuecomment-392273044, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AF4811tYuw4Fl4UgPG_vZz90MTtRTDIlks5t2YXMgaJpZM4OSIcn.

chunkc tiling::desktop -f <next|prev> properly works across monitors, and switching to a non-focused desktop on a non-focused monitor should now properly activate the active window on desired desktop for the inactive monitor.

@matthewdias
chunkc tiling::desktop -f <next|prev> now also properly supports fullscreened application desktops, but they can not be referred to directly, as they don't have a number assigned.
This change requires you to install an updated version of chwm-sa.
After this latest change, and the multi-monitor fixes from yesterday, this is feeling very usable :)

@koekeishiya slight problem there, when switch away from a fullscreen app using tiling::desktop -f, the fullscreen app gets stuck behind all the windowed apps on whatever desktop you focus.
Other than that I am loving this functionality, feels like a whole new environment.

I came across this thread while researching approaches to programmatically switch spaces, and found the information shared here invaluable. Thanks very much for sharing all the details, this is IMO the best up-to-date discussion regarding working with macOS spaces.
I had to work with the constraint of the user not having the option to disable SIP, so came up with a solution involving placing a unique anchor window on each space, then activating it in order to switch to that space. I made it into a framework: https://github.com/bigbearlabs/SpaceSwitcher
Maybe it will help someone searching for solutions in and around the same topic...


Bright and normal colours are identical

I very much enjoy the overall look of this colour scheme, but had to disable it due to normal and bright colours being identical. This correcting commit 00eaad35db62b554094774d48e12f9fb3ba21775 makes me believe that this is not accidental but intentional. Is there a chance to have all 16 colours distinct?
Breaking for me is the mail view in MUA alot, for which all mail header lines become invisible with SpaceDuck active.

Here is a pair of screenshots with the difference in appearance between Campbell and SpaceDuck:
Campbell

SpaceDuck

And just for reference, why it occurs in alot: its default theme uses dark and light gray for foreground/background of header_value (i.e. the field contents).

I would agree, there should be a distinction between normal and bright colors. I ended up adjusting the Windows Terminal color scheme in order to resolve the issues I was having. Here is the config I ended on and some examples from before and after through neofetch.
        {
            "name": "SpaceDuck",
            "cursorColor": "#f2ce00",
            "selectionBackground": "#f2ce00",
            "foreground": "#ecf0c1",
            "background": "#0f111b",
            "black": "#000000",
            "red": "#d36240",
            "green": "#5ccc96",
            "yellow": "#b3a1e6",
            "blue": "#6d3c8a",
            "purple": "#c0aa2e",
            "cyan": "#00a3cc",
            "white": "#c9cca9",
            "brightBlack": "#686f9a",
            "brightRed": "#e33400",
            "brightGreen": "#51eea2",
            "brightYellow": "#9d79ff",
            "brightBlue": "#9630d1",
            "brightPurple": "#f2ce00",
            "brightCyan": "#19c5f0",
            "brightWhite": "#fafce0"
        }

Repo color scheme:

My custom color scheme changes:

This looks pretty good. I'll have to test and add this in. If it works, it'd be good to update all the other configs as well. I've heard some complaints from others regarding this issue. Thanks for this @kmuncie ! 🚀 🦆


[FR] make input field focused when settings is opened

it would be nice to have the search field be focused automatically so the user can open settings via hotkey then immediately type the setting they want without having to remove their hands from the keyboard. currently, the "Search installed plugins" field is the active focus but I believe that search is subsumed by the global search of this plugin

Hmm yeah, it works on my end. Can you try in the help vault?

working in the help vault 💪 time for me to go through all my plugins haha


Update utils.py

docstring typo: an -> a

Failure here seems to be in a doctest? Literally just change "an" to "a" in a docstring.

Fallout from the secrets rotation at CircleCI after their security incident. Should work fine now


Digger Github Locking Issue

Hello,
There's currently a problem across all of our projects using the Digger Github app.
Our PRs are unable to acquire the lock and claims that the last merged PR has the lock.
We've tried digger unlock but the issue remains. Have there been any changes since last week that would affect the Digger Github app in this way?
Error:
❌ Failed perform lock action on project: develop-database failed to lock project: Project<project> locked by another PR https://github.com/<project>/pull/14 (failed to acquire lock <project>). The locking plan must be applied or discarded before future plans can execute

Version<EMAIL_ADDRESS>

Hello are you using cloud or self hosted backend ?
Try to upgrade to the latest version of both to see if it resolves
If using self hosted you can try to empty the digger_locks table
If you are using cloud and none of this helped please post this issue in support channel of slack to further investigate

Hi @motatoes, as per Liam's message above. How do we join the Slack community?

Hi @brianwpaxton @liam-witterick its on digger.dev landing page button "slack community" , let me know if any issues joining with that link!

Thanks. It will only let you join if you have a digger.dev or tuition.io email address.

oh .. let me check!

@liam-witterick, @brianwpaxton - the link is now fixed. Apologies.
You can join slack here

This issue should have been addressed in #1675 , please re-open if there are still issues!


Deploying an existing web app bot since VS Code

Does this occur consistently?
Repro steps:

Action: appService.Deploy
Error type: ECONNRESET
Error Message: request to https://overbot01.scm.azurewebsites.net/api/zipdeploy?isAsync=true&author=VS Code failed, reason: read ECONNRESET
Version: 0.20.0
OS: linux
OS Release: 5.8.0-41-generic
Product: Visual Studio Code
Product Version: 1.53.1
Language: en

Call Stack
ClientRequest.<anonymous> extension.bundle.js:166:16389
ClientRequest.emit events.js:327:22
TLSSocket.socketErrorListener _http_client.js:426:9
TLSSocket.emit events.js:315:20
emitErrorNT destroy.js:92:8
emitErrorAndCloseNT destroy.js:60:3
processTicksAndRejections task_queues.js:84:21

Please provide repro steps.

Dupe of https://github.com/microsoft/vscode-azureappservice/issues/1932


Recommended way of using more than one sharded dataset

I have few big datasets which I want to shard and use in one dataloader.

Can I use safely ConcatDataset ?
Should I use ConcatDataset or is there an url pattern that I can use ?

The webdataset.Dataset class takes shards either as a string or a list of URLs as an argument. If you give it a string, it simply expands it for you using braceexpand as a convenience.
You can construct the list of shards any way you like and just pass it as a list:
urls = list(braceexpand(dataset1)) + list(braceexpand(dataset2))
dataset.= webdataset.Dataset(urls)

TODO: add documentation strings

Hello, First I would like to thank all developers for their efforts in developing this wonderful library for our community. Keep it up!
My issue: How do we load multiple webdatasets into single pytorch data loader, while ensuring the sampling order is preserved between them.
Let's take an example: I have two web datasets with it's contents in the form

Dataset1.tar

cat11.png
-cat11.cls
-dog11.png
-dog11.cls

Dataset2.tar
-cat21.png
-cat21.cls
-dog21.png
-dog21.cls

I need to load webdatasets (Dataset1 and 2) into single pytorch data loader. Also, during the iteration over the batch I need to preserve their order for training the network.
Example: output
For batch_id, (input1, class1, input2, class2) in enumerate(loader):
Input1 = cat11.png
Class1 = Cat11.cls
Input2 = cat21.png
Class2 = Cat21.cls
Please,  kindly suggest me how to obtain this format? Thanks and greatly appreciate for this help.

I'm not sure I fully understand your example. Why would you want "cat11.png" and "cat21.png" to have their order preserved? Aren't they unrelated training samples?
Relying on the order of samples in a dataset tends to cause data management issues in any DL framework; if you depend on two images being present during training in a particular order, it's best to put them into the same sample. In WebDataset, you do that just by file name. Here are two training samples (cat1 and cat2) each consisting of two images (1.png and 2.png):
cat1.1.png
cat1.1.cls
cat1.2.png
cat1.2.cls
cat2.1.png
cat2.1.cls
cat2.2.png
cat2.2.cls
...

The second part of your question is about merging two datasets. If you don't depend on order, you can simply list all the shards you want explicitly in a Python list:
import braceexpand
allshards = braceexpand.braceexpand("dataset1-{0000..9999}.tar") + braceexpand.braceexpand("dataset2-{0000..9999}.tar")
dataset = WebDataset(allshards)

If you really want an order-preserving merge of shards during training, you can write a small helper class to do so; but, again, while WebDataset is happy to do this for you, it's not a good idea from a data management perspective:
from webdataset import Composable, Shorthands  # not needed, just for syntactic convenience

class RoundRobin(IterableDataset, Composable, Shorthands):
    def __init__(self, datasets):
        self.datasets = datasets
    def __iter__(self):
        sources = [iter(ds) for ds in self.dataset]
        while True:
            for source in sources:
                yield next(source)

Hi there,
Thank you so much for your kind support.
Sorry my earlier explanation was much confusing. But, after your
suggestion, I have rearranged my dataset in a folder, which is as follows:
Dataset.tar - folder which contains image and class labels
Cat.aug1.png
Cat.aug2.png
Cat.aug3.png
Cat.cls
Dog.aug1.png
Dog.aug2.png
Dog.aug3.png
Dog.cls
The samples: Cat.aug1, Cat.aug2, Cat.aug3. are the different augmented view
of the same input image with label Cat.cls
I am interested in feeding all three images (Cat.aug1, Cat.aug2, Cat.aug3)
at the same time to a neural network with label. I am wondering how to
shuffle this dataset and still extract the corresponding 3 samples
belonging to the same input image (cat/dog) using web dataset. Please, let
me know how to deal with this.
Thank you so much for your time and patience.
Chetan
On Sun, Dec 20, 2020 at 2:07 PM Tom<EMAIL_ADDRESS>wrote:

I'm not sure I fully understand your example. Why would you want
"cat11.png" and "cat21.png" to have their order preserved? Aren't they
unrelated training samples?
Relying on the order of samples in a dataset tends to cause data
management issues in any DL framework; if you depend on two images being
present during training in a particular order, it's best to put them into
the same sample. In WebDataset, you do that just by file name. Here are two
training samples (cat1 and cat2) each consisting of two images (1.png and
2.png):
cat1.1.pngcat1.1.clscat1.2.pngcat1.2.clscat2.1.pngcat2.1.clscat2.2.pngcat2.2.cls
...
The second part of your question is about merging two datasets. If you
don't depend on order, you can simply list all the shards you want
explicitly in a Python list:
import braceexpandallshards = braceexpand.braceexpand("dataset1-{0000..9999}.tar") + braceexpand.braceexpand("dataset2-{0000..9999}.tar")dataset = WebDataset(allshards)
If you really want an order-preserving merge of shards during training,
you can write a small helper class to do so; but, again, while WebDataset
is happy to do this for you, it's not a good idea from a data management
perspective:
from webdataset import Composable, Shorthands  # not needed, just for syntactic convenience
class RoundRobin(IterableDataset, Composable, Shorthands):
def init(self, datasets):
self.datasets = datasets
def iter(self):
sources = [iter(ds) for ds in self.dataset]
while True:
for source in sources:
yield next(source)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tmbdev/webdataset/issues/19#issuecomment-748647670,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4AXU6D3AF2TVKIP3FCGXDSVZDPDANCNFSM4SHRVRYA
.

Hi there,
Thank you so much for your kind support.
Sorry my earlier explanation was much confusing. But, after your
suggestion, I have rearranged my dataset in a folder, which is as follows:
Dataset.tar - folder which contains image and class labels
Cat.aug1.png
Cat.aug2.png
Cat.aug3.png
Cat.cls
Dog.aug1.png
Dog.aug2.png
Dog.aug3.png
Dog.cls
The samples: Cat.aug1, Cat.aug2, Cat.aug3. are the different augmented view
of the same input image with label Cat.cls
I am interested in feeding all three images (Cat.aug1, Cat.aug2, Cat.aug3)
at the same time to a neural network with label. I am wondering how to
shuffle this dataset and still extract the corresponding 3 samples
belonging to the same input image (cat/dog) using web dataset. Please, let
me know how to deal with this.
Thank you so much for your time and patience.
Chetan
On Sun, Dec 20, 2020 at 2:07 PM Tom<EMAIL_ADDRESS>wrote:

I'm not sure I fully understand your example. Why would you want
"cat11.png" and "cat21.png" to have their order preserved? Aren't they
unrelated training samples?
Relying on the order of samples in a dataset tends to cause data
management issues in any DL framework; if you depend on two images being
present during training in a particular order, it's best to put them into
the same sample. In WebDataset, you do that just by file name. Here are two
training samples (cat1 and cat2) each consisting of two images (1.png and
2.png):
cat1.1.pngcat1.1.clscat1.2.pngcat1.2.clscat2.1.pngcat2.1.clscat2.2.pngcat2.2.cls
...
The second part of your question is about merging two datasets. If you
don't depend on order, you can simply list all the shards you want
explicitly in a Python list:
import braceexpandallshards = braceexpand.braceexpand("dataset1-{0000..9999}.tar") + braceexpand.braceexpand("dataset2-{0000..9999}.tar")dataset = WebDataset(allshards)
If you really want an order-preserving merge of shards during training,
you can write a small helper class to do so; but, again, while WebDataset
is happy to do this for you, it's not a good idea from a data management
perspective:
from webdataset import Composable, Shorthands  # not needed, just for syntactic convenience
class RoundRobin(IterableDataset, Composable, Shorthands):
def init(self, datasets):
self.datasets = datasets
def iter(self):
sources = [iter(ds) for ds in self.dataset]
while True:
for source in sources:
yield next(source)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tmbdev/webdataset/issues/19#issuecomment-748647670,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4AXU6D3AF2TVKIP3FCGXDSVZDPDANCNFSM4SHRVRYA
.


Restricted generic ArrayLike parameter is deduced as never[] for empty array argument

TypeScript Version:  2.0.3
Code
interface MutableArrayLike<T> {
    readonly length: number;
    [n: number]: T;
}

type ArrayOfNumber = MutableArrayLike<number>;
type ArrayOfConstNumber = ArrayLike<number>; // has readonly subindex

interface vec3 {
    // the `out` array is modified and then returned as the function result
    subtract<T extends ArrayOfNumber>(out: T, a: ArrayOfConstNumber, b: ArrayOfConstNumber): T;
}

// later..
const result = vec3.subtract([], vA, vB);

Expected behavior:
Param out and the result are of type number[] or some looser type.
Actual behavior:
Param out and the result are of type never[]
Comments
strictNullChecks is on.
I realise that the compiler gets no help from an empty array parameter to deduce the type of its contents, but I was hoping my restricting of type T would either make it force the the type or throw an error. Making it a never[] seems a bit useless though I can intuit some of the reasoning of the compiler.
The interface works like this as the vec3 interface (from gl-matrix) deals with simple arrays or typed arrays so I typed everything to at least force numbers in there, but I was hoping that I could get it to set the result type to the type of the argument that I pass into the out param, because that is the value that is returned to facilitate easier chaining.
This may be a design limitation but I can always hope.

We infer never[] from the empty array literal. That is the most specific type possible and it is a subtype of the ArrayOfNumber constraint, so it seems entirely reasonable. I looks to me like your intent is to return some array-like type, but always with an element type of number. I can't think of any way to express that other than overloads:
interface vec3 {
    // the `out` array is modified and then returned as the function result
    subtract(out: number[], a: ArrayOfConstNumber, b: ArrayOfConstNumber): number[];
    subtract(out: ArrayOfNumber, a: ArrayOfConstNumber, b: ArrayOfConstNumber): ArrayOfNumber;
}

Thanks for the feedback, I had not even considered using an overload in this case. I will try it out.


Use class _mt_1 for font_awesome where needed

Signed-off-by: Igor Pashev<EMAIL_ADDRESS>

This change is

I have a feeling we can solve this for all usages with something like:
https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4

Does the menu need this applied as well?


Laravel 5.4/Can't format cells using setColumnFormat

I want to export php web page to excel using maatwebsite. While exporting I need to add a column where only integer values should be updated, don't want to add any characters. And in another column only want to update Text, where do't want to add integer
here is my code:
 public function downloadExcel1($type,Request $request)
      {
         $data = $request->input();
         return Excel::create('Appraisal', function($excel) use ($data) {
  			$excel->sheet('mySheet', function($sheet) use ($data)
  	        {
  				 $sheet->getCell('A1')->setValueExplicit('ID');
          $sheet->getCell('B1')->setValue('Name');
          $sheet->getCell('C1')->setValue('Email');
          $sheet->getCell('D1')->setValue('Telephone Number');
          $sheet->getCell('E1')->setValue('Date');
          $sheet->getStyle('B1')->getFont()->setSize(20);
         $sheet->setColumnFormat(array(
      'B' =>  \PHPExcel_Style_NumberFormat::FORMAT_TEXT,
      'D' => '0.00',
      'E' => 'yyyy-mm-dd',
  ));

but bad luck this code is not working.I don't know whether it's a good way or not.Any help would be Appreciated.

Try calling $sheet->setColumnFormat as the very first line of the closure:
public function downloadExcel1($type,Request $request)
{
    $data = $request->input();
    return Excel::create('Appraisal', function($excel) use ($data) {
        $excel->sheet('mySheet', function($sheet) use ($data) {
            // Call setColumnFormat first
            $sheet->setColumnFormat(array(
                'B' =>  \PHPExcel_Style_NumberFormat::FORMAT_TEXT,
                'D' => '0.00',
                'E' => 'yyyy-mm-dd',
            ));
            $sheet->getCell('A1')->setValueExplicit('ID');
            $sheet->getCell('B1')->setValue('Name');
            $sheet->getCell('C1')->setValue('Email');
            $sheet->getCell('D1')->setValue('Telephone Number');
            $sheet->getCell('E1')->setValue('Date');
            $sheet->getStyle('B1')->getFont()->setSize(20);
        });
    });
}

@stephanecoinon thanks for your command ...but bad luck same as before

@mjshanu you'll probably need to convert the dates to an Excel timestamp using PHPExcel_Shared_Date::PHPToExcel depending on the date type in $data which by the way you're not using in the code sample you provided.
Which format do the dates have in $data: Carbon, unix timestamp, string?

I also has an issue with exporting numeric values that displayed as text in excel. setColumnFormat() did not do the job. What I  did to solve it was to do convert the variable I was exporting to an integer using the PHP command intval($var) ..... Hope this helps


Allow each domains to have its own routes to avoid duplicate route registration

Description
if we register the Panel with multiple domains, php artisan optimize fails with Unable to prepare route [login] for serialization. Another route has already been assigned name [filament.dashboard.auth.login].
It is because panel logic is registrying routes with the same name for each domain. This PR tries to fix that.
Closes: #11837
Visual changes
Nil
Functional changes

[ ] Code style has been fixed by running the composer cs command.
[x] Changes have been tested to not break existing functionality.
[ ] Documentation is up-to-date.

I have a feeling you didnt test that, the routes file still needs updating as its adding the extra param for 1 domain. Please manually test this with one domain or write a test for our suite.

The only test we really need is to hit the dashboard and check it renders, right? Set up a new panel provider with domain configuration. Basically to make sure the routing doesnt error out

Maybe have one panel provider for single domain, one for multi domains

Refactored to only use the first domain while testing, since it could be dangerous to assume the current domain in jobs etc, which now needs to be manually specified

If you want to make an additional PR, sure, but I don't mind the existing solution


choose a license and put it into the repo

o/
I'm packaging dssd at the moment, but I've noticed that it doesn't have a license yet. In the Rust world, dual licensing as Apache-2.0 and MIT is common, if you don't have a strong opinion on this yourself.

Thanks for your interest and effort! I have added a license (MIT) to the repository.

Great, thanks!


Update the gender codes due to changes in the DQT API

Context
The DQT API can now accept the same gender codes as Register.
Changes proposed in this pull request
Stop mapping gender_not_provided to Other on the TRN request that's made to DQT.
Introduce gender_not_available as a new code that (I believe) HESA are introducing soon.
Guidance to review

Moved to https://github.com/DFE-Digital/register-trainee-teachers/pull/2396 to run through CI.


Adding contribution

Would it be possible for you to add the information on how to build the application our self. Having that information would facilitate the contribution from others to the repo.

There is already a build guide available in the wiki, which outlines the steps for building the application.
As for contributions, I generally don’t accept pull requests to the project. However, if you notice any issues or areas where the downloader could be improved, please feel free to suggest enhancements or raise an issue in the repo.

Awsome thank you didn't notice the building steps before, I'll be checking them out. Thanks for mentioning!


Lazy Loading

Is it possible to only load days where a event is planned?

What do you mean by 'load'?

How is it possible to change the size value? If i change it, no event is showen

I just managed to do it. Thank you


Auth::user() returns null on a RouteServiceProvider closure (L5.2)

I'm trying to filter user posts like this
routes.php
Route::group(['middleware' => 'auth', 'prefix' => 'user'], function () {
  Route::get('preview/{postUser}', ['as' => 'user.post.preview', 'uses' => 'PostController@preview']);
});

RouteServiceProvider.php
public function boot(Router $router) {
  $router->bind('postUser', function($id) {
    Auth::user() //<-- always null
    Auth::check() //<-- always false
  });
}

it works on L5.1, any idea how to fix this on 5.2 ?

This is because the auth middleware is now run AFTER routes are matched.

To change this, just move the auth middleware and related stuffs back to the global middleware instead of putting it in the web group.


Issue with Accept header not getting detected

Hi there,
In my .env I have the following:
API_VENDOR=test
API_VERSION=v1
API_NAME="Test Api"
API_DEFAULT_FORMAT=json
API_SUBTYPE=testapi
API_STANDARDS_TREE=x
API_STRICT=true

And in the request I am making I have set the Accept: application/x.testapi.v1+json header
However I still receive the "Accept header could not be properly parsed because of a strict matching process." error. Any idea what I'm doing wrong?
Thanks

Ah, never mind, using the latest dev appears to have fixed the issue


Add NumberView and HashView components

Why:

Currently, it is not possible to convert numbers into different units (wei, gwei, eth) or different formats (decimal to hex)  (Issue #695)

How:

Added the NumberView and HashView components to enable conversion between units in numbers, copy to clipboard functionality, and format switching between decimal and hex.
gui/src/components/NumberView.tsx
gui/src/components/HashView.tsx

Preview:

Overall a nice effort, but I feel this somewhat misses the point.
we can't blindly wrap values in a NumberView and offer a couple of static conversions. Some values already come in wei, others come in gwei or eth. We need to be smart about the parameters, and how to convert between them (viem already has functions to deal with all this, as long as we know the decimals)
What I was expecting, was not a context menu, but a modal showing the different values the number can take, so I can copy to clipboard the one I'm interested in

Update:
Removed the menu and added a modal with all the conversions (hashes only display hex and decimal values).
In NumbersView, adjusted the conversion process to consider the initial value unit.
Preview:

Update:
In NumbersView, moved the hexadecimal format to another popover. Now, it is possible to see and copy the conversion to hexadecimal for each unit. I also added more units and adjusted the conversion process using formatUnits from viem.
Preview:


Allow to define and include a front page for the documentation

:tada: This issue has been resolved in version 1.8.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


(sub) Menu Styling

Hi I have been trying to solve this problem. but have had little success
basicly I am wanting to add a gradient using the --hiq-ccs format into the menu navbar (via the user.css)
but I'd assumed the dropdown menu background color was set via the ---hiq-dropdown-background-color custom options
however it doesnt seem to effect the dropdown background color at all.
I have also (using the Joomla menu item edit) set the template style to Lightning on the details tab

(I love the Dark themed backend template too by the way :) )
it still apears that the submenu items are not picking up on the lightning  C:\xampp\htdocs\4Joomla\templates\lightning\css\mod_menumenu.min.css style settings.
on inspection of the front end it seems the drop down class comes under the 'unstyled' Joomla Menu Mod class
( ul class="mod-menu__sub list-unstyled small" )
I'm a little fustrated as I can add a new menu module but I'd rather not ,it just seems I'm having trouble getting my submenu to gell with the lightning mod_menu menu.css (using overide of user.css of course) .
Its totally possible this is not an error in your template, more likely something I'm not doing right on the Joomla backend,
do you have any suggestions or tips on how to fix this or what Im doing wrong here?
Thanks - Sharn

In your user.css, you can use the following for a gradient in submenus:
.navbar-menu .mod-menu__sub {
  background: linear-gradient(90deg, rgb(0, 255, 16) 0%, rgb(255, 0, 0) 100%);
}


Update the dockerfile

Closes #2026

@vim-usds the builds were failing on that for me, and I found a lot of talk about it in that version of ubuntu, so I think so


Questions about accessing other project scripts in Unity(C#)

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ D415 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (10)

Kernel Version (Linux Only)

Platform
PC

SDK Version
{ 2.0 (build 2.16.5) }

Language
{unity }

Segment
{ }

Issue Description
<Describe your issue / question / feature request / etc..>

hello, have a good day!
I want to access the red square box script from the script in the yellow square box. but I can't access.
The script in the yellow square box does not find the class in the red square box.
In a red square box, I can access the classes in a yellow square box, but not the reverse.
What should i do?
thank you for reading!

@dorodnic Do you have any keywords for this problem?? I have no idea TAT

Hi @GameHuiTea
I'm not sufficiently familiar with the Unity wrapper, perhaps @ogoshen or @matkatz could comment?

Red & Yellow are actually two different assemblies.
See Unity's docs about ScriptCompilationAssemblyDefinitionFiles, and how to add references in the inspector.
Now it is my understanding that you are trying to add functionality to the RealSense components from external scripts which are separated on purpose. I suggest you keep them decoupled and redesign your components.
If you could post snippets of what you're trying to accomplish we might be able to help better.

I am not too sure, but take a look at my simple question/issue. See the Goal part.
Maybe you should post an example of what you are trying to accomplish by modifying the Realsense code.

I'm a little ignorant, but I found a way!
I made a new script and used it to copy the code of the script in the yellow square box.
It's working without a problem at the moment.
Thank you all for your answers!!


add human friendly error messages

Description
Changes proposed in this pull request:

Mapped error messages in bot packages
There is no need to add error mapping for mattermost since they already send readable error descriptions, we use them.

Here are the screenshots for testing results for different scenarios for Slack, Discord, and Mattermost
Slack

Discord

Testing
You can create an instance on Botkube Cloud Dev, and provide wrong creds, wrong channel, or not invited channel for each platform. You need to see human-friendly messages as shown above.
You need to run botkube deployment via go run ... on this branch after exporting
export CONFIG_PROVIDER_API_KEY=...
export CONFIG_PROVIDER_ENDPOINT=https://api-dev.botkube.io/graphql
export CONFIG_PROVIDER_IDENTIFIER=...

Related issue(s)
https://github.com/kubeshop/botkube-cloud/issues/520

Hi @pkosiec here is what I did;
Slack
They don't have error model for our cases, so I couldn't use them, used error string instead
Discord
I have used their  error model and re-mapped error with additional context
Mattermost
We don't need to do anything for mattermost since they already have error description, and they are human-readable.


Unit test for Cassandra datastore

Added unit tests for config functions in Cassandra datastore

Coverage increased (+0.01%) to 46.269% when pulling 8f9623c89d7d03a2ec3a398451942691b6697c94 on carolyntang:unitTest into 38d6edc143acb8a367c736e835a2c446cc9d19d9 on locationtech:master.


Websocket to serial port

Is it possible to connect to Zwave board via websocket instead serial like ZHA is doing? I have an idea to wire z-wave.Me PI Hat to ESP32 and virtualize HA instance without additional Raspberry PI or serial port passthrough.

https://github.com/cminyard/ser2net maybe


Feature request: Separate sliders for Damage, Armor, Health & Speed

it would be so handy if you could have seperate sliders for each
what i mean is:
currently if you set the factor to 0.1 every 250 blocks and max health increase to 1000
and you set the max damage increase to 5
after 12500 blocks the damage maxes out and stays the same for the rest of the time moving outwards while the health increases
but what i want to do is have it set at 5 but it reaches 5x damage at the same time it reaches 1000x health
let me know if im making sense

individual factor sliders thats what i meant

Just set the factor of speed so the health is scaled the same as speed.

Ups this is actually not a setting right now.


Fix problem of failing FileUploadSizeScenario2IntTest on S3 storage

Situation
In  integration test FileUploadSizeScenario2IntTest the test method when_binaries_tarfile_exceeds_NOT_max_bin_file_size_file_is_uploaded fails on S3 usage.
The problematic part is here:
assertEquals("Fetched file size not as expected for " + data.fileNameAtServerSide + " !", realFileSizeInBytes, fetchedSize);

We have real size of 307199 (one byte less than maximum allowed inside this test) but inside the uploaded text file (fetchedSize) we a much smaller value inside.
The problem happens only on S3 usage, not when we use a network share volume.
It happens on build servers and also on local machines.
Analyse
Inside AwsS3JobStorage we use the amazon s3 client api to upload data for s3 storage via TransferManager class which
returns an object which implements the  Upload interface. The implementation UploadImpl does extend AbstractTransfer.
The stream has to be full accessed/upload must be complete to have the counting mechanism over the stream working and calculating the corrected message digest and also the correct size, which will be persisted inside a text file.
To ensure the upload has finished  we currently use there upload.waitForCompletion(); - which is implemented inside AbstractTransfer. The special method waitForUploadResult inside UploadImpl does nearly the same and is no alternative.
A possibility for the problem could be, that the upload is NOT REALLY complete done and the further steps (write *.filesize file to storge) is done with a wrong calculated value.
Wanted
Find a solution...

The (reduced) test part is:
File downloadedFile = TestAPI.getFileUploaded(PROJECT_1, jobUUID, data.fileNameAtServerSide);

long realFileSizeInBytes = downloadedFile.length();

File downloadedFileSizeFile = TestAPI.getFileUploaded(PROJECT_1, jobUUID, data.fileNameAtServerSide + ".filesize");

String fetchedSizeAsString = TestFileReader.loadTextFile(downloadedFileSizeFile);
long fetchedSize = Long.parseLong(fetchedSizeAsString);

assertEquals("Fetched file size not as expected for " + data.fileNameAtServerSide + " !", realFileSizeInBytes, fetchedSize);

The output from test is:
java.lang.AssertionError: Fetched file size not as expected for binaries.tar ! expected:<7848> but was:<307199>
    at org.junit.Assert.fail(Assert.java:89)
    at org.junit.Assert.failNotEquals(Assert.java:835)
    at org.junit.Assert.assertEquals(Assert.java:647)
    at com.mercedesbenz.sechub.integrationtest.scenario2.FileUploadSizeScenario2IntTest.testErrorOrUploadDoneAsExpected(FileUploadSizeScenario2IntTest.java:243)
    at com.mercedesbenz.sechub.integrationtest.scenario2.FileUploadSizeScenario2IntTest.handleBinariesUpload(FileUploadSizeScenario2IntTest.java:212)
    at com.mercedesbenz.sechub.integrationtest.scenario2.FileUploadSizeScenario2IntTest.when_binaries_tarfile_exceeds_NOT_max_bin_file_size_file_is_uploaded(FileUploadSizeScenario2IntTest.java:77)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
    at com.mercedesbenz.sechub.integrationtest.api.IntegrationTestSetup$IntegrationTestStatement.evaluate(IntegrationTestSetup.java:229)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.lang.Thread.run(Thread.java:829)

So my first analyse was wrong - the filesize inside the text file uploaded to the s3 bucket does contain the expected size! So the input stream handling (and size calculation )is correct!

This is related to #1716 - while doing the fixes here, the problem became visible.
As long as #1782 is not done, it can be easy to check the uploaded file and whats happening.

Found the problem. IntegrationTestServerRestController.getUploadedFile had a problem inside and did not download complete files when S3 - see commit message for details


Fails on Null object - program crashed

I recently shifted from log4cxx to easyloggingpp.
But the previously working code gave me a runtime exception on the following line:
LOGD("Some string message but the msg object is null: " << msg);
and here's how LOGD is defined:
#define LOGD(msg) { LINFO << msg; }
The code breaks in this function:
inline Writer& operator<<(const std::string& log_) {
if (!proceed_) { return *this; }
ELPP_STREAM(logger) << log_;
return *this;
}
at
       _ELPP_STREAM(logger_) << log_;

I just noticed that it's not about NULL object but about reading the data from an inaccessible memory location. The DLL that I'm using is not allowing to create object in my application's space.
It has nothing to do with easyloggingpp.

hi syedbokhari,
Can you please close this issue when you are confident it's unrelated to the library?
Thanks

Yes, the issue was with my DLL access.
Thanks,


update/fix included questions.yaml

Update and fix the existing questions.yaml so users are able to use the Rancher Manager UI to provision clusters with rancher-cluster-templates. Currently users are unable to use it due to the modifications.

If anyone would like to assist with updating the questions.yaml for rancher-cluster-templates, please feel free to reach out through this issue! There is a significant lift to getting it fully implemented with all the cloud providers.


fix(axios): Remove max content size limit

Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

Remove max axios content size/length limit

Test plan
How are these changes tested?
Locally
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?
No

Fixes https://github.com/chroma-core/chroma/issues/366

A temporary workaround for anyone experiencing this is to just override the defaults
    // @ts-ignore
    this.collection.api.axios.defaults.maxContentLength = Infinity;
    // @ts-ignore
    this.collection.api.axios.defaults.maxBodyLength = Infinity;

@jonluca thank you for this! there is another PR out to swap axois for fetch for greater support.
https://github.com/chroma-core/chroma/pull/348
I'd like to make that change, but also want to persist this. Do you know if we need something similar for fetch?


how to update the data in database

how to update the data in database

I solved it by doing adding this:
      options.update = function(event, ui) {
        regroup(ui.item, ui.item.parent());
        ui.item = ui.item.add(ui.item.siblings(".sapMLIBSelected"));
        settings.update(event, ui);
      };

So the update callback will receive all dragged items as a jQuery array in ui.items.
@shvetsgroup: I think this needs to be done in all available callbacks to allow access to all the dropped items instead of only the one item being actively touched.
BR
Chris


Add option for navto to exclude built-in libs and files from node_modules

Feature request

🔎 Search Terms

navto
go to symbol in workspace
tsserver

Request
Currently navto includes all known symbols in a project. This include both symbols from the stdlib and from node_modules. However the most common use case for navto in my experience is jumping to another symbol within my code.
I propose we add new options to navto that let us exclude:

Symbols from the standard library
Any symbols from node_modules

This could be exposed as either a single new option on the request that's called something like justMyCode, or as two separate options for more fine grained control. In either case, we would expose the option(s) to users in the VS Code settings UI
Extracted https://github.com/microsoft/vscode/issues/46718 as the most common use case there seems to be excluding files under node_modules

Let's talk next week about how this might be handled


additional customizations

Is your feature request related to a problem? Please describe.
I need the possibility to customize the names of the months and days of the week for other languages
Describe the solution you'd like
Would it be possible to add attributes so that the writing of the months and days of the week can be changed? so that I could put it in languages other than English

I was also checking if there's a possibility to customise current date. Because it was kind a buggy in few devices. I wanted to change padding and borderRadius for current Date. Had to do it from patches but I don't think that is recommended. Please provide additional customisations or let me know if I can contribute in this.


Bump Docker registry version in the local-universe.py script

This PR bumps the Docker registry version that is started by the local-universe.py script to 2.4.1 in order to match the one that is required by the base image (2.4.1). This way we don't have to download another registry image, which might save a few minutes if that version is not already cached in the machine.

LGTM.

I see the same behavior, sudo make base downloads 2.4.1, sudo make local-universe downloads 2.4.0

@pyronicide  can you review and merge this?

I tested that generation of local-universe.tar.gz works correctly. @liorze did you confirm that the repo works correctly when added to DC/OS?

Got around to testing the result in a DC/OS cluster. I was able to load a local universe and launch the zeppelin package successfully. :ship: it @ryadav88!


optimize get pod by name

add a name to pod index in podlist
Signed-off-by: Xu Wang<EMAIL_ADDRESS>

this does not change any result, close it.


Support of unsigned 32 bit UTC timestamp.

It seems that the base62 encoder does not handle uint_32 timestamp properly. This Java version of ksuid only supports year 2014~2082 while the Golang version actually supportes year 2014~2150.
static String base62Encode(final byte[] bytes, final int length) {
    final int size = (int) ceil((bytes.length * BYTE_BITS) / DIGIT_BITS);
    final StringBuilder sb = new StringBuilder(size);

    // Allocate an extra zero value byte in the first position, so that the unsigned 32bit UTC
    // timestamp value is not treated as negative value and thus being encoded as
    // "000000000000000000000000000"
    byte[] b = new byte[bytes.length+1];
    System.arraycopy(bytes, 0, b, 1, bytes.length);

    BigInteger value = new BigInteger(b);
    while (value.compareTo(ZERO) > 0) {
        final BigInteger[] quotientAndRemainder = value.divideAndRemainder(BASE);
        sb.append(BASE_62_CHARACTERS[abs(quotientAndRemainder[1].intValue())]);
        value = quotientAndRemainder[0];
    }

    while (length > 0 && sb.length() < length) {
        sb.append('0');
    }

    return sb.reverse().toString();
}

Thanks for the bug report and the fix, @panhongx . It has finally been merged and released.


Multiple deadnames

Hello! First of all, I want to say that I love your extension, and thank you so much for making it! One suggestion I have is to allow the user to enter multiple deadnames. This could be useful if the user has a nickname based on their deadname or has changed their name multiple times (like me). Thank you!

I like this idea as well.


Add support for creating Java functions using "format:json"

Hot Java functions can only be created using the HTTP format/container-protocol, which should be deprecated in favour of JSON format. But that can't happen until the Java FDK supports the JSON protocol between Fn Server and the function container...

So, as far as I understand, today Java FN are hot by default, even if format is http.
Documentation is not clear on this point and therefore it seems that with Java you don't have HOT functions.

@luigisaetta The HTTP protocol format supported by Java functions supports HOT functions.  The JSON protocol format is also a HOT format but isn't supported the Java FDK at this time.  The intention is to add JSON support to the Java FDK, allowing Fn to standardise on the JSON protocol for HOT and to deprecate, and ultimately remove, the HTTP format which isn't supported by some other FDKs.

We're ditching json support in FN in favour of HTTP over unix sockets  closing this.


Provide API to programmatically interpret differences

I have config objects in a DSL that are described via  a series of structs.  As an example:
https://play.golang.org/p/NQfRr0iJy8s
Given two different instances of the Quiz struct, I'd like to be able to find out starting at any particular level, if there are differences.
If I used the cmp.Diff() method, I think I could parse out the syntax to determine what the actual changes, adds, and deletes are, but not only does this feel fragile, it is explicitly warned against in the docs.
So, is there a better way?

It seems that what you're asking for is a programmatic way to interpret the diff. Is that correct?

I believe that sounds right.  What my code is attempting to return is a set of results containing any adds, removes, or changes as discrete sets so that the consumer of this result object can perform whatever operations is necessary upon the objects that had those changes.

This would be really nice for structured logging of diffs as well.

Would API like the following suffice?
// Reporter wraps the provided reporter as an Option.
func Reporter(interface {
	// PushStep is called when a tree-traversal operation is performed
	// and provides the sub-values of x and y after applying the operation.
	// The PathStep is valid until the step is popped, while the reflect.Values
	// are valid while the entire tree is still being traversed.
	//
	// Equal and Diff always call PushStep at the start to provide an
	// operation-less PathStep used to report the root values.
	PushStep(ps PathStep, x, y reflect.Value)

	// Report is called at exactly once on leaf nodes to report whether the
	// comparison identified the node as equal, unequal, or ignored.
	// A leaf node is one that is immediately preceded by and followed by
	// a pair of PushStep and PopStep calls.
	Report(ReportFlags)

	// PopStep ascends back up the value tree.
	// There is always a matching pop call for every push call.
	PopStep()
}) Option

// ReportFlags is bit-set of reporting information about the comparison.
type ReportFlags uint

const (
	// ReportIgnored reports whether the node was ignored.
	ReportIgnored ReportFlags = iota
	// ReportEqual reports whether the node is equal.
	ReportEqual
	// reportUnequal reports whether the node is not equal.
	ReportUnequal
)

This API allows the user to pass in their own reporter and get a structured representation of the diff. The internal default reporter is being switched to use an API like this.
See report.go for an example of an implementation of this API that only report differences similar to what it does today.

@dsnet : Is this already available? If so do we have an example or test code to refer on how to use it? if not available yet, any timeline of when we can expect the same. Thanks a lot!

It's here at #123. I wanted to seriously think through the implications of the final API before merging, but anticipate that it will happen next week.
See here for an example: https://github.com/google/go-cmp/pull/123/files#diff-723c10615c952a994128a9cf62e6ca49

Fixed by #123.


Feat:Change Dropdown for Selecting Student or Canteen Role to Toggle Button

Describe the feature
Current Behavior:
The current implementation for selecting a role (Student or Canteen) is a dropdown menu.
Proposed Change:
Replace the dropdown menu with a toggle button to enhance user experience and provide a more modern UI component.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Great idea bro @chandannekya


make poet aware of epoch duration

related: https://github.com/spacemeshos/pm/issues/143
in order to coordinate poet with epoch duration this change introduces following configuration:

genesis time (--genesis-time)
epoch duration (--epoch-duration)
phase shift (--phase-shift)
cycle gap (--cycle-gap)

poet round execution is started at genesis + epoch_duration * epoch + phase shift
poet round ends at genesis + epoch_duration * (epoch+1) + phase shift - cycle gap
this way poet round is executed for epoch duration - cycle gap
during the cycle gap smeshers that participated in the previous round should prepare a new challenge and register in the new round. smeshers that didn't participate in the previous round may register in the currently open round at any time.
if poet crashes (or terminated) during round - it will recover and finish execution for interrupted round. as long as it recovers before rounds end - smeshers that are using this particular instance of poet will receive a valid poet proof, probably with a lower number of ticks.

@countvonzero can you please review this change?


bpf: Don't encrypt on path hostns -> remote pod

In pod-to-pod encryption with IPsec and tunneling, Cilium currently encrypts traffic on the path hostns -> remote pod even though traffic is in plain-text on the path remote pod -> hostns. When using native routing, neither of those paths is encrypted because traffic from the hostns doesn't go through the bpf_host BPF program.
Cilium's Transparent Encryption with IPsec aims at encrypting pod-to-pod traffic. It is therefore unclear why we are encrypting traffic from the hostns. The simple fact that only one direction of the connection is encrypted begs the question of its usefulness. It's possible that this traffic was encrypted by mistake: some of this logic is necessary for node-to-node encryption with IPsec (not supported anymore) and pod-to-pod encryption may have been somewhat simplified to encrypt *-to-pod traffic.
Encrypting traffic from the hostns nevertheless creates several issues. First, this situation creates a path asymmetry between the forward and reply paths of hostns<>remote pod connections. Path asymmetry issues are well known to be a source of bugs, from of --ctstate INVALID -j DROP iptables rules to NAT issues.
Second, Gray recently uncovered a separate bug which, when combined with this encryption from hostns, can prevent Cilium from starting. That separate bug is still being investigated but it seems to cause the reload of bpf_host to depend on Cilium connecting to etcd in a clustermesh context. If this etcd is a remote pod, Cilium connects to it on hostns -> remote pod path. The bpf_host program being unloaded[1], it fails. We end up in a cyclic dependency: bpf_host requires connectivity to etcd, connectivity to etcd requires bpf_host.
This pull request therefore removes encryption with IPsec for the path hostns -> remote pod when using tunneling (already unencrypted when using native routing).
1 - More specifically, in Gray's case, the bpf_host program is already loaded, but it needs to be reloaded because the IPsec XFRM  config changed. Without this reload, encryption fails.
Fix path asymmetry when using pod-to-pod encryption with IPsec and tunnel mode.

/test

/test

Looks good, just one point which I'm not sure: can we delete this as there will be no more skb with mark 0xe00 (MARK_MAGIC_ENCRYPT) reaching cilium_net ingress.

Looks good, just one point which I'm not sure: can we delete this as there seems to be no more skb with mark 0xe00 (MARK_MAGIC_ENCRYPT) reaching cilium_net ingress.

I think that's correct. I'll try to remove it and rerun CI.

/test

Looks good, just one point which I'm not sure: can we delete this as there seems to be no more skb with mark 0xe00 (MARK_MAGIC_ENCRYPT) reaching cilium_net ingress.

Agreed. We're no longer using CB_ENCRYPT_MAGIC, so the ENCRYPT_OR_PROXY_MAGIC essentially becomes CB_PROXY_MAGIC now.

/test

/test

/test

/test

/test-runtime

/test-runtime

/test-runtime

/test-vagrant

@pchaigno This has needs-backport/v1.14 but all the commits I would backport are empty. It seems those commits already are part of the v1.14 branch?
Removing the label.

Oh, right! That one was made before branching. It's only the other one (upgrade with IPsec+overlay) that needs to be backported. Sorry about that!

mlh had added this to the wrong projects, because the PR had been merged back in May. Moved to the correct projects now.


Artifacts: Workflow in different NS results in executor error: You need to configure artifact storage

Pre-requisites

[X] I have double-checked my configuration
[X] I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
[X] I have searched existing issues and could not find a match for this bug
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened? What did you expect to happen?
I'm configuring argo-workflows on multiple namespace:

main argo-wf NS, which handles the argo-wf app (with server and controller)
application backend NS, which runs wf

Argo-Workflows is deployed using argoCD + helm in its dedicated NS (argo-wf).
I added the following config (redacted to show the important bits):
argo-workflows:
  artifactRepositoryRef:
    artifact-repositories:
      annotations:
        workflows.argoproj.io/default-artifact-repository: default
      default:
        s3:
          bucket: argowf-artifacts-bucket
          endpoint: s3.amazonaws.com
          region: us-east-1
          keyFormat: "workflow\
                      /{{workflow.creationTimestamp.Y}}\
                      /{{workflow.creationTimestamp.m}}\
                      /{{workflow.creationTimestamp.d}}\
                      /{{workflow.name}}\
                      /{{pod.name}}"
          useSDKCreds: true

When I run jobs in the backend NS, it ends up failing with executor error: You need to configure artifact storage error.
My guess is that the pod (running in backend NS) doesn't find the CM with the artifactRepositoryRef configuration, as it is in the argo-wf NS, not in the backend NS.
Version(s)
v3.5.11
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: key-only-artifacts
spec:
  serviceAccountName: argo-exec
  entrypoint: main
  templates:
    - name: main
      dag:
        tasks:
          - name: generate
            template: generate
          - name: consume
            template: consume
            dependencies:
              - generate
    - name: generate
      container:
        image: busybox
        command: [sh, -c]
        args: ["echo hello world > /tmp/report.txt"]
      outputs:
        artifacts:
          - name: report
            path: /tmp/report.txt
            archive:
              none: {}
            s3:
              key: my-report
    - name: consume
      container:
        image: busybox
        command: [sh, -c]
        args: ["cat /tmp/report"]
      inputs:
        artifacts:
          - name: report
            path: /tmp/report
            s3:
              key: my-report

Logs from the workflow controller
At the start of the controller, I see this:
time="2024-10-28T17:43:13.407Z" level=info msg="Configuration:\nartifactRepository: {}\ninitialDelay: 0s\nmetricsConfig: {}\nnodeEvents:\n enabled: true\npodSpecLogStrategy: {}\nsso:\n clientId:\n key: \"\"\n clientSecret:\n key: \"\"\n issuer: \"\"\n redirectUrl: \"\"\n sessionExpiry: 0s\ntelemetryConfig: {}\n"

Why artifactRepository is empty?
No other logs are very relevant
Logs from in your workflow's wait container
Starting Workflow Executor
Using executor retry strategy
Executor initialized
Starting deadline monitor
Main container completed
No Script output reference in workflow. Capturing script output ignored
No output parameters
Saving output artifacts
Staging artifact: report
Copying /tmp/report.txt from container base image layer to /tmp/argo/outputs/artifacts/report.tgz
/var/run/argo/outputs/artifacts/tmp/report.txt.tgz -> /tmp/argo/outputs/artifacts/report.tgz
executor error: You need to configure artifact storage. More information on how to do this can be found in the docs: https://argo-workflows.readthedocs.io/en/release-3.5/configure-artifact-repository/
Alloc=7443 TotalAlloc=13524 Sys=23141 NumGC=4 Goroutines=8
You need to configure artifact storage. More information on how to do this can be found in the docs: https://argo-workflows.readthedocs.io/en/release-3.5/configure-artifact-repository/

My guess is that the pod (running in backend NS) doesn't find the CM with the artifactRepositoryRef configuration, as it is in the argo-wf NS, not in the backend NS.

You are right.
You should also add artifact-repositories configmap to backend namespace. You can also configure artifactRepository in workflow controller configmap if you do not want to add artifact-repositories configmap in every required namespace.

Thanks for your support 🙏

You should also add artifact-repositories configmap to backend namespace

Ok that's what I thought!

You can also configure artifactRepository in workflow controller configmap

Can you elaborate on this please? You mean, adding a artifactRepository entry in the workflow manifest? Do you have the link to the documentation of that please?
My goal is to factorize as much as possible, which means not adding the S3 config on each workflow if possible.

add artifact-repositories configmap in every required namespace.

So, just adding the configMap in the backend namespace is enough? Is there a way to indicate in which NS this CM should be created in the helm chart?
Thanks o/

Can you elaborate on this please? You mean, adding a artifactRepository entry in the workflow manifest? Do you have the link to the documentation of that please?

You can read this documentation: Workflow Controller Config Map.

My goal is to factorize as much as possible, which means not adding the S3 config on each workflow if possible.

No matter which method you use, artifactRepository will always be loaded into each workflow.

So, just adding the configMap in the backend namespace is enough?

Yes, add artifact-repositories ConfigMap or modify workflow controller ConfigMap, choose one.

Is there a way to indicate in which NS this CM should be created in the helm chart?

Sorry, I'm not familiar with Argo Helm.


Please add App Transport Security (https) support for iOS 9.0 and higher

https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

:+1:

We know about this issue. ATS support will be added.
But now you may set key NSAllowsArbitraryLoads to YES or add NSExceptionDomains: [yandex.net, yandex.ru, yamoney.ru, yastatic.net] and set keys NSThirdPartyExceptionRequiresForwardSecrecy to NO, NSIncludesSubdomains to YES.
Sorry for the inconvenience!

@Exwell thanks!
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yandex.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>yandex.ru</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>yamoney.ru</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>yastatic.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

ATS added for *.yandex.ru and *.yandex.net. You can remove these URLs.

The "funny" thing - while paying with raiffeisen card 3-d secure, I got redirected to acs.raiffeisen.ru, that doesn't have forward secrecy. So to support "all banks" NSAppTransportSecurity should be turned off by default
https://www.ssllabs.com/ssltest/analyze.html?d=acs.raiffeisen.ru&hideResults=on

@ichaki5748 thank you, we will turn off it.

@ichaki5748 I see that "Allow Arbitrary Loads" is set to YES in Info (it means that ATS is disabled in both of Examples). Why you have connection problems?

Oh It didn't work in my app, I copied rules from k06a comments probably. Also from examples its not clear why http should be allowed globally having yandex related domains stated explicitly
Thanks

We will remove exeption domains from examples so as not to get confused, because Allow Arbitrary Loads is always YES

I would just add it to readme md :)
Because at least yandex domains would be secured from dev mistake 100% I wonder why apple did not add global flag for forward secrecy...