text:
Some complex lookups fail on nested iterables

Considering the following data:
users = [
    {
      "name": "Hazel Robertson",
      "gender": "female",
      "friends": [
        {
          "name": "Mays Conway",
          "tags": [
            {"name": "dolore"},
            {"name": "laborum"},
          ]
        },
      ],
    },
]

The following raise an exception:

manager = lifter.load(users)
manager.filter(friends__name=lifter.startswith('Mays'))

With the following stacktrace:
/path/lifter/lifter/query.py in filter(self, **kwargs)
     97     def filter(self, **kwargs):
     98         _filter = self._build_filter(**kwargs)
---> 99         return self._clone(filter(_filter, self._values))
    100
    101     def exclude(self, **kwargs):

/path/lifter/lifter/query.py in _clone(self, new_values)
     39
     40     def _clone(self, new_values):
---> 41         return self.__class__(new_values)
     42
     43     def __repr__(self):

/path/lifter/lifter/query.py in __init__(self, values)
     19 class QuerySet(object):
     20     def __init__(self, values):
---> 21         self._values = list(values)
     22
     23     def __iter__(self):

/path/lifter/lifter/query.py in object_filter(obj)
     57                 if hasattr(value, '__call__'):
     58                     # User passed a callable for a custom comparison
---> 59                     if not value(getter(obj)):
     60                         return False
     61                 else:

/path/lifter/lifter/lookups.py in __call__(self, value)
      2 class BaseLookup(object):
      3     def __call__(self, value):
----> 4         return self.lookup(value)
      5
      6     def lookup(self, value):

/path/lifter/lifter/lookups.py in lookup(self, value)
     33 class startswith(OneValueLookup):
     34     def lookup(self, value):
---> 35         return value.startswith(self.reference_value)
     36
     37 class istartswith(OneValueLookup):

AttributeError: 'IterableAttr' object has no attribute 'startswith'

@Ogreman since you worked on this, you may have an idea about this. It seems all lookups involving accessing a part of the iterable value (startswith, endswith, contains...) fail, while the ones using the whole value (such as value_in) works as expected.

Think it's just a matter of implementing the required magic methods for that Iter class. I'll get on that now.

This is still an issue, see for example : http://indexerror.net/4461/itération-dans-un-structure-de-dictionnaire-complexe?show=4467#c4467

authors: EliotBerriot Ogreman

repo: EliotBerriot/lifter

license: isc


text:
CuteSpotify on ubuntu touch: asking to login almost each time I start it

When re-logging in it also loses the playlists I have set to be as available offline. Weird thing is that at least once it did save the login stuff and had the offline playlists available. Running CuteSpotify version 1.4 on bq Aquaris E4.5 Ubuntu Edition, OS version: Ubuntu 15.04 (r25).
I can provide additional debugging information.

Same here. I've tried the latest version in the Ubuntu Store as well as Open Store. BQ E4.5  Ubuntu Touch.

source: gharchive/issue

authors: Wnt tenleftfingers

repo: Elleo/cutespotify

license_type: permissive

license_source: github-api


text:
Unable to login to Google Calendar within iframe

Upon adding a new Google Calendar frame, the unauthenticated google calendar page loads but nothing happens when you click on the "Sign in" button. Probably because google authentication requires a new tab to be opened?

Duplicate of #73

repo: Ellpeck/ObsidianCustomFrames

license: MIT


text:
Puffin_egui v0.27 does not display the flamegraph correctly

Describe the bug
A clear and concise description of what the bug is.
The puffin_egui flamegraph doesn't display correctly.
To Reproduce
Steps to reproduce the behavior:

Make an egui native app, that has puffin scopes and allows you to interact with the puffin_egui ui.
Run the app and open the debugger.

Expected behavior
A clear and concise description of what you expected to happen.
I expected the flamegraph to show, like in previous versions.
Screenshots
If applicable, add screenshots to help explain your problem.
Device:

OS: [e.g. iOS] NixOs
Browser [e.g. chrome, safari] Using Native App, not browser.
Version [e.g. 22]

Additional context
Add any other context about the problem here.

app code here: https://github.com/C0D3-M4513R/unnamed-artnet-orion-vrsl-app/commit/41bb2cf38b82a001a9e549b6ee3841a8695c85cc (needs feature puffin, to display debugging menu)
(call to draw the window here: https://github.com/C0D3-M4513R/unnamed-artnet-orion-vrsl-app/blob/41bb2cf38b82a001a9e549b6ee3841a8695c85cc/app/src/app.rs#L405
)

I narrowed it down to puffin not creating any scopes in non-release mode.

Please check out the repo and run cargo r --example eframe. It should show you some profile scopes even without --release.

repo: EmbarkStudios/puffin


text:
[FEATURE]  support video recording for the execution process

Title
support video recording for the execution process
Description
add  video recording with playwright under chroium  web driver [browser context parameters]
Problem Background
facilitate  execution process‘s problem analysis

Today we have screen shots, but not video. Just making sure that you saw that :)

repo: EmergenceAI/Agent-E


text:
allow users to add supports arbitrarily

instead of automatically assuming lower nodes to be supports, we could let the user define supports wherever they want in the model. this would be very powerful cause then you could suddenly explore more designs than just typical towers/buildings.
we shouldn't delete the auto lower nodes functionality however, but maybe it can become an option through a button similar to BraceAll.

Good idea

awesome

authors: EmilPoulsen lelandjobson

repo: EmilPoulsen/Frixel


text:
fix read

fixes #2

Can confirm that it works

Oh i forgot to mention: I think get_push_event isn't really fixable. I thought about adding a debug statement there that mentions that this prob. doesn't work on some systems - which would keep compatibility, but makes note of the issue if anybody hits upon it again.

i don't know what's wrong with nightly, getting
  --> src/mug/battery.rs:12:10
   |
12 | #[derive(BinRead, Debug)]
   |          ^^^^^^^
   |
   = help: message: attempt to subtract with overflow

source: gharchive/pull-request

authors: Emilgardis tyalie


text:
Add tempest to disabled services

Devstack does not respect the INSTALL_TEMPEST=False setting and still
tries to install tempest when it is found in the ENABLED_SERVICES
variable. We need to remove it from the list in order to ensure it won't
be installed.
See https://github.com/gophercloud/gophercloud/issues/2408 for more
info.

Thanks @mandre !

authors: EmilienM mandre

repo: EmilienM/devstack-action


text:
Make it so EnderStudio will use a custom markdown language so it would be easier to support other platforms without re-writing current apps

https://rsms.me/markdown-wasm/

EnderKit

repo: EnderAdel/EnderFramework


text:
Navigation パラメータ調整

AMCL
https://sy-base.com/myrobotics/ros/ros-amcl/
Navigation
https://sy-base.com/myrobotics/ros/ros-move_base/

AMCL や 障害物回避に関するパラメータを調整した．
経由地で以前より若干ふらつくようにもなったが，stackしない確率は今回の調整後のほうが低いと思う．


text:
Unity Version

Hi,
I am having issues in regard to what version of Unity I should be using. When using the suggested version (Unity 2017.1.3f1), I am getting XR namespace doesn't exist errors. Apparently only Unity versions 2017.2 and after use XR and any previous version uses the VR namespace. Is there any updates as to which version of Unity we should use?
Thanks!

Thank you for your inquiry.
As you said, I think that if the VR namespace error is fixed, it works with the new Unity editor version.
However,  it seems that breaking changes have been made to HoloToolKit 2017.2.1.0 running on Unity editor 2017.2.
It is necessary to modify the example scenes to make it work properly.

For Unity Version 2017.1.3f1, I had an issue where Core did not have a rotate function, so I commented out the line to remove the error.
I do not know if it is related but when I build the project, I am not able to select the different demos on the menu screen. Do you know anything that would cause this?

What is the version of OpenCV for Unity you are using?
This issue does not occur if the latest version of OpenCV for Unity is used

I imported the most recent OpenCV for Unity available to me (2.1.3). Do I have to buy the upgrade to get the 2.2.7 version?

Environment
Windows 10 Pro 1709
Windows 10 SDK 10.0.14393.0 to 10.0.16299.0
Visual Studio 2017 (v151.5.0)
Unity 2017.1.3f1
HoloToolkit-Unity-v1.2017.1.2 (https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)
OpenCV for Unity 2.2.6 (https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088)
HoloLensCameraStream (https://github.com/VulcanTechnologies/HoloLensCameraStream)
Have to use "OpenCV for Unity" 2.2.6 or later.


text:
Enable all tests on Windows in CI

I wonder if tests magically work on Windows in CI now given the recent changes to tests?

Amazingly they did 🤩
Almost seems too good to be true.
@Emilgardis Am I missing something? 🤔

well well, seems to work now?

Yep :shrug:

authors: Emilgardis Enselic

repo: Enselic/cargo-public-api


text:
Support valid values for QRMatrixOption

Fixes #4.

@Enter-tainer can you check the settings to see why this PR can't be merged, fix/qr-mask-opt3 branch is based on master.

fixed

@Caellian thanks, currently not tested, because i need to build it first (im until monday away from my computer).
I have looked over the code and it should work for me for now. But I think there is one thing that is not supported: ZINT_FULL_MULTIBYTE | (N + 1) << 8
I don't currently use this option myself, only the masking option. But just for info.

@lublak the check was ignoring bits set by ZINT_FULL_MULTIBYTE.
I've made it more explicit now.

@lublak the check was ignoring bits set by ZINT_FULL_MULTIBYTE.
I've made it more explicit now.

Thanks! On the phone it's difficult to read. I will test it on Monday :)

i will publish a new version if it works for you. @lublak

@Enter-tainer @Caellian
i know i know! Its not monday. But i had some time in the morning, so i tested it today! (i hope its okay xD)
Simply: it doesn't work.
tiaoma.qrcode(data, options: (
    option-1: 2, // M
    option-2: 2,
    option-3: (7 + 1).bit-lshift(8), // 2048
))

after a bit testing i found it, it goes here:
https://github.com/Enter-tainer/zint-wasi/blob/master/zint-wasm-rs/src/options/option3.rs#L32 which is not QR Options.
i simply swapped the code to test this
return Err(Error::UnknownOption {
                    which: "option_3_datamatrix",
                    value: Box::new(other),
                })
 return Err(Error::UnknownOption {
                        which: "option_3_qrmatrix",
                        value: Box::new(other),
                    });
eturn Err(Error::UnknownOption {
                    which: "option_3_ultracode",
                    value: Box::new(other),
                })

a bit more reading: https://github.com/Enter-tainer/zint-wasi/blob/master/zint-wasm-rs/src/options/option3.rs#L175

authors: Caellian Enter-tainer lublak

repo: Enter-tainer/zint-wasi


text:
Feature Request: Debug run

Are there plans for this plugin to support a debug run feature? This could be implemented using an extra task. If there is no such thing planned, i might even do it myself, if other interest exists.

Can you please explain what exactly the "debug run" do?
There are no such debug feature and no plans now, but if is it helpful, I will consider to add it.

Sorry if i was being unclear. I meant something like a in-IDE run, or a server run using the gradle project. Using forge as an example, there is a gradle task that start a modded client with your mod installed. I was thinking of something similar by simply downloading buildtools and creating a server instance with your plugin installed automatically.

Thanks for the explain :)

Would also love to see this! It would make a lot of development simple.
For CraftBukkit and Spigot, we'll need to run buildtools. For Paper, they have a web API where you can use to directly download a Paperclip jar that automatically patches the vanilla jar.

I almost forgot about this. I can definitely provide some working code for it, however it is in form of a buildSrc/ folder right now, and i have a few too many comissions to do normal open source work and convert it into a plugin extension. If anyone is interested i can do that, but i think we should think about the actual structure of this inbefore.

I'd maybe suggest adding a task named runServer. And, when started, it'll make a run folder on the project folder (like ForgeGradle), if it not exists.
That folder will then have the server files.
It would be nice to have a way to add other plugins (like dependencies or something else).
Also, if possible, make it pass nogui or let us pass arbitrary arguments to the task.

Yes, that + as project extension for easy configuration of the server. (Like maybe an auto eula accept option, or command arguments). However I'm not quite sure how you make project extensions available using gradle projects.

I think FG allows the users to configure stuff directly from Gradle.
Would be nice to make it so anyone can just git clone a project and start working on it and having it ready to run.

breakpoints can be useful when someone who write plugins.

i dont think breakpoints can be easily done without bootstrapping the server directly (which might be possible, but would be very hard)

its possible but before that this debug stuffs should finish. breakpoints are depend debug tools.

i dont think breakpoints can be easily done without bootstrapping the server directly (which might be possible, but would be very hard)

Don't think you need to complicate everything. Running the server JAR inside Intellij already works wonders. If the code is loaded, the debugger should set a breakpoint automatically.

Oh, right, you can run the jar directly in intellij.

The main reason to should be that is not just running debug mode, also running a real sever by C.I. This feature will be helpful in this case too.

I added this feature into my scope. I will try to make it.

There u can get some inspirations:

https://gitlab.com/Firestar99/spigotgradle
https://github.com/EndlessCodeGroup/BukkitGradle

:)

Although the things posted by @TheAifam5 are a start, please don't make Spigradle download Spigot builds off wonky of websites. The best is to download BuildTools and build it manually as builds on those websites are usually outdated at best, and dubious at worse.
For Paper, there's their Paperclip tool which automatically downloads and patches a vanilla jar, so you can run it pretty easily. I know that they have somewhere an API for https://papermc.io/downloads

Thanks for all the nice discussion, yeah I'll use BuildTools for build spigot also paper.
Recently I completed migration to kotlin, support nukkit and bungeecord. so now priority is debug run things.
I'll consider to implement passing parameters like nogui, accept eula, download dependency plugins. And, good to hear that you'll make breakpoint feature @portlek.

@EntryPointKR I'm happy to see improvements being done as time goes on.

yeah I'll use BuildTools for build spigot also paper.

I'm not sure if in here you meant that you were gonna use Build Tools to build Spigot and Paper. I'm asking because just wanted to make it clear that only Spigot requires Build Tools action.

And, good to hear that you'll make breakpoint feature
Breakpoints are supposedly done by the debugger and shouldn't need extra code.

@NickAcPT Good point! I didn't research about paper build yet, so I thought that need to build paper using paper's build tool. but it can be done by paperclip.
And I something misinterpreted. as portlek said breakpoint, I thought it is some special feature because I saw he's code that generates IDEA xml on he's repository.
Before implement these things, I really need to research about it.

But I'm sharing about its importance. I will implement it carefully.

@NickAcPT wait what? They use the official build jar file ;D

@NickAcPT wait what? They use the official build jar file ;D

I feel like you're talking about getbukkit. It's usually not a good way to get your JARs. As I've mentioned previously, they're usually pretty much outdated.

@NickAcPT wait what? They use the official build jar file ;D

@TheAifam5 I feel like you're talking about getbukkit. It's usually not a good way to get your JARs. As I've mentioned previously, they're usually pretty much outdated.

https://github.com/EndlessCodeGroup/BukkitGradle
this plugin is using original BuildTool.jar file.

@NickAcPT I know what I am talking about:
https://github.com/EndlessCodeGroup/BukkitGradle/blob/711bd72fe9a04564d66ab747ddfa4dcfbb726ba9/src/main/groovy/ru/endlesscode/bukkitgradle/server/ServerCore.groovy#L104
https://gitlab.com/Firestar99/spigotgradle/-/blob/master/src/main/java/firestar99/spigotgradle/server/SpigotServerPlugin.java#L28

@NickAcPT I know what I am talking about:
EndlessCodeGroup/BukkitGradle:src/main/groovy/ru/endlesscode/bukkitgradle/server/ServerCore.groovy@711bd72#L104
gitlab.com/Firestar99/spigotgradle/-/blob/master/src/main/java/firestar99/spigotgradle/server/SpigotServerPlugin.java#L28

@TheAifam5 That is BuildTools and I know.. But I was talking about when you mentioned getbukkit and telling you that you shouldn't use it.

@NickAcPT that's why I removed it. It was my attempt to build but then I realize that's bad idea and was throwing the warning that is outdated.

I pushed up the prototype of tasks that BuildTools and RunServer just now. (spigot only in this time)
Demo is here: https://github.com/EntryPointKR/Spigradle/blob/bc673db7fdd53dc3996530b1d4d70424e8655d02/src/test/kotlin/kr/entree/spigradle/spigot/PrepareServerTest.kt
Pull request: #9
It is not completed yet, still in progress of development. if you find things that some weird or improvements in there being progress, feel free to share here.
And, tasks that download BuildTools, build spigot, and run it is not hard to implement.
But I'm not sure what is the best way to download depend plugins for setup a debug run server.
The option that easy to think is just download it from spigotmc or maven repository.

But I'm not sure what is the best way to download depend plugins for setup a debug run server.

I'd say to either allow the user to use something like Spiget and download through Spigot, or have them manually put the jar file.

Yep, I'll allow manual placing the jars.

Okay, the debug tasks seems done.
Now you guys can try it out by cloning this project: SpigradleSample.
Execute task debugPaper or debugSpigot will startup the server with plugins.
Command: ./gradlew debugPaper or ./gradlew debugSpigot
List of debug tasks: downloadSpigotBuildTools, cleanSpigotBuild, buildSpigot, prepareSpigot, runSpigot, prepareSpigotPlugin, debugSpigot, downloadPaper, debugPaper
If you import it using IntelliJ IDEA, then the "debug" directory will be marked as excluded, Debug run configurations will be generated. Currently supports IntelliJ IDEA only.
I'll document all of changes and release 1.3.0 in this week. If you have a feedback or improvements then feel free to share here :)

Instead of "debug", wouldn't it be less confusing if it was named "run"?

@NickAcPT The runSpgiot already used as subtask of debugSpigot.
More further, the debugSpigot is just lifecycle task(no function) that depends on tasks downloadBuildTools, preparePlugins, runSpigot. the reason of division into subtask is for flexibility, it will be documented in wiki soon. I agree about confusing between run and debug. it can be renamed.

Do we need “debug” task if run is already there?

The runSpigot task just runs the jar at specified path with configured arguments, and accepts EULA if user agreed.
But the debugSpigot nothing to do itself, but executes tasks preparePlugin, prepareSpigot, runSpigot. That means:
preparePlugin(Copy): It will copy the project artifact jar and dependency plugins(like ProtocolLib). the depend plugins will automatically resolved from classpath. Related: DebugTasks.kt
prepareSpigot(Copy): It will download the BuildTools from configured URL, and build the Spigot. and copy the Spigot from build output into configured server directory. Related: SpigotPlugin.kt#76, SpigotDebugTask.kt
runSpigot(JavaExec): It will runs the Spigot at configured path with configured (vm)arguments, and accepts EULA if user agreed. Related: SpigotDebugTask.kt#80, DebugTask.kt#34
debugSpigot(Task): It is nothing to do, but just executes preparePlugin, prepareSpigot, runSpigot.
So if you delete the debug(server) directory and execute only runSpigot then you will get error but if you configure valid jar path at the task, it will work. and I thought the task division would be configurable, reusable. but if there a better idea to constructing these tasks, I'll make the change as open mind.

I thought the runSpigot can be used some special case. but if it not worth,  I'll consider to merge two task run and debug.

I think so. Using local jar could be set as a flag or a path to the jar, otherwise would execute the debug tasks you mentioned.

I think more about that, the use case is

Any task can depend on runSpigot, not debugSpigot.
Run the server without any preparing tasks, prepareSpigot and preparePlugins.

The first one is useless. second, if a user want to avoid prepare tasks, the user can just disable the task or set the skipWhenExists property to true for manual placing server jar.
And, if set a different path in run task, then in debug task will same result. run task is a subset of debug task.
So I think both tasks can be merged. if there a no objections, I'll merge both.

Sorry for being too late, the 1.3.0 released just now.
You can find the migration tips at Spigot Migration Tips.
If you had a problem with it, please open a new issue.
Still the usage is:
plugins {
    id 'kr.entree.spigradle' version '1.3.0'
}

See also:
The Spigot plugin
The Bungeecord plugin
The Nukkit plugin
Spigradle Sample
Changelogs
Thanks again for all the contributions!

authors: EntryPointKR NickAcPT TheAifam5 portlek romangraef

repo: EntryPointKR/Spigradle


text:
[WP] Creates elmer settings files for magnetic analysis.

Additional entries are added to write the settings file used by ElmerSolve to run magnetodynamic2D solver.

Hello Alejandro,
Thank you for your contribution. Your PR looks fine to me but sadly I can't merge it because of a conflict on gen_elmer_mesh. Can you solve it ?
Best regards,
Pierre

Hello Pierre, I guess it is due to some of my last PRs, so I will care about that. BR Sebastian

Hello Alejandro, it seems that there is something wrong with your last commit. There are 2000+ empty files.
I would suggest you to create a new branch to store your current work, go back to master, reset it to the commit before and do the PR again (i.e. without this last commit). If you want to I can also give you the git commands to do so.
After that we can care about your last commit. Maybe there is only some 'empty' difference due to line endings.
Best, Sebastian

Just one more question. Did you use black? Maybe that could also solve the problem (with one more commit).

authors: BonneelP SebGue ajpina

repo: Eomys/pyleecan


text:
🛑 RPi3B+ 06 is down

In 1679346, RPi3B+ 06 (https://$API_SERVER/uptime/rpi?id=6) was down:

HTTP code: 404
Response time: 2344 ms

Resolved: RPi3B+ 06 is back up in fb0a98f after 19 minutes.

repo: Eotel/pxe-yokohama-rpi-uptime


text:
Allow possibilities disabled hologram and set SIGN.

Hello
When it's possible to add SIGN on chest dans disabled hologram to config ?
Because 10 shop its good but when we take +100 shop and impossible set a chest on a chest, its not good for player.

There will never be sign shops in this plugin.

authors: DoctaEnkoda EpicEricEE

repo: EpicEricEE/ShopChest

license: mit

license_source: bigquery


text:
could you help to send an invitation to join epic games

I connected github and epic games account, but no invitation received, could you please help, thanks~ @EpicTeamAdmin

Hi there,
You might have to contact the support team for this. Double-check that you are checking the correct email associated with the account and that the invitation email didn't go to spam. Check that you didn't miss any of the steps below:
https://www.epicgames.com/help/en-US/epic-accounts-c5719348850459/connect-accounts-c5719351300507/how-do-i-link-my-unreal-engine-account-with-my-github-account-a5720369784347
And if you are still experiencing the issue, use the Contact Us form on the page.

authors: DenisTensorWorks ppzzp

repo: EpicGames/PixelStreamingInfrastructure


text:
Mouse release event ignored if released too quickly

If you depress the left mouse button, and release it too quickly, the release event seems to be ignored.
For example, if you do it over a line in the text view widget it'll be stuck selecting text afterwards, but it also happens with other widgets (menu items and tabs).
Here is a recording of it happening, by sending automated down and up events without any delay to reproduce it consistently:
https://github.com/EpicGames/raddebugger/assets/10407330/040eca64-5642-4f93-96db-92c17c0e3d29

Fixed in fd0feefcf280538dd5b2c84885b97295f950ad57.

This was initially fixed for me, but I think it broke again in 0d1ccd7.
I think the issue is with this if statement:
// src\raddbg\raddbg.c
for(OS_Event *ev = leftover_events.first, *next = 0; ev != 0; ev = next)
{
  next = ev->next;
  if(ev->timestamp_us+1000000 < os_now_microseconds() ||
     ev->kind == OS_EventKind_Text ||
      (ev->kind == OS_EventKind_Press && ev->key != OS_Key_LeftMouseButton) ||
      (ev->kind == OS_EventKind_Press && ev->key != OS_Key_RightMouseButton) ||
      (ev->kind == OS_EventKind_Press && ev->key != OS_Key_MiddleMouseButton) ||
      (ev->kind == OS_EventKind_Release && ev->key != OS_Key_LeftMouseButton) ||
      (ev->kind == OS_EventKind_Release && ev->key != OS_Key_RightMouseButton) ||
       (ev->kind == OS_EventKind_Release && ev->key != OS_Key_MiddleMouseButton) ||
       (ev->kind == OS_EventKind_Scroll))
  {
    os_eat_event(&leftover_events, ev);
  }
}

All press and release events will be eaten regardless of ev->key.

Oops... must've been on autopilot there. Fixed again in baca24c0377d9498fe6830ac1e16d9da8b7607e0.

I'm experiencing issues on my end with unconsumed events sticking around, so I am going to disable this behavior & reopen this issue until this is fully fixed.

It seems fixed for the menu items and tabs, but the text view widget seems to ignore the down event now as well (text cursor doesn't update).

Can you show a video of what you're seeing? I am not seeing that on my end.

I think I see one potential issue - you might be expecting whatever mouse positions are attached to the mouse press/release events (presumably auto-generated) to show up in the selection itself, without forcibly changing what the mouse position is?
If that's the case, can you expand on the intended use case you have in mind for that?

https://github.com/EpicGames/raddebugger/assets/10407330/ccda40d1-5f02-47c4-a8b3-82ac27934e80
Yeah, the fast click events are auto-generated to reproduce it consistently for video.
#pragma comment(lib, "user32.lib")

#include <Windows.h>

int main()
{
    if(RegisterHotKey(0, 1, MOD_NOREPEAT, 'A'))
    {
        MSG Msg = {0};
        while(GetMessage(&Msg, 0, 0, 0) != 0)
        {
            if(Msg.message == WM_HOTKEY)
            {
                int const Count = 2;
                INPUT Inputs[Count] = {};

                Inputs[0].type = INPUT_MOUSE;
                Inputs[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;

                Inputs[1].type = INPUT_MOUSE;
                Inputs[1].mi.dwFlags = MOUSEEVENTF_LEFTUP;

                if(SendInput(Count, Inputs, sizeof(INPUT)) != Count)
                {
                    break;
                }
            }
        }
    }

    return 0;
}

(Also tested with a Logitech mouse macro, and my actual use case, remote desktop.)

Ahhhhh okay makes perfect sense, thanks. Looks like I've fixed this on my end in 77337f9e860cd32c473878932fded8c56e5e355a. Can you give that a try?

Seems to be working! 👍

authors: aswerw ryanfleury

repo: EpicGames/raddebugger


text:
Fix bug with AutoBackup

On one of my games, there is a common occurrence where the map does not get backed up properly at the start of the server. I figured out that it was because I set my command prefix from the Adonis menu instead of from the Settings module. It seems that this bug might be because some functions are not loaded in the correct order or are too slow as the correct prefix doesn't get loaded before this setting is initialized. You can simply add a small delay to the function since this gap isn't very large. Here is the fix that I implemented for my game.

Are you sure the task.wait is necessary?

Are you sure the task.wait is necessary?

When printing out Settings.Prefix it would only print out the correct/saved prefix if the task.wait was there, so I believe so. You can also confirm this by trying it on a custom version of Adonis.

Any updates on this?

Are you sure the task.wait is necessary?

When printing out Settings.Prefix it would only print out the correct/saved prefix if the task.wait was there, so I believe so. You can also confirm this by trying it on a custom version of Adonis.

This is because it's waiting until the datastore stuff loads. This will not always work if the datastore loading is for some reason delayed. A better place to put this would be immediately after the datastore finishes its loading process.

Are you sure the task.wait is necessary?

When printing out Settings.Prefix it would only print out the correct/saved prefix if the task.wait was there, so I believe so. You can also confirm this by trying it on a custom version of Adonis.

This is because it's waiting until the datastore stuff loads. This will not always work if the datastore loading is for some reason delayed. A better place to put this would be immediately after the datastore finishes its loading process.

Thanks for your feedback, that is true. I will be updating this pull request

MY APOLOGIES........................

I shalt update the request sometime later today

Okay updated, I also added some bugfixes and put myself in the contributors list. When testing my pull request it seems that OnStartup was just completely broken?? I updated TrackTask so the third argument doesn't have to be an errHandler function and can be an argument (OnStartup utilizes this but it seems like TrackTask was rewritten so it broke) and made it so the RunCommand function actually specifies the player argument as non-existent.

Ok I realized the problem with what i was doing, it should be actually ready now

Does it work tho

it should work I added scel's suggestion, Settings.Prefix shouldn't be desynced anymore. also OnStartup is no longer broken

Have you tested this tho

The AutoBackup part maybe needs revision

well then you should get on that

ima just close this PR and redo this later, it seems like another part of the code is breaking my script cuz it seems to not work even though Settings.Prefix matches

i love nightly

same

repo: Epix-Incorporated/Adonis


text:
Fix tornado, anti, :buyitem, fpslocker, van, :slippery, convert deprecated/legacy items

Fix :BuyItem being broken due to legacy setting and a typo
Fixed anti cheat misdetecting if a player has a lag spike in which rendering doesn't happen for over minute. Now it is changed to 1.5 minutes. (A single frame should never take 1.5 minutes, if this is too low then it can be changed to 2.5 minutes/150 seconds)
coroutine.wrap 2 task.spawn (Fixes a part of tornado code not working)
.Velocity to .AssemblyLinearVelocity
Hat to Accessory
tick() to os.clock() or os.time
Removed ManualWeld studio joint artifacts generated by a weird Roblox feature from Van.rbxmx
Cleaned up some code
Fix :slippery & :unslippery

I've tested everything and it seems to work

seems to. hmmm

Actually don't merge this yet I'll remove the security capabilities things from the rbxmx

Ok now they are removed

Ah great


text:
Selki/ff3396 expiring bandit cache

Fixes: #issue
Motivation and Context
//: # We want to use an expiring cache for bandits to dedupe ones from the same session e.g., if a user rapidly refreshes or the assignment is used on multiple parts of a page. We think a 10-minute expiration will be a good starting point for this.
Description
//: # Used TLRU cache on init of EppoClient
How has this been tested?
//: # Unit tests

Yes, the underlaying implementation of cache is here. In this repo I just want to make sure that the tests are working

@rasendubi added with Write access to repo ✔

authors: leoromanovsky maya-the-mango

repo: Eppo-exp/node-server-sdk


text:
model that refs a model that refs a seed - fails test

Here's an example of a model that fails if it depends on a model that depends on a seed.  I'm trying to work out a fix, but if you know anything quick that would be great!
Compilation Error in test covid_19_stats_country_model_using_seed_test (tests/unit/product/covid_19_stats_country_model_using_seed_test.sql)
  Source seed_test columns must be declared in sources.yml, or it must exist in database

  > in macro fake_source_sql (macros/test_helpers.sql)
  > called by macro build_model_complete_sql (macros/build_model_complete_sql.sql)
  > called by macro mock_input (macros/tests.sql)
  > called by macro mock_ref (macros/tests.sql)
  > called by macro test (macros/tests.sql)
  > called by test covid_19_stats_country_model_using_seed_test (tests/unit/product/covid_19_stats_country_model_using_seed_test.sql)
  > called by test covid_19_stats_country_model_using_seed_test (tests/unit/product/covid_19_stats_country_model_using_seed_test.sql)

@psousa50 - After submitting this, I noticed you've been working on the same thing today in another branch.  I added your changes here and my unit test is now passing!

That's great 👍  @gnilrets, thanks!

We are also experiencing this problem and working on a fix! But I am very glad I glanced and found this PR 😄

authors: gnilrets psousa50 tnightengale

repo: EqualExperts/dbt-unit-testing


text:
[BUG] Server crash when being close to mobs

What happened?

When people are very near from some mobs, the server crash and it indicates that it's the mod's fault.

What should happen?

It should not crash

Steps to reproduce

Be close to a mob
Wait

Mod/Game Version

[ 2.1.1 ] 1.16

Platform

[ 36.1.32 ] Forge

Config:
(I changed the file extension so you can access it easier)
Discord-Integration-Config.txt
There were three crash reports:
https://hastebin.com/igusofeyar.rb
https://hastebin.com/nahigedeka.rb
https://hastebin.com/uqacevudow.rb
I hope the bug will be easy to fix ! Thanks for the awesome mod, and thanks for all the work you're putting in the mod.

Try the newer version, this bug might be already fixed there

Thank you, I'll try !

repo: ErdbeerbaerLP/DiscordIntegration-Forge


text:
fix Expand-Archive to use correct library

Expand-Archive giving syntax error in PowerShell v5.1 (A parameter cannot be found that matches parameter name 'DestinationPath')
I've added Microsoft.PowerShell.Archive to use it from the correct library.

Using PowerShell 5.1 and Get-Host | Select-Object Version, I currently have version 5.1.17763.5696 installed.
Using PowerShell 7 and $PSVersionTable | Select-Object PSVersion, I currently have version 7.1.3 installed.
I tried this just now in both PowerShell 5.1 and 7 and did not see any errors relating to Expand-Archive. That being said, adding Microsoft.PowerShell.Archive/ didn't cause any issues either so 🤷

I have version 5.1.26040.1000 installed and have issue =
with 7.5.0-preview.2 works fine

authors: AndrewRathbun jimdi

repo: EricZimmerman/Get-ZimmermanTools


text:
Setting review status with file

Describe the bug
Not really a bug but possibly documentation lacking info:
According to setting-with-config-file, it is possible to set review status with external file, but there is no info how to do it.
Is this feature still available and by what command can this file be imported into parse/analyze?
This feature would be very helpful to batch disable things like magic number errors etc.
CodeChecker version
6.22.2
To Reproduce
Documentation issue.
Expected behaviour
Documentation issue.
Desktop (please complete the following information)

OS: N/A
Browser: N/A
Version: N/A

Additional context

Ok, found it.
For other dummies like me: this is not yet released as of 6.22.2, even though it is available in the doc. https://github.com/Ericsson/codechecker/releases/tag/v6.23.0-rc1 introduces it.

This is not yet released as of 6.22.2, even though it is available in the doc

This must be a mistake, as if I check the code for v6.22.2 (commit a3d35cfd509b995187288cd8631446415a334257), the linked part is not available.
The linked commit, 88af1ff15131644da34fff27fafcb661b485bda6, was first available in tag v6.23.0-rc2.

authors: m-luk whisperity

repo: Ericsson/codechecker


text:
LD_PRELOAD cannot be preloaded, possible regression with #4312

Describe the bug
On Ubuntu-24.04, when analyzing bitcoin v0.20.1, the logging phase fails.
CodeChecker version
master a6663b3349c54a5d00687bd3d3695ead19b8e060
To Reproduce
# Fresh build of CodeChecker on master
git clone https://github.com/Ericsson/codechecker.git
cd codechecker
make venv package
source venv
export PATH="$PWD/build/CodeChecker/bin:$PATH"
cd ..
# Clone and log bitcoin project
git clone https://github.com/bitcoin/bitcoin.git -b v0.20.1
cd bitcoin
./autogen.sh && ./configure --disable-wallet --disable-static --disable-tests --without-gui
CodeChecker log -b 'make -j' -o compile_commands.json

Results in this error for all TUs:
CXX      lib/libunivalue_la-univalue_get.lo
ERROR: ld.so: object 'ldlogger.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Expected behaviour
I expect the log to produce a compilation database, but it is empty.
Desktop (please complete the following information)

OS: WSL Ubuntu-24.04
Browser: not relevant
Version: not relevant

Additional context
I see that the issue came up in #3858, and I suspect that the regression to this error happened #4312.
I think the change should not just be reverted, but instead, the machine architecture of the TU analyzed should be added to LD_LIBRARY_PATH env variable of the compiler invocation to be logged.

I have tested with the latest master version (already CMake-based) Bitcoin project, and there is no mention of it overriding the LD_LIBRARY_PATH. The issue still holds.
IMO we need this https://github.com/Ericsson/codechecker/pull/3919, but with the modification that ensures we also support a different-architecture binary than the host OS.
Right now, I see 2 ways of doing this:

we detect the architecture of the compiler we use for logging
blindly pass all the shared objects to the binary by adding all of them (maybe multiple absolute path entries for LD_PRELOAD, or just a relative path, and adding all the machine-specific directories to LD_PRELOAD_PATH)

The problem with the solution in #3919 (which was reverted and fixed in  #4314) was that it put the absolute path of the ldlogger.so into to the LD_LIBRARY_PATH. The 32bits version of the ldlogger.so was used on a 32bits host, and the 64bits version on a 64 bits host. Unfortunately this is not correct, as not the architecture type of the host which matters, but the architecture type of the gcc compiler that we logged. So a user reported that logging was not working correctly when he was logging a 32bits gcc on a 64 bits machine as the 64 bits ldlogger was loaded which could not be dynamically linked with the 32bits gcc.
The currently implemented strategy as of #4314 is the following:
The ldlogger.so is placed in
/opt/CodeChecker/ld_logger/lib/i386/ldlogger.so #32 bits
/opt/CodeChecker/ld_logger/lib/x86_64/ldlogger.so #64 bits
We set the LD_LIBRARY_PATH to the directory containing containing dir and the LD_PRELOAD env var to relative ldlogger.so
LD_LIBRARY_PATH=/opt/CodeChecker/ld_logger/lib
LD_PRELOAD=ldlogger.so
then the linux will automatically select the ld_logger/lib/i386 and the ld_logger/lib/x86_64 subdirectories based on the architecture of the logged gcc.
Has this behaviour changed on the newest linux ubunut 24? The current implementation works fine (according to my tests) on ubuntu 20,22, rhel 8,9.

I have created a draft for option 2 since it seemed like the simpler solution.
I have also tested it on Ubuntu24, and the multiple .so files that are possibly reachable due to all of them being added are not an issue, the logger works as expected, and if I remove only the relevant ldlogger.so (x86_64 for my machine), but kept the others, the log command correctly detected that I meet neither the ld-logger nor the intercept-build requirement.
I have also left in the old path, which just includes the lib folder.
PR here: #4394


text:
[fix] Fix tidyargs file encoding

The content of tidyargs file is given to re.sub() function which doesn't
accept binary strings.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 3

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 3

Clones added
============
- analyzer/tests/functional/analyze/test_analyze.py  2

See the complete overview on Codacy

authors: bruntib gyorb


text:
http://demo.openwebrtc.org/ not working in iOS

I tried a simple test, and opened bowser in my iPad (iOS version 9.3.5), and tried to access the room that I created at http://demo.openwebrtc.org/ from my Mac. It does not display my video in bowser. Is there any issues with the current bowser version?

Can confirm this, tried using bowser on iOS and chrome on mac.
Behaviour as follows: in chrome I could create a room and join. Browsing to the same room in bowser didn't allow joining, buttons disabled.

authors: shoreflyer yasmagic

repo: EricssonResearch/openwebrtc


text:
tests: update models to provider/model format

[!IMPORTANT]
Update model name in tests/test-integration.sh to openai/gpt-4-1106-preview.

Tests:

Update model name in tests/test-integration.sh from gpt-4-1106-preview to openai/gpt-4-1106-preview.

This description was created by  for 171f996e58a45b80bf4300ac977569db6f2da102. It will automatically update as commits are pushed.

Nice catch!
Congrats on the first merged commit :)

authors: ErikBjare brayo-pip

repo: ErikBjare/gptme


text:
Trampoline fails to run with JDK 9.0.1

./gradlew
FAILURE: Build failed with an exception.

What went wrong:
Could not determine java version from '9.0.1'.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Exception is:
java.lang.IllegalArgumentException: Could not determine java version from '9.0.1'.
at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:70)
at org.gradle.api.JavaVersion.current(JavaVersion.java:80)
at org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:29)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:247)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:182)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
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:564)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
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:564)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

Hi @ggerard ,
At least on windows, having:

java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

I could start Trampoline, as well as instances, using gradle wrapper or maven without changing anything.
Knowing that you are working on a unix system, I will give a look there.

authors: ErnestOrt ggerard

repo: ErnestOrt/Trampoline


text:
Missing components

ArcGISViewStateLoggingComponent
ArcGISCameraControllerComponent
are missing from the package, and the name space "using Esri.ArcGISMapsSDK.Samples.Components" is not exsit

Navigate to the package manager, then click on the ArcGISMapsSDK for Unity, click on Samples, and then click install samples. This will import the samples and fix the issues you are having.

repo: Esri/arcgis-maps-sdk-unity-samples


text:
DSC 4.1.0 - Missing .NET Desktop Runtime 6.0 (x64) for ArcGIS Server 11.1 - SOE/SOI .NET support

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request

Module Version

4.1.0

Affected Resource(s)

ArcGIS_Server

Configuration Files

# Copy-paste your DSC JSON configurations here - for large configs,
# please use a service like Dropbox and share a link to the ZIP file.

Expected Behavior

The current DSC module 4.1.0 supports ArCGIS 11.1 but one part is missing. If you would like to have Server Object Extensions or Server Object Interceptors (SOE and SOI) installed on your ArcGIS Server, you need to install .NET Dekstop 6.0 runtime support. It's mentioned here: https://developers.arcgis.com/enterprise-sdk/guide/net/net-6-support/ and here https://developers.arcgis.com/enterprise-sdk/guide/net/net-6-support/#deploy-net-6-soes-and-sois-to-arcgis-server
If this .NET Desktop runtime is installed, the optional feature ".NET extension support" for ArcGIS Server can be chosen to be installed. This .NET Desktop runtime configuration is currently missing. It is configurable for an ArcGIS Pro installation. See "DotnetDesktopRuntimeDownloadUrl " or "DotnetDesktopRuntimePath" from the variable reference page: https://github.com/Esri/arcgis-powershell-dsc/wiki/v4.1.0-Variables-reference-page-for-JSON-configuration-files
We would need the same for ArcGIS server as it is for ArcGIS Pro.
Actual Behavior

Not implemented
Steps to Reproduce

Completely missing
Important Factoids

References

Support has been added for downloading and installing Microsoft Dot Net Desktop Runtime for ArcGIS Server in DSC ArcGIS Module v4.4.0:
https://github.com/Esri/arcgis-powershell-dsc/releases/tag/v4.4.0
Sample Json:
"Server": {
   "Installer": {
      "Path": "C:\\Software\\Archives\\11.3\\ArcGIS_Server_Windows_113_190188.exe",
      "VolumePaths": [
         "C:\\Software\\Archives\\11.3\\ArcGIS_Server_Windows_113_190188.exe.001"
      ],
     "InstallDir": "C:\\Program Files\\ArcGIS\\Server",
     "EnableDotnetSupport": true,
     "DotnetDesktopRuntimeDownloadUrl": "https://download.visualstudio.microsoft.com/download/pr/907765b0-2bf8-494e-93aa-5ef9553c5d68/a9308dc010617e6716c0e6abd53b05ce/windowsdesktop-runtime-8.0.8-win-x64.exe",
     "DotnetDesktopRuntimePath": "C:\\Software\\Archives\\11.3\\windowsdesktop-runtime-8.0.8-win-x64.exe"
   }
}

repo: Esri/arcgis-powershell-dsc


text:
Exception for apikey more info link

https://github.com/Esri/arcgis-runtime-samples-dotnet/blob/7825b68abe113207b67a27cf02133af658a767d9/src/WPF/ArcGISRuntime.WPF.Viewer/ApiKeyPrompt.xaml.cs#L63

A fix has been merged. Thank you for reporting this 👍

A fix has been merged. Thank you for reporting this 👍

authors: ZackAllen kirkktx

repo: Esri/arcgis-runtime-samples-dotnet


text:
webpack / typings / Arcgis 3.18 / Angular2

Our project relies on ClusterLayer. It was working when we were using SystemJS and Visual Studio. Now that we have separated the front end from the back end and use VS Code primarily as our front-end editor, ClusterLayer no longer works. We are also now using webpack.  We are having a hard time getting ClusterLayer.js to work in 3.18 with our new configuation. After creating a typings file for it, tsc compiles and the site runs without error. However, for some reason no clusters are showing up. Can you offer any advice or do you know of anyone who has a similar setup to ours that we could use to help us along? Thanks,
Kai

@PivotalAnimal While not specific to ClusterLayer, I recommend taking a look at this blog post on using the ArcGIS JS API with webpack. There may be some tidbits in there that are helpful to your specific issues.

Issue solved. Thanks!

authors: PivotalAnimal andygup

repo: Esri/cluster-layer-js


text:
Provide ability to format the Input coordinate (ArcMap)

Currently you can change the format of the Input, but you can not edit the notation in the way that you can use the Advanced options in the Add New Output Coordinate dialog. This is important, because the style of the Input box also controls the way coordinates in the "List" box are shown. In short. In short I want some control over how coordinates are formatted in the "List" box.

requested for ArcGIS Pro as well. #347

@dfoll agree with you completely. It is of huge value to have the Output List reflect the coordinate format and notation set by the user. I would be interested and open to talking through approaches to do so should this become a high priority item for a near future release.

this still needs to be done

After speaking with @saip tonight the input coordinate box will allow a user to format coordinates the same way that they are allowed to format coordinates in the output list. The only difference is input coordinate box has a selection called default map units, which is set by the map. The default map coordinates will not be able to be formatted. @dfoll @lfunkhouser

If it's only the default map units that cannot be formatted, I think that is acceptable

Recently rebuilt CC build 19 and MT build 122 to test

I found that the custom formatted input coordinates are inconsistently applied in ArcMap 10.6 with the latest CC build.
DMS seems to work correctly.
DDM sometimes works.
MGRS never works.
https://github.com/Esri/coordinate-conversion-addin-dotnet/issues/532

Using MT build 126, I verified @BobBooth's comments

This issue needs to be sent back to @CTLocalGovTeam. Described functionality is not working. The buttons are in place to do this but the functionality does not exist.
Additional repro steps

On the Coordinate Conversion pane click the Edit Properties button next to the input text box.
Highlight MGRS and Custom
Expand Advanced if it is not already expanded
Format the MGRS coordinate with spaces in between each piece of the MGRS coordinate (this is a supported way of supporting coordinates for the output box)

This is what the Edit Properties window looks like after making changes
Click OK
Click some points in the map.
_Note that both the Input box and List retain old formatting.

Click the Edit Properties button next to the Input box again.
Note that the formatting that was set in step 4  is still  applied in the Edit Properties window

@lfunkhouser this looks like an issue that was not delivered

@dfoll have you discussed this with @saip to provide guidance?

From #532, MGRS not working for ArcMap. Coordinate Conversion ArcMap custom formatting not applied to MGRS, partially applied DDM
The latest build of Coordinate Conversion supports customization of the format of Input Coordinates (and their display in the List view) if the coordinates are DMS notation.

For other notations the support is inconsistent.
For example, some coordinates in DDM are displayed with the added dashes, and others are not:

None of the customized coordinates are displayed correctly in MGRS:

ArcMap 10.6.0
Coordinate Conversion Add In 2.3.1.19 (10/30/18)

authors: BobBooth dfoll kgonzago lfunkhouser mcalamito topowright

repo: Esri/coordinate-conversion-addin-dotnet


text:
Update to latest & android compile fixes

Changes

By default don't use  noexcept, it is varied across all different compilers and STLs so = default is good enough
Android GCC 4.9 doesn't support templated variables, use structs instead

Note: There was some git branch juggling that happened to avoid a massive amount of incompatible merge conflicts. The previous state has been kept in the runtimecore-old-2018... branch

@crezefire I don't see the lua file that we need to build this library?

Disregard my lua comment.  I forgot that this was header only :)

repo: Esri/entt


text:
Initial commit for MultiEditor Widget

@jrweakland @conklinbd FYI

Deleting pull request. Multi Editor widget is still under development with new requirements.

repo: Esri/solutions-webappbuilder-widgets


text:
Blank page after npm run start

Dear Jinnan Zhang,
First of all, many congratulations on your work. It is simply amazing as you can exploit all those data in the WaterBalance App.
I was trying to run it on my Windows machine:

I Cloned the repo
I installed all the dependencies with npm install.
I run npm run start

I have no error while compiling (in fact, the log is empty), but unfortunately, when I open the browser on the http://localhost:8080/, I got only a blank page without any console errors.

The problem seems to be in the loading of the content of the root div because, on my browser, it is empty and not populated as it is on your live demo.

Do you have any idea how to fix this problem?
Thank you in advance for your support.
Best regards,
Matteo

@matteorizziWT
Hi Matteo, thanks for reporting this issue, it seems for some reason the ReactDOM.render function from index.tsx didn't get called, that's why the root div is empty.
Did you happen to modify the entry point in the webpack config file? Because modifying that can cause the issue that you described.
Jinnan

Yes exactly, that function is not called.
Unfortunately I didn't modify the entry point in the webpack config...

@matteorizziWT Could you please clone the repo and run the commands again? We updated the app to use new GLDAS Imagery Services couple months ago and I forgot to do a pull request to merge those changes from my fork to this Esri repo.
Please let me know if that fixes the issue.
Jinnan

@vannizhang Thank you so much. Everything now is working fine.

@matteorizziWT You are welcome, thanks again for catching this issue. The app can only render the UI components once time extent info of GLDAS layers are ready (see this line here), since the old GLDAS services were retired, it won't be able to provide the time extent info either, which caused the issue you saw.

authors: matteorizziWT vannizhang

repo: Esri/water-balance-app


text:
Create credential-verification-requirements.md

Here is a basic summary on what to do on verification. I'm a bit time-constraint right now, so I couldn't spend as much time on it as I wished. Feel free to extent

Some light edits

repo: Essbante/identus-dapps-wg


text:
Created the officer-profile-list.svelte component and more.

I created the necessary officer-profile-list.svelte as well as the acm-select.svelte UI component to go with it.

This pull request is intended to close both issue #29 and #24 since the two efforts ended up relying on each other.


text:
converters the probs into np array if its already not

smile_imbalance() funciton argument "probs" does not specify that it is required to be numpy array, but it does so i have added that data type in the argument letting the user know if he/she is to refer to the docs and i have also added a line np.array() which is an idempotent operation(if the array passed is already numpy array then it does nothing but if its not it changes the list into numpy array)
Suggestion

If possible can you guys consider adding "save_plot_path" method to each function, so that when this package is used in production (which i am and people considering Continuous model delivery would use) all these plots could be saved to a particular directory for data scientists to look at later since in production, code would be used in scripts running on EC2 or other cloud servers and not on jupyter notebooks
My use case is I am retraining the model every week and XAI allows me to generate a evaluation report allowing me to remotely decide weather to push this weeks mode into  production
I considered adding it myself but i was not sure if this is the direction you guys wanted to take

Thank you

Thank you for the contribution @sai-krishna-msk - looks good. In regards to your suggestion, it seems inerseting, are you currently saving the charts manually or how do you achieve this?

Thank you for the contribution @sai-krishna-msk - looks good. In regards to your suggestion, it seems inerseting, are you currently saving the charts manually or how do you achieve this?

Hi @axsaucedo , yeah I'm using mlflow to log all the metrics and plots(so though the training happenes on a remote server I can view the results)

authors: axsaucedo sai-krishna-msk

repo: EthicalML/xai


text:
Cleanup eventstoredb in each test

Hi,
Firstly, thanks for your useful library.
How can I clean up eventstoredb in each integration test?

Hey @mehdihadeli, I would advise you to run the database in in-memory mode in that case. You can achieve that by setting the env variable EVENTSTORE_IN_MEM to true or 1 when running the container.

Hi,
Thanks, Let me check.

authors: YoEight mehdihadeli

repo: EventStore/EventStore-Client-Go


text:
calling SetApiVersion before authentication gives permissions error

using the example script:
Unhandled exception. GbxRemoteNet.Exceptions.XmlRpcFaultException: (-1000) Permission denied.
   at GbxRemoteNet.GbxRemoteClient.CallOrFaultAsync(String method, Object[] args)
   at GbxRemoteNet.GbxRemoteClient.SetApiVersionAsync(String version)
   at GbxRemoteNet.GbxRemoteClient.LoginAsync(String login, String password)
   at Program.<Main>$(String[] args)

this is a problem because AFAIK you can't choose to send SetApiVersion after authenticating

I'm unable to reproduce this error, what server version are you running?

Was the latest (2024-03-18 from memory, just via evo docker image)
On a linux server

authors: XertroV snixtho


text:
Report paging does not work in Microsoft Edge or IE?

When I create a HTML report using New-HTML and view it in Chrome everything looks good, the data tables show 15 records and have a pager for more data.
If the same report is open under MS Edge or IE it shows all the records on one page (there is no pager). This makes it very difficult to use because you end up with a huge page scroll without paging. This was tested on latest Windows 10 1903.
Is it possible to get the paging to work for Edge/IE or am I missing some parameter?

All the hard work is done by JavaScript. Not sure if IE will be able to handle advanced JS but that’s what you need to get it running. I use Edge Chromium myself. For standard Edge it could possibly work I guess but you need to make sure JavaScript for local files is allowed. Of course it’s possible that both products are so legacy some features of modern internet Won’t work.

In other words, what you did in Powershell is enough. The hard part is now verification whether IE or non-chromium Edge can be used with it.

I am using Edge with the default settings from a Windows 10 install (not domain joined so no group policy settings are being applied to harden it). This should be fairly easy to reproduce if you load a larger data table in Edge. I don't think there is any blocking going on. The report worked fine in ReportHTML but once I converted over to PSWriteHTML the bug is there in Edge.

I could always reproduce it. I just assumed this won't work on IE or Edge. But actually I can see that indeed it works if I open up: https://datatables.net/examples/advanced_init/complex_header.html
So maybe it's just my implementation that is struggling.  I don't promise a fix this week as I'm on delegation to France, but if I'll get a chance I'll try to push some checks and see what may be causing this.

Sounds good, thanks for the quick replies.

https://datatables.net/download/compatibility

Actually, it seems to be working fine: https://evotec.xyz/wp-content/uploads/2019/05/DashboardActiveDirectory.html when hosted on the website. This mean it only doesn't work for local files. This seems more like an issue with IE/Edge with the way I'm including those scripts.

You are right, only seems to be when the file is open locally vs. hosted. That is super strange, I wonder what causes it to break locally.

Does it work locally with ReportHTML?

Could you give some simple reproduction steps?  I can help diagnose what could be happening to the JS.

Just take an example - for example, Example04-TableAndTabs and see how the Table loads in Chrome/Firefox and how it acts in IE. Basically JS doesn't seem to load properly. Or
Get-Process | Out-HTMLView

And try the .html in diff browsers.

Potentially related: https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/ms537628(v=vs.85)?redirectedfrom=MSDN

https://blogs.msdn.microsoft.com/ieinternals/2011/03/23/understanding-local-machine-zone-lockdown/
https://blogs.msdn.microsoft.com/ieinternals/2012/06/19/enhanced-protected-mode-and-local-files/
But even thou I played with those settings it doesn't seem to work

I tried downloading all of the JS, and basically everything related to this issue and can't find a workaround.  Seems that both IE and Edge just happen to suck.
Works fine in FireFox, Chrome, EdgeDev, and everything else one might use.

@c3rberus Do you know if  ReportHTML reports happen to work on IE/Edge when run locally?
@1RedOne Ye, it's a bit of pity. IE is only available on servers for me.

No they do not work in IE/Edge when ran locally. We use Edge as default browser within the organization and everyone has Chrome installed as a secondary option. Edge plays nice with internal enterprise applications so we can't switch out the default quite yet. It would be great if we could make this work for IE/Edge. I wonder what is causing this, the datatables show being compatible and no errors are thrown when the html file is opened.

This is caused by Internet Explorer and Edge's behavior of not loading JavaScript files for items in the Intranet zone.  I cannot find a workaround other than changing the setting in Internet Explorer.

Did you manage to find settings that work?
I was thinking I need to try this out https://stackoverflow.com/questions/8146926/why-does-ie-restrict-the-javascript-files-of-local-html-pages with crlf.

I tried fixing it, but I'm out of ideas. Leaving this open. maybe someone will manage to fix it. I even tried playing

https://social.technet.microsoft.com/Forums/ie/en-US/7f8e1bc1-f4be-4274-840c-73f1aab092b2/allow-blocked-content-javascript-on-local-html-files-ie11?forum=ieitprocurrentver
http://woshub.com/how-windows-determines-that-the-file-has-been-downloaded-from-the-internet/

But neither NTFS streams or comment made any impact.

I tried all of those options and some other things, like downloading all of
the JS scripts needed and referencing them locally.  I could not got IE to
load the JS without changing zone info, which is almost always going to be
blocked by group policy and so of little use.
Better idea?  Don't reference locally.  Use the IIS ability of the report
and push the reports there.
On Wed, Oct 9, 2019 at 3:10 PM Przemysław Kłys notifications@github.com
wrote:

I tried fixing it, but I'm out of ideas. Leaving this open. maybe someone
will manage to fix it. I even tried playing

https://social.technet.microsoft.com/Forums/ie/en-US/7f8e1bc1-f4be-4274-840c-73f1aab092b2/allow-blocked-content-javascript-on-local-html-files-ie11?forum=ieitprocurrentver
http://woshub.com/how-windows-determines-that-the-file-has-been-downloaded-from-the-internet/
But neither NTFS streams or comment made any impact.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EvotecIT/PSWriteHTML/issues/49?email_source=notifications&email_token=AAJQTCVZFX5XZFBIHI77YW3QNYUDNA5CNFSM4I3VLIJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAY7VPA#issuecomment-540146364,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJQTCTZHTV6BEJ5QIDO4CLQNYUDNANCNFSM4I3VLIJQ
.

No, even when I changed zone info using every possible trick, I could not get this to work.

I've tracked this to Datatables 1.10.12 working fine, where 1.10.13+ doesn't work. But it only doesn't work if used with my code.

This folder has 2 files: https://github.com/EvotecIT/PSWriteHTML/tree/master/Examples/Example-IE
Both should work in IE. One is mine with 1.10.12, one is using some random example where I've put a similar version.
This needs further debugging why it fails for higher versions.

I can confirm the TestIE-Works.html example works in IE and Edge.

Yes. As always. Testing few other things.

Sounds good, thanks for getting this working in IE/Edge!

Should be working in new release now. VIsNetwork still not fixed thou

repo: EvotecIT/PSWriteHTML


text:
Configuration set up

Dear Team,
Please provide wiki or help document for how to implement or use this tool. This would be helpful for everyone.
Cheers
velan

We've added wiki to the project. We hope that it's enough to try Nostradamus.

authors: ASitnikov velanbabu

repo: Exactpro/nostradamus


text:
openmw-0.47.0

https://retropie.org.uk/forum/topic/27034/new-port-installer-openmw-morrowind/39?_=1645559365579

not going to bother

repo: Exarkuniv/RetroPie-Extra


text:
Liquid syntax error (line 129): Unknown tag 'image

Hello :)
$ jekyll serve
Configuration file: none
            Source: /home/meow/testtesttestrepo.github.io/strange-case
       Destination: /home/meow/testtesttestrepo.github.io/strange-case/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
    Liquid Warning: Liquid syntax error (line 667): Expected end_of_string but found id in "{{ range first 10 .Data.Pages }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 668): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 756): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 759): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 760): [:dot, "."] is not a valid expression in "{{ .Content }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 830): Expected end_of_string but found id in "{{ range first 10 .Data.Pages }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 831): [:dot, "."] is not a valid expression in "{{ .Permalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 831): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 948): Expected end_of_string but found id in "{{ range first 10 .Data.Pages }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 949): Expected end_of_string but found id in "{{ if eq .Type "post"}}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 950): [:dot, "."] is not a valid expression in "{{ .Permalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 950): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 956): Expected end_of_string but found id in "{{ if eq .Type "page" }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 957): [:dot, "."] is not a valid expression in "{{ .Permalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 957): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1004): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1020): Expected end_of_string but found string in "{{ template "theme/partials/header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1024): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1032): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1035): Expected end_of_string but found id in "{{ range first 10 .Data.Pages }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1036): Expected end_of_string but found id in "{{ if eq .Type "post"}}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1037): [:dot, "."] is not a valid expression in "{{ .Permalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1037): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1043): Expected end_of_string but found id in "{{ if or (eq .Type "page") (eq .Type "about") }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1044): [:dot, "."] is not a valid expression in "{{ .Permalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1044): [:dot, "."] is not a valid expression in "{{ .Type }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1044): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1044): [:dot, "."] is not a valid expression in "{{ .RelPermalink }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1048): Expected end_of_string but found string in "{{ partial "footer.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1058): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1060): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1061): [:dot, "."] is not a valid expression in "{{ .Content }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1063): Expected end_of_string but found string in "{{ partial "footer.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1078): [:dot, "."] is not a valid expression in "{{ .Date.Format "Mon, Jan 2, 2006" }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1085): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1087): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1088): [:dot, "."] is not a valid expression in "{{ .Date.Format "Mon, Jan 2, 2006" }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1089): [:dot, "."] is not a valid expression in "{{ .Content }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1091): Expected end_of_string but found string in "{{ partial "footer.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1108): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1110): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1111): [:dot, "."] is not a valid expression in "{{ .Content }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1113): Expected end_of_string but found string in "{{ partial "footer.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1121): Expected end_of_string but found string in "{{ partial "header.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1123): [:dot, "."] is not a valid expression in "{{ .Title }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1124): [:dot, "."] is not a valid expression in "{{ .Date.Format "Mon, Jan 2, 2006" }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1125): [:dot, "."] is not a valid expression in "{{ .Content }}" in exampleSite/content/post/creating-a-new-theme.md
    Liquid Warning: Liquid syntax error (line 1127): Expected end_of_string but found string in "{{ partial "footer.html" . }}" in exampleSite/content/post/creating-a-new-theme.md
  Liquid Exception: Liquid syntax error (line 129): Unknown tag 'image' in exampleSite/content/post/migrate-from-jekyll.md
jekyll 3.8.5 | Error:  Liquid syntax error (line 129): Unknown tag 'image'
FAIL: 1

sorry, isn't jekyll template :)

No worries!

repo: ExchangeRate-API/strange-case


text:
Enforce sum(occ) == 1 in the output of qFit :bug:

Describe the bug
Since we are not enforcing CPLEX to have occ == 1, we need to create a function outside of CPLEX to make sure that sum(occ) of each protein residue equals one.
A function will need to be created in qfit.py and applied after qFit segment (for proteins) or qFit residue (for residue).

This has been fixed with #175


text:
Broadcast changes in Node attributed data to consumers

Any changes in the attributes of a Node instance should trigger a broadcast via RabbitMQ.

Done

authors: wildlyadequate williewheeler

repo: ExpediaDotCom/seiso


text:
Implement attaching .txt file to send more than 15 K characters reported by @rushatgabhane

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Problem:
you can't send more than 15k chars.
Solution:
Attach a .txt file when a user pastes more than 15k chars.
Platform:
Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web
Version Number:
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

Expensify/Expensify Issue URL:
Issue reported by: @rushatgabhane
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1666957808027799?thread_ts=1666892266.003079&cid=C01GTK53T8Q
View all open jobs on GitHub

Reproduced, unique labelling eng. I'm not sure if we should commit to the txt file without more eye on the issue and considering other options

I think this is indeed a feature request that needs consideration in a wider audience proposal.

authors: MitchExpensify flodnv kavimuru

repo: Expensify/App


text:
Dev: Web - Magic code does not blur during sign in loading

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:
. Go to login page, enter email and click Continue
2. Type quickly more than 6 digits in the magic code field
3. Once 6th digit is entered, signing in starts.
4. Then the magic input should blur till backend returns success or error.
5. See that while signing in started, the 7th digit onwards can still be typed into magic input.
Expected Result:
Magic input should blur on entering 6th digit till backend sends its response
Actual Result:
Describe what actually happened
Workaround:
Magic input is not blurred
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: Dev 1.3.41-2
Reproducible in staging?: n/a
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/28eb1d8c-a1a9-4597-8bd9-521b34ad72cf
**Expensify/Expensify Issue U@c3024
Issue reported by: @c3024
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1689497435352449
View all open jobs on GitHub

Ah cool, thanks for that!
This is a dupe of https://github.com/Expensify/App/issues/21293 & https://github.com/Expensify/App/issues/23087. Closing!

Ah cool, fair. @garrettmknight want to pay out on the job linked to the issue that's open?

authors: kbecciv trjExpensify


text:
[Discussion] Add the ability to handle images in Onyx

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Problem
Right now, we have no way of saving images offline.  We can't use Onyx as it has storage limitations on web with a 5MB limit.  There's been a lot of discussion on how to handle this in this issue and in this slack thread.
Why is this important?
This is important to be able to handle offline functionality of images
Solution
Create an offline storage solution for Onyx so that even when the application is offline and closed, the attached images will persist and continue to upload
Expensify/Expensify Issue URL:
https://github.com/Expensify/Expensify/issues/169197
cc @thienlnam
View all open jobs on Upwork

Triggered auto assignment to @greg-schroeder (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

Create a JNI-based AsyncStorage for Onyx that works across all platforms

Sorry but this looks like a huge task to do. Maybe we did not mean to do so. Can anybody confirm what exactly is need to be built? I expect that we need to expand AsyncStorage in a wrapper so that it supports a method like AsyncStorage.setImages() or AsyncStorage.removeImages(). Please, this looks daunting to me.

@parasharrajat Yup this is a huge task, but basically is going to be summed up with what needs to happen from this slack tread happening now.  I updated the solution a bit but I imagine that it will keep updating until we figure out what the most viable solution for this will be

Posted to https://www.upwork.com/jobs/~011fcd226e59956a18
I'm going to add a new Contributor Manager, I'm out of office next week. They can update the price if needed (sounds like @parasharrajat might want for $250 though :trollface: )

Triggered auto assignment to @SofiedeVreese (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

@mallenexpensify :jack_o_lantern:. Maybe I will find a solution that takes lesser effort.

@mallenexpensify I have applied on upwork by the name "Aditya Batra" on your JD.

Hey @aditya27dev can you a proposal with the technical explanation of the changes you will make in this GH here? thanks!

Hi @SofiedeVreese Sorry I can't share technical changes here publicly which is a inappropriate way of doing a job.
But I can work on this task, if you hire me.

Hey @aditya27dev per our contributing guidelines, we do require contributors to make a proposal for their solution and post it as a comment in the corresponding GitHub issue. The solution proposal should include a brief technical explanation of the changes proposed. We don't hire if the contributing guidelines aren't being followed.

Throwing a new title on this since discussion is still ongoing in the slack thread, to view or participate check it out here

Seems like the discussion is still fairly ongoing.

Clarifying with @thienlnam to see if there's some sort of resolution in the Slack thread.

Adding a planning label and changing to a weekly for now, per this comment. We're still discussing possible solutions so having this as a daily doesn't make sense for now.

I don't think we have any updates here. @thienlnam should we close this GH or is there still an ongoing discussion? I was assigned as part of the "external" label (= to push it to Upwork) but I'm not sure if my assignment is still relevant here.

Discussion has mainly halted - here is where we're at with the last comment from @kidroca

Neither Android or iOS are handling file/blob pasting in E.cash ATM
On web/desktop the clipboard provides a File object
The only time something happens from a blob is when html content is copied, then any image sources are fetched as blobs, and then an in memory File is constructed. The preview image uses the File.sourceURL
The File constructor is available only on web/desktop not on native
It might be possible to do the same on native, but would involve more hoops than simply using the FS
And I can't even find anything on the subject, besides converting the blob to a base64 string and feeding it as image source.uri
So you have to:
Read blob from SQL and keep it in memory (as less as possible)
convert it to something the Image can work with.
Feed it to the Image component
Compared to:
Have a URI string pointing to a file in FS
Give it to the Image
Before making this decision let's find an example that uses Blobs to display images and what it involves. E.g. if it have to store the blob on disc first, even temporary, it defeats the purpose

Going to be looking into this in the next couple of weeks but if someone else would like to dig into this feel free!

Been focused on a few other things at the moment so I haven't had time to look into this yet - the investigation can still be an external task

Hey, @kidroca, can you spend some time investigating this? You can do this on your existing contract

@arielgreen Yes, I've taken part of the discussion on slack and can research this further

The original plan was to keep image/files in the database. This is easy to achieve on web/desktop, but more complicated on native with the current storage library and model we use

AsyncStorage works only with strings ATM - converting files to base64 strings should be out of the question. But we can discuss it if you want to
MMKV is no better as it only supports simple types like number, boolean, or string

Trying to store images/files in the database would be tremendously difficult even if we switch to a richer database library
I've tried to explain it on slack.
The key point for storing everything in "local db" is simplicity and universal logic, but that won't be the case.
I'll propose a simpler and IMO more maintainable solution.

Onyx addresses the storage layer through a simple get/set/merge interface
We've already extracted this interface and were able to swap different underlying storage "drivers" that can be selected based on platform (e.g. MMKV for native and AsyncStorage for web/desktop)
iOS and Android
Let's say we have a storage/index.native.js
Onyx imports Storage from ./storage and uses it like Storage.get, Storage.set, etc...
Under the hood it delegates calls to AsyncStorage like we already do
While for the file related operations we'd use react-native-fs
We can either add getFile/setFile specific methods or overload the existing get, set methods to work with files based on input type
Storing files
A request to save a file would be very similar to existing storage calls - it will have a key and value
The key should be based on the remote url of the file (if such exists) and can be prefixed by a collection name
e.g. FILES_${key}
The value should be File metadata (this is provided by our file/image picker)
Using react-native-fs we store the file in our app documents (or cache) space with a file name that's based on the key e.g. FILES_${key}
The specific implementation can either move or copy the file there
As with regular storage, we should have eviction logic that cleans up files when storage is low or the OS complains
Storing files this way is very fast - we're working with a reference to the file and it never actually travels from JS to native
Moving/copying operations are handled by the OS and threaded separately
Reading files
Reading is based on the same concept
the Onyx API receives a key like FILES_${key} it's identified as a request to read a file
We know the location of the file because it's based on the key and the storage folder
Using react-native-fs we create a File reference to the file
Images and File preview components can use this to render the file
Accessing the file in this manner means

We're not reading the whole file from native to JS and then keep it in memory
The preview is loaded only when it has to and it's handled natively

You can checkout how the "storage provider" concept works in practice here: https://github.com/Expensify/react-native-onyx/pull/95
Web and Desktop
Let's say we have a storage/index.js
Onyx imports Storage from ./storage and uses it like Storage.get, Storage.set, etc...
Under the hood it delegates calls to AsyncStorage like we already do
But for the file related operations we'll implement a solution that stores Files in IndexedDb as Blobs
Storing files
The flow is very similar to the one for native.
We'll be using a key like FILES_${key} and File metadata
Then we'll convert the file to Blob and save it under the key in IndexedDB
Reading files
We receive a key which we evaluate as a File key
We use it to get a Blob from the database
When we retrieve the Blob we can convert it to File using the File constructor - our web/desktop implementations have similar logic for pasted images (see TextInputFocusable/index.js)
Images and File preview components can use the file to render

Using different Storage Provider for native and web allows us to implement the best storage handling for each platform.
Even though we're using Platform specific code, it's encapsulated and abstracted by Onyx so that Onyx user like Expensify/App don't have to

@kidroca This proposal looks great - I agree that we should be using the best storage handling for each platform and encapsulating it through Oynx.  If possible, let's explore this with a POC and see how this would work within Oynx

Alright, I'll prepare a POC that stores and displays an image with Onyx

Submitted 2 PRs

Add file handling capabilities to Onyx: https://github.com/Expensify/react-native-onyx/pull/102
Small updates to Expensify/App to showcase offline file persistence: https://github.com/Expensify/App/pull/4908

You can also use the branch to build and run the POC: https://github.com/kidroca/Expensify.cash/tree/kidroca/file-handling-poc
Overview of the changes
The changes are based on the idea here (though not exactly): https://github.com/Expensify/App/issues/3867#issuecomment-902662445
It was easy to move existing web/desktop handling to happen through localforage, this allows us to save FIles in IndexedDB with almost no changes. Using localforage moves all key/value handling to IndexedDB which allows much more than 5MB for everything that we store in Onyx
On native we store a reference to a file, this is OK as everything working with native files supports this and expects this format. The only thing that we do is to move/copy the file to a place where we know it would not be removed by the user or the OS. This is the app/documents/onxy_files folder
There's still some work to be done if the POC is accepted (eviction, error cases), the POC tries to showcase this functionality:

Create an offline storage solution for Onyx so that even when the application is offline and closed, the attached images will persist and continue to upload

What needs to be done
File cleanup logic
Clean up works on web/desktop as removing the persisted request removes the File with it
But on mobile, the file is kept separately and we need to relay to Onyx that a file is no longer needed
Perhaps we can update the Network queue to call a function like Onyx.releaseFile(file) when a request containing a file
was completed.
A simpler solution might be to run a check during launch (or before exit) that removes files older than one week, assuming they were uploaded by our request retry logic
Eviction logic
Handle errors resulting from lack of space
There's functionality that lists the files created by "us". We can add filtering and remove the oldest ones
Cleanup and documentation
There are some "Todo" comments on possible enhancements or alterations
Some items would need to be better documented

Awesome, this is looking really good - going to loop in @marcaaron and @tgolen and see what their thoughts on the POC are

No update here yet - going to start pinging people for some thoughts / reviews on the POC

When you open the PR you see this

which might be scary 👻 but it's just the package-lock update

Pinged for reviews but n6 deadline is taking priority - going to ping about this again next week

Please refer to this post for updated information on the n6 hold, we've raised the bonus to $250 for all issues where a PR is created before the N6 hold is lifted.

We've made some changes in the Onyx PR: https://github.com/Expensify/react-native-onyx/pull/102
The file handling process for native is simplified a lot and it makes usage easier. There are notes in the description:

When an attachment is picked the AttahcmentPicker will persist it to App/cache folder. It is then available until cache is cleared
This lets us save only the reference to the File in our key/val storage
This reference is enough to work with the file - use it in an <Image /> or in a upload request

The PR is approved, but we might need to deal with an issue on mobile web ios first.

Discussions have been happening in the relevant PRs

Out of curiosity, when we add E2E encryption, how do we intend for this to work?  I think we can maintain it unencrypted on disk such that it works in the <img> tag, but when we upload it will it be part of the regular message body as normal?

There's an issue on mobile-web due to us deleting persisted requests (and their files) as soon as they are added to the network queue: https://github.com/Expensify/App/pull/4908#issuecomment-967139238
The work in this ticket: https://github.com/Expensify/App/issues/5987 would also solve the problem here as it will only remove persisted data after the request is completed

Looks like PR is ready for review https://github.com/Expensify/App/issues/5987
Once that is merged, we can merge the other file handling PR https://github.com/Expensify/react-native-onyx/pull/102

Synced with main (1170 commits 🤯)
I've reverted the change to persist attachment requests to storage so that we can merge this as it was approved, and once #6556 is merged we can just enable persisting attachment requests

I understand the Onyx POC was just merged and that we want a follow-up to add some more tests. Is there an issue somewhere to bring these changes to life and implement offline-first images in the New Expensify app?

Yeah so this
PR: https://github.com/Expensify/App/pull/4908#event-5768021643 (I've been meaning to review) is so that we can handle images with onyx
After that, this issue (https://github.com/Expensify/App/issues/6527) is probably the next step for offline-first images

One thing I forgot to bring up
When #4908 it will switch web/desktop from using one storage medium - localStorage to another - IndexedDB
Meaning any logged in users would be logged out
Should we include a migration that tries to move any existing Onyx values in localStorage to IndexedDB before the app starts (along the rest of the migrations)?
ios and android aren't going to be affected since they continue to use the same medium - AsyncStorage

I guess yes, we should add that.

Yeah, I agree, let's try to migrate everything if we can.

Alright, I'm working on it

Added the migration: https://github.com/Expensify/App/pull/4908/files#diff-fc59a9d775dba3004d8ed5a4dec154bbd2487455e7c720afed29bc8003a5228f

PR was approved but we forgot to remove the HOLD label: https://github.com/Expensify/App/pull/4908#issuecomment-1010993484

We can enable file persistence after #6556 is merged
It deals with the issue of prematurely deleting persisted request (and the files to be uploaded)
After #6556 we'll be able to remove the comment here and set persist to true
https://github.com/Expensify/App/blob/c224cfe5ba9f9fc2214a2963d6c02d855dc1c96e/src/libs/actions/Report.js#L1170-L1173

Still waiting on #6556

#6556 was merged
Created a PR to enable attachment persistence: #7520

Found 2 problems around persisted attachments
No loading animation/preview
You can see it on most of the videos on the PR #7520 (see web or mobile web)

Be offline
Select an attachment to be uploaded (preferable larger so it takes more time to upload)
Quit the app
Open the app again
Open the chat where the attachment was uploaded
Observe it's not there, and there's no indication something is uploading
The attachment only appears after the upload is over

Problem:
The optimistic action that serves as a placeholder during the upload is removed
We seem to clear any optimistic actions at launch or when a chat is opened
The reason seem to be to prevent discrepancies between local and online state - any optimistic actions are removed - if real actions exist for the same they would be fetched shortly
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/actions/Report.js#L451-L457

Solution
I think we should try to cross reference optimistic actions with requests in the network queue
This way when we clean up optimistic actions we keep the ones that still have pending request
We already put optimisticReportActionID on the request so we can distinct it
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/actions/Report.js#L1169-L1175
We can make a lib or expose a function that return any pending Report_AddComment actions from network queue or persisted storage
Report.removeOptimisticActions would use that and skip removing optimistic actions that have pending Report_AddComment

2. We're only persisting a request if we're offline
NetworkRequestQueue.saveRetryableRequests is only called in the if(isOffline) block
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/Network.js#L185-L206
Problem:
If we quit the app while an upload is still pending it will neither be upload or persisted
For a request to be persisted you have to be offline first and then to make the request
Recent changes alleviate this to some extent - when a request is persisted to storage it will only be removed after it's successfully performed - it'll be retried until eventually succeeding
But it would only get to be persisted if you were offline to begin with

Solution
Requests with the `persist` flag should be persisted regardless of being offline or not
If the user quits the app while the request isn't completed existing logic would retry it on next launch
Otherwise added logic would remove it from persistent storage when it succeeds
The following
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/Network.js#L229-L230
becomes
 if (queuedRequest.data.persist) {
   NetworkRequestQueue.saveRetryableRequests([queuedRequest]);
 }

 processRequest(queuedRequest)
     .then(response => {
        onResponse(queuedRequest, response);
        NetworkRequestQueue.removeRetryableRequest(queuedRequest);
     })

We should be live with this already and can close this right? @kidroca

@thienlnam I think we have the bare minimum if that's enough I guess we can close
I've pointed out 2 problems using the feature the way it is right now

👍  Will keep this open until we resolve those issue

I'll create separate tickets for them for more visibility and then we can discuss the proposed solutions in those tickets

Closing now that we have other tickets for the existing problems
https://github.com/Expensify/App/issues/7934
https://github.com/Expensify/App/issues/7935

authors: MelvinBot SofiedeVreese aditya27dev arielgreen kadiealexander kidroca mallenexpensify parasharrajat quinthar roryabraham tgolen thienlnam