#tooldev-general

1 messages ยท Page 120 of 1

obtuse citrus
#

it's for the type conversion when they added fragment stash tab

simple ravine
#

both are ItemClass idx 38

obtuse citrus
#

oh then that has changed it used to be different classes too

#

either way it was done when they added fragment tab

simple ravine
#

ModDomain is different. Flag0 is False on the one that is not referencing a FragmentBaseItemTypesKey

#

ok

violet path
#

isn't how that worked is whenever a new one dropped or was put into the fragment tab, it changed types?

obtuse citrus
#

yea

simple ravine
#

the intersting thing is that the second has a MOD_DOMAIN if 25, which is defined as UNDEFINED, I guess unkown or something?

#

whereas the other one has 14, which is MAP_DEVICE

#

but yeah, seems consistent with things such as offering to the godess in there as well

obtuse citrus
#

not unknown , undefined

#

ModDomains.dat doesn't have as many rows

#

I'm pretty sure that's just a special value for nothing in that case

simple ravine
#

Ah success

compact isle
#

another Dark+ user I see

simple ravine
#

It's Visual Studio 2019 Preview

#

Got to change this:

#

In Text Editor -> C#

compact isle
#

oh interesting it seems like the same colour set as I use in VSCode ๐Ÿ˜„

simple ravine
#

yeah, very similar indeed

compact isle
#

definitely nicer than whatever I have set as default in VS 2019

simple ravine
#

I also changed to JetBrains Mono font, which is slightly nicer than Consolas

#

Is there a good live unit testing thing for VS Code btw?

#

funny how that's gated behind Enterprise version in Visual Studio

compact isle
#

none that I've found

simple ravine
#

I can understand the peformance diagnostics and architecture stuff is gated behind enterprise, but live unit testing? ah come on, should be available in Community edition, at least Pro

compact isle
#

it's possibly the one thing I actually enjoyed about JetBrain's IDEs

simple ravine
#

PhpStorm etc?

compact isle
#

yeah

simple ravine
#

Do you opt to use VS Code over PhpStorm nowadays though?

#

or just use VS Code for other things?

compact isle
#

I use it instead, only one web dev in our team is still on phpstorm

#

but I also use VS Code for when I have to dive into C++ stuff although it is utterly useless at doing anything really

simple ravine
#

And the obvious follow-up question would be the reason why

compact isle
#

it's fast

simple ravine
#

Oh, so PhpStorm is noticeably slower, to the point where the pros are outweighed by the slowness?

compact isle
#

I think the unit tests part is the only thing I haven't been able to sort in VSCode, there aren't really any other benefits to PHPStorm I can think of

#

I use the intelephense plugin for VSCode which gives everything I need from an IDE in terms of code assistance

#

xdebug works fine, auto formatting / static code analysis all have good plugins etc

simple ravine
#

nice indeed

compact isle
#

I suppose one more thing to praise VSCode for is it's customisability since I can just hide all the unnecessary windows away 99% of the time

simple ravine
#

for me, vs code is not convenient enough over visual studio, especially when it comes to project and solution management, nuget referencing etc

#

yeah, vs code is really useful, i use it a lot for one-offs and simple things

#

also use it as a nice text editor, because of the nice colors

compact isle
#

I still use Visual Studio for actual C++ compiling or C# since VSCode just isn't good enough in those areas

simple ravine
#

but when I try to understand Omega's python, I do that in VS Code

#

it does a good job at that, although I am terribly bad at understanding that code base ๐Ÿ˜„

compact isle
#

haha yeah python is good in VSCode

simple ravine
#

at work I don't do much coding anymore, except when helping some of our architects with some stuff, but one thing I did was try mermaid js plugin for vs code

#

works pretty good... mermaid js is like defining sequence diagrams (and other types) with 'code'

#

works pretty nice

worthy cape
#

Iโ€™ve recently gotten back to actual VS for C++ after a long while in Code land, itโ€™s weird but finally getting up to speed again.

#

Itโ€™s going to be rough if I ever pivot into professional C++ dev, these c++latest/20 features are so nice.

simple ravine
#

why rough?

worthy cape
#

You know youโ€™re using the right stuff when IntelliSense is all squiggly on you.

#

Because any shop you go to will have actual constraints on what language standard to use, especially if multi platform.

simple ravine
#

ah, yes

worthy cape
#

I know nada about say PoE but Iโ€™d guess they might be on C++14, maybe 17 at best.

simple ravine
#

would it be a mess to "upgrade" to latest?

worthy cape
#

What do you do when the fixed toolchain for console X doesnโ€™t have it implemented?

simple ravine
#

I mean, for an example, with C# 7 code-base, you could upgrade it to C# 9 with zero implications

worthy cape
#

Changes have risks in possibly altered behavior.

simple ravine
#

Isn't C++ just compiled into native code anyways?

worthy cape
#

I know of studios that commit whole compilers to version control up front in a project and never update.

compact isle
#

we're using C++17 atm

worthy cape
#

Woo!

compact isle
#

most likely console requirements will hold us back if anything

simple ravine
#

Would upgrading to C++20 mean leaving behind some 'targets'?

#

I thought that the compiling would take care of all those shenanigans

worthy cape
#

Vendors may be more flexible these days when compilers are more stock, it used to be baaaad.

simple ravine
#

i.e. C++ compiling into machine code?

worthy cape
#

You got the vendors fork of GCC 2.93 and CodeWarrior IDE and you were happy about it.

#

SDKs are not just compilers, theyโ€™re also libraries and tooling which needs to work together, not to mention runtime bits that are on the target device already.

simple ravine
#

oh, i thought C++17/20/etc was language versions

#

busted ๐Ÿ˜„

worthy cape
#

I know nothing of cert, but wouldnโ€™t surprise me if things are a bit regulated there too.

#

The C++ standard includes the changes to the vendors standard library supporting the implementation.

pseudo ocean
#

Most larger c++ code bases I've worked with where super light in the new c++ features, really trashes compile times a lot, debug builds with stl containers don't even work etc

worthy cape
#

If you plan to interop with the things already deployed your hands may be tied, and is it worth straying outside of the tested path?

simple ravine
#

right, one of the reasons why .NET Framework died a painful death

#

they couldn't change things they felt they wanted to change, because of expected behavior, as .NET Framework was installed centrally in the GAC

#

but I feel they've done a good job keeping it sane in .NET Core between versions, even major versions

#

fairly painless upgrade

worthy cape
#

Noteworthy is that itโ€™s not just your code in a game. Itโ€™s third party libraries, some of which you may not even have source for and which the vendor might only guarantee will work with the particular SDK you have.

simple ravine
#

yeah, that's a pain in most ecosystems I presume

pseudo ocean
#

I mean it's system dev right so most apis are c anyway

worthy cape
#

Xbone went rather hard on WinRT I thought?

simple ravine
#

I guessed that for C++, the .dll files (or .so) would be compiled into something that would be independent on the user's SDK version

#

i.e. compiled into binary stuff where behavior was 'fixed'

worthy cape
#

That has its own nice portability tho ๐Ÿ™‚

simple ravine
#

I dont know much about Xbox stuff, sorry

worthy cape
#

@simple ravine if you use dynamic runtimes, you need to match them across module boundaries if the shared state is supposed to be, well, shared.

simple ravine
#

but now thinking about it, that would probably mean huge dlls

pseudo ocean
#

I guess they still do the uwp for apps and low level apis for games stuff, but maybe it's all winrt now

worthy cape
#

That puts some icky constraints on what runtime support you have.

simple ravine
#

yeah, there are also some interopability between C++/WinRT and .NET

worthy cape
#

Want to allocate in one module and free in another or pass a vector or string class across the edge? Ho ho ho.

simple ravine
#

weird things

#

I am just crossing my fingers that MAUI will be somewhat nice

#

so we dont have to look back at UWP and WPF etc

#

it's gonna target .NET 6 though, so it's about 1 year out

worthy cape
#

Time for me to actually sleep now, itโ€™s somehow Monday already.

pseudo ocean
#

Microsoft UI kit #16

simple ravine
#

hehe

pseudo ocean
#

Idk what microsoft is up to now a days anyway they are literally all over the place

simple ravine
#

yeah I agree with you on that front... the UI space is for some reason really awkward for most platforms, especially for being 2020

#

I guess most people spent too much time trying to fit web stuff into it, and then realized it might not be what people actually wanted, while some were just watching to see what people would land, including Microsoft (watching)

#

on the term of sleeping, I should do the same probably... alarm goes off at 7-ish

pseudo ocean
#

Gn

simple ravine
#

just need to make a quick unit test for the last piece of code

#

amazing, ~75 lines of code in one go, and it works on first try

simple ravine
#

All 82 fields for all 7267 rows

#

it was a pain to write lol

simple ravine
#

Culling all the unknown columns, shaves it down to 49ms

rustic ferry
#

I've noticed that there are some .dat files that are missing, but are included in the .datl files such as 'GemTags', anyone have a tool for reading .datl?

civic crane
#

@simple ravine and what about GrantedEffectsPerLevel ? ๐Ÿ™ƒ

simple ravine
#

@civic crane I pushed the code so you can try :p

velvet fog
#

@rustic ferry GemTags.dat is exists

-rw-rw-r-- 2 nobody nobody 3074 Oct 14 07:16 3.12.4.1/Data/GemTags.dat
rustic ferry
#

Hmm weird, it doesn't show up for me, probably something I've done, thanks

worthy cape
#

@rustic ferry in case youโ€™re curious, the L variation of DAT supposedly have UTF-32 text

velvet fog
#

I am looking for an alternative to qtip3. As a floating display item, I need ajax function and display html.

velvet fog
#

Tippy is better than I expected, thanks

broken cloud
#

Was going absolutely mad trying to figure out why my stash was reported as changed when I was 100% sure it hadn't been touched at all... marauderAnger

simple ravine
#

@broken cloud wait wat, so they changed it for you eh?

broken cloud
#

No, it looks like veiled mods are not guaranteed to remain consistent (seems to pick something random between Prefix01 and Prefix05)

simple ravine
#

But why would it change while being stationary in your stash though

broken cloud
#

Yes, why???????? marauderAngermarauderAngermarauderAnger

simple ravine
#

So, the question is if this is exploitable in the sense that one could gather what hides behind those Prefix01-05

#

And if it's worth putting any energy into

worthy cape
#

I thought it was just decorational with the different squigglies?

simple ravine
#

ยฏ_(ใƒ„)_/ยฏ

broken cloud
#

Yup, makes no difference to the end user... but isn't it more work randomizing the prefix every time I request my stash data, instead of just generating it along with the other item stats? I wonder how it's implemented

#

Or could this actually be something exploitable witchHeist

civic crane
#

idk what the intention of this randomization because you can search by veiled prefixes and suffixes of all syndicate members on trade site

simple ravine
#

Well it's a bit like shroedinger's cat

#

if you don't access it through the API, will it change by itself?

#

if you open your stash tab in game, will it change? will you know?

#

๐Ÿ˜„

broken cloud
#

Hmm, the veiled squigglies change at random both on the website and in-game (you can get a new one by switching areas)... seems to be purely cosmetic

#

What a tremendous pain for my stash tab monitoring though einharNoBestiary

worthy cape
#

When the league was new, I believe it was said that the different videos were decorative.

finite cypress
#

Is there a good source for all affix mods in the game? One that can be readily used within a program.

simple ravine
#

google RePoE

#

I think it should have what you need in there

#

what should be known though is that what people call mods, are normally stats

#

and mods have 1 or more stats together with level and ilvl constraints

#

or is level constraints on the stat? cant remember right now

finite cypress
#

the middle column from that is what i'm looking for

#

just so that when i grab my stash i can line up something like
+1 to maximum number of Raised Zombies
to

to maximum number of Zombies

simple ravine
#

Right, it's weaved together by 3 sources of information

#

StatDescriptions, and then Mods.dat and Stats.dat

finite cypress
#

is that all taken from the ggpk file?

simple ravine
#

yeah, StatDescriptions is a text file which is parsed using a few different rules

#

and the dat files are binary and parsed using a different method

worthy cape
#

A baked source like RePoE is so much easier.

simple ravine
#

for sure is

finite cypress
#

i'll look into that some more. Just needed something simple to parse the explicit/implicit/crafted mods

#

didn't want to do it by hand

simple ravine
#

if you want to get going quickly, grab the pre-cooked stuff and you'll be hitting the ground running, rather than diving into alive in wonderland with all the parsing

#

yeah, it's in JSON format, so should be easy

finite cypress
#

i really wish GGG just did something like "name":"value"

simple ravine
#

if you check the data folder, there's a bunch of stuff

finite cypress
#

yeah, i'm looking at it now

#

looks like they keep it up to date

simple ravine
#

actually I don't see the mod translations anywhere

#

only mods.json which would need some stat translations

finite cypress
#

I'm trying to find something like "maximum_number_of_skeletons"

simple ravine
#

ahh, stat_translations.json

#

in data folder

#

and stats.json

finite cypress
#

looks like multiple entries for a "mod", they used in different cases?

simple ravine
#

and mods.json lol

#

likely yeah

#

one sec, it's been a year or two since i looked at this

#

so it depends what you want to do, really

#

the thing you mention is a stat, which is included in a mod

finite cypress
#

trying to do something similar to Looty

simple ravine
#

sorry, don't know what Looty is

finite cypress
#

grab all my stash, sort items by "max life" etc

simple ravine
#

ah

finite cypress
#

browser plugin, nicely done

simple ravine
#

ok so.. first off the lines you see in the item jsons you're grabbing from your stash endpoints

#

are not mods, those are actually stat lines

#

so that's worth mentioning firstly

#

most mods have 1 stat

#

but as you're likely aware, there are some mods that players call "hybrid mods" or similarly

finite cypress
#

"explicitMods": [
"+14 to Armour",
"+99 to maximum Life",
"Regenerate 27.8 Life per second",
"+43% to Fire Resistance",
"+43% to Cold Resistance"
],

simple ravine
#

thsoe are mods with 2+ stat lines

finite cypress
#

yeah, i'm just starting out simple

#

want to parse out that

simple ravine
#

so if you don't need to understand exactly which mod or tier this is, your life becomes easier

#

because then you can focus on the stats alone

finite cypress
#

right, i just want the value and the type

simple ravine
#

well, you could do some crude parsing yourself, without involving all of this stuff too

finite cypress
#

that's what i want to avoid

#

i just found some python lib that does a fuzzy compare

simple ravine
#
  {
    "English": [
      {
        "condition": [
          {}
        ],
        "format": [
          "+#"
        ],
        "index_handlers": [
          []
        ],
        "string": "{0} to maximum number of Skeletons"
      }
    ],
    "ids": [
      "base_number_of_skeletons_allowed"
    ]
  }
#

this is from stat_translations.json

finite cypress
#

so it can match up
+1 to maximum number of Raised Zombies ('# to maximum number of Zombies', 95)

#

right, so if i grab a list of those strings, i can compare my item

simple ravine
#

the ids point to stats.json

#

yeah, what you can do is make some funky regex generator and go nuts ๐Ÿ™‚

finite cypress
#

oh no, no regex for me :p

simple ravine
#

well, whatever you use, I think that's your entry point to diving into things

finite cypress
#

this looks to find matches well, then it's just a matter of getting the difference for the value

simple ravine
#

so, to sum up:

What you see in the items are "translated stats", hence the stat_translations.json which will give you the format and the internal stat used.

civic crane
#

never do any kind of fuzzy search with poe translations)

simple ravine
#

stats are grouped into mods, and then mod groups, to become a little extra curricular

#

an item can only have one mod rolled from each mod group

finite cypress
#

this is ofcourse all documented on the GGG Api page, right ๐Ÿ˜‰

simple ravine
#

hence why you sometimes can see an item with a lot of Item Rarity consuming both a prefix and a suffix, as (form my knowledge) is the only mod that both have a prefix and a stuffix mod group

finite cypress
#

@civic crane no? even for the simple strings?

simple ravine
#

I think biting the bullet with some regex is the better option

woeful sphinx
#

what you can do for matching is just replacing numbers and format tags in both strings

#

that'll be pretty simple regex

finite cypress
#

well, it's just a "fun" side project, so anything that becomes too tedious will likely fail for me

simple ravine
#

well, now you know

#

let us know how it goes

woeful sphinx
#

so {0} to maximum number of Skeletons and +1 to maximum number of Skeletons both become # to maximum number of Skeletons

finite cypress
#

@woeful sphinx yeah, once I have the 2 strings that's likely the next step. Just finding the right target

#

@simple ravine thank you for the help, much appreciated! I'll have to come here instead of reddit. ๐Ÿ™‚

simple ravine
#

yeah, most hang out here

#

better for discussions to chat ๐Ÿ™‚

simple ravine
#

wonder if these description files are hand woven

obtuse citrus
#

given the typos I've seen I think so

#

messed up my parser a few times

dull laurel
#

haha spaces vs tabs ๐Ÿ˜„

worthy cape
#

Thanks for reminding me of the horrors that are .ao files

dull laurel
#

what does 1|# and #|-1 mean? the end is obvious, negate the value, because the verb indicates the minus already

civic crane
#

min max condiction to select correct translation string for stat value

worthy cape
#

So you can have different translations for weird languages that have different plurals and whatnot like russian?

#

one two many etc.

#

Also conveniently disappears the string when zero, neat.

civic crane
#

unfortunately for some reason they just copy English strings and only translate those. so it's not a full localization with plural forms)

dull laurel
#

ah, so 1 <= x <= # and # <= x <= -1, and # being MIN_INT and MAX_INT respectively

simple ravine
#

yes however, there is now sometimes exclamationmarks in there

#

rasmus told me about it the other day forgot to ask if he figured out what it was all about tho

#
private static readonly Parser<string> Range =
    from range in Parse.Chars("-0123456789#|! ").AtLeastOnce().Text().Token()
    select range.Trim();
civic crane
simple ravine
#

haha ye

#

some of the handwoven bs

#

this is code from 2-3 years ago, so might not be needed anymore, or even more stuff might be needed

#

but I also have this in the master branch still

#

trying to figure out how I should do with the new branch, where I am kind of cleaning and refactoring things

civic crane
simple ravine
#

oof

#

in the master branch, I had this thought of having PoeSharp.Files as more of the lower-level functionality, and PoeSharp.Metadata being the higher level functionality

#

perhaps that wasn't such a bad idea

#

opinions welcome

worthy cape
#

I've got a separation in poe::format::* and higher level functionality built on each file format, including GGPK, index and bundle.

worthy cape
#

The future is now \o/

#

Hopefully this is actual support and not weasel-words around language vs. library like they had with C99 and C11.

frank kayak
#

i expect something worse than GNUisms

worthy cape
#

Knew it, no VLAs ever, no threads/atomics yet.

#

Everything optional is not there ๐Ÿ˜„

simple ravine
#

Yeah, GGPK is just an implementation of IDirectory pretty much

#

where I have DiskDirectory as well, so you can choose where you want to grab your stuff from.

#

But I think I want to make Bundle things transparent to both of those implementation, at least as an option.

#

For generalists, I dont think there's any interest in messing around with Bundle stuff specifically. It's just another container inside another container to get to where they really wanna go

worthy cape
#

I have it as building blocks for the VFS.

simple ravine
#

But from the API surface you will see the bundles, or?

#

If you'd open a GGPK file

worthy cape
#

Plan is to tell it to open a directory or ggpk file, auto-detect if it's a standalone installation (old/new), steam installation (old/new) or an exploded directory tree, and produce IDirectory and IFile from both bundle and disk.

#

The low-level format::ggpk would get you the raw tree with the bundles or whatever is inside the pack file, which the VFS would build on.

#

Just not sure what kind of API to offer that makes sense with how current-era bundles represent directories and files.

simple ravine
#

Right, you're in a little different position, as you want to also keep track of the old stuff, I guess

worthy cape
#

Yeah, I definitely want to support old-style installations and loose GGPK files.

#

As well as my deduplicated sqlite3-based storage.

simple ravine
#

Ambitious hehe

worthy cape
#

My codebase has one comment:

/*
 * There are several types of installations and data sources we might want to consider:
 *  - a legacy standalone installation with a v2 GGPK file that contain just loose files;
 *  - a legacy Steam installation that contains a v2 GGPK file that contain just loose files;
 *  - a legacy "outlined" GGPK index with payloads deduplicated in a separate sqlite3 database;
 *  - a standalone installation with a v3 GGPK file that contain loose files and bundles;
 *  - a Steam installation with loose files and bundles;
 *  - an exploded directory tree, typically sourced from other tools or development.
 */
simple ravine
#

inb4 PoE 2 has even more shenanigans

#

I'm gonna lose my shit if that's the case

#

I have a feeling dats etc will be reworked

worthy cape
#

Sadly time to think is rare these days, have barely written anything since launch.

simple ravine
#

I didn't fancy the league that much, so I've been doing 50/50

#

but not very intense to be honest

worthy cape
#

New work project is at a breakneck pace with weekly status meetings where I'm expected to have somehow made progress since the last week.

simple ravine
#

oof

worthy cape
#

@civic crane APT is very confused now, seems to think that exa are 1c each, people say that there's quite the poisoning of exa for chaos listings on trade.

wind garden
#

yaaa something is very broken

worthy cape
#

Ugh, poe.ninja thinks it's 1:1 too.

grave wren
#

everything is fine

#

just sell me your ex for 1c

wind garden
#

we all knew the market woudl crash someday....

grave wren
#

market seems slow either way

simple ravine
#

oh snap

#

i think rasmus is away and wont be back at his computer for a few days

wind garden
#

I don't think poe.ninja is the issue

frank drift
#

people are memeing the trade site

frank kayak
#

i guess i can buy 1ex now...

frank drift
#

368ex : 1c etc

wind garden
#

I think something is actually broken on GGG's end

#

trade site isn't even loading searches now

simple ravine
#

how about river prices

wind garden
#

same

simple ravine
#

elaborate plot?

wind garden
#

or possibly more of an economic bubble

civic crane
#

dead game ๐Ÿ™ƒ

wind garden
#

people see others listing chaos for ridiculous rates, so others do it too

simple ravine
#

seems fine in HC

wind garden
#

currency prices are all kinds of weird this league

#

regals going for like 16:1 chaos?

#

never seen them that low

simple ravine
#

i remember when they were 1:2c

grave wren
#

heist shits out low currency

#

besides alts

simple ravine
#

time to buy some exalts

#

guild mates say a group is trying to manipulate

#

so i guess bots

grave wren
#

just got my cat

#

\o/

#

wouldnt surprise me if its 30c to an ex soonish

simple ravine
#

i have seen a ton of bots this league

#

surprised they didnt drive the price up as per usual

grave wren
#

same but i guess its way less than before

simple ravine
civic crane
#

I think your algo has deviation limit unlike poeninja

simple ravine
#

poeninja also has some for this

#

apparently some russian streamer

worthy cape
#

Patch countdown 30min, nothing new for us I guess.

simple ravine
#

no more playtime for me tonight

#

probably for the best. this archmage build is so janky

minor charm
#

Somewhat PoE related question since the app will monitor client.txt. If I released an open source desktop app that communicated with a remote server. How would I authenticate that the desktop client app has no modifications from the open source release? I want to have the ability to check that the clients sending events to the server have not been fiddled with

civic crane
#

sign exe. You just cannot?

minor charm
#

It seems to sign an exe I would need a cert from a Certificate Authority no ?

#

ah it's called code signing. thanks for tip off

civic crane
#

I'm not sure if it's gonna help now

minor charm
#

all good. I know what i wanted to do but I didn't know what it is called.

#

I am gonna have a readup on code signing

civic crane
#

I mean you have to use some information from this cert in request body when contacting to your server. and make sure that I cannot fake it. for example I can sniff network traffic, then recompile program with hardcoded "this special info taken from cert", and your server will think request legitimate. can even not bother with recompiling and fire requests from curl

minor charm
#

I see. That will be a problem for sure

simple ravine
#

so after last night's debacle, we can determine that the economic nature of PoE is not entirely resilient eh

grave wren
#

What do you mean? I'd not expect the price drop to be due to the troll pricing

simple ravine
#

From 60 to 40 after a ruckus

violet path
#

the new patch enabled a previously non-functioning mod that duplicates currency chests

simple ravine
#

yeah, that's probably also part of it

#

on another note, the wiki page on frameTypes, is it up-to-date or do we have new ones?

#

current list there is frameType 0-9, where 9 is relic

#

@minor charm Any communications with your API should be treated as untrusted. You cannot verify that the thing at the other end is legitimate whatsoever.

#

Not even hardware fobs and other mechanisms would help here. All you can do is authenticate the user and authorize the use of the communication.

frank drift
#

40 was predicted even before yesterday happened

#

maybe the trolling had an effect but there was already a large panic in progress from grimro's video, reddit, etc

simple ravine
#

yeah, grimro the authority of poe, lol

frank drift
#

?

#

he's very influential of late

simple ravine
#

i just remembered the way he started out, and yeah... no comment

grave wren
#

Dunno was 52c for a bit then dived again after the trinket fix

#

Sounds like his prediction was correct then

worthy cape
#

@minor charm regardless of open source-ness you cannot trust the client at all. Itโ€™s the oldest problem in the book, if itโ€™s running outside of your full control it can be meddled with. You can make it harder to mess with in certain aspects by various mitigations like using encrypted communication, obfuscated program and code, relying on more trusted parts of the OS but itโ€™s an endless arms race that youโ€™re on the losing side of.

#

Many devs got a fun awakening when porting console games to PC and where their previous trust in the client platform comes back to bite them as itโ€™s way easier to cheat on desktop than consoles.

worthy cape
#

I like Novynnโ€™s fix for custom-note listings on the official trade site, I hadnโ€™t thought of that kind of approach. Guess thatโ€™s why they pay him the big web bucks. ๐Ÿ™‚

broken cloud
#

Ohhhhh so that's what that was for! Nice

worthy cape
minor charm
#

@worthy cape @simple ravine understood. That's a bummer ๐Ÿ˜ฆ

#

Thanks

#

So there would be no reasonable way to trigger events from client.txt and have trust that those events are legitimate from server side ๐Ÿ˜ฆ

worthy cape
#

Correct, you have to trust the user.

#

You can have integrity checks to prevent corruption and accidental malfunction, but against an adversary you're hosed.

minor charm
#

rough

worthy cape
#

I've got some tools that I'd rather not have users manipulate, but have settled for shipping binaries and hope that people behave.

#

(helped by that they don't do anything I have to trust in turn)

minor charm
#

I considered that but I don't think many people would like to install something that is closed source and is tantamount to spyware

worthy cape
#

The prospective subset of users I had didn't seem to care much, but that requires previously established trust.

violet path
#

don't have to share if you don't want but jw what tool/use case you were planning @minor charm

minor charm
#

Thats interesting. Building trust is a bit hard

#

Just an timer/event app that triggers when character speech lines get entered into client.txt e.g kill kitava a5 and so on

#

Since as far as I know it's the only way to get events that aren't against ToS

worthy cape
#

Racing-type stuff, eh?

minor charm
#

yea

violet path
#

yeah i wish /whois bots were given a green light but i guess chat commands are technically serverside so non-tos

#

doesn't have to be character text tho, client logs when ppl enter a new zone

worthy cape
#

That's tricky, generic users that have a vested interest in being sneaky.

violet path
#

not as exact for a5 kitava

#

gl with it tho hope it gets off the ground

frank kayak
#

showing a popup info on /whois should be ok i think

minor charm
#

Thanks. I've got a few other ideas but they all require established trust

worthy cape
#

Befriend all racers and OCR the friend list on a horde of client machines ๐Ÿ˜„

finite cypress
#

does anyone know if this page is kept up to date?
https://pathofexile.gamepedia.com/Public_stash_tab_API
I don't see the category field in the data i'm getting

Path of Exile Wiki

Public stash tab API is a basic JSON interface to obtain information relevant for general trade using Premium Stash Tabs for PC clients.
Basically the interface serves global update information (considerable as an update-"stream") on any public stash tabs recognized by the gam...

broken cloud
#

Only works for data gotten from public-stash-tabs endpoint

#

If you are using get-stash-items or similar, no category for you

finite cypress
#

why no love private stashes

worthy cape
#

@finite cypress For the stash tab river, you need to consult both that page and every league update in the API forum which details the changes each league introduces.

finite cypress
#

yeah, I forget about those forum threads

#

I'm not very experienced with webdev, is there a way to query a site for its API? I thought there was something, if implmented, that a response could tell you the avilable endpoints. Probably not the resulting json format

worthy cape
#

Nah, extremely rare if it exists.

#

Used to be a bit of a thing back in the SOAP days with machine-readable schemas you could generate bindings from.

finite cypress
#

that might be where I saw it

grave wren
#

I mean rest should do that with hateoas but who implements stuff like that

finite cypress
#

I'd just like to know an item is a flask without having to parse the typeLine and hope they all have the word 'flask' in it

simple ravine
#

OpenAPI / Swagger is the equivalent of SOAP/WCF but better

#
  • gRPC for internal things
worthy cape
#

SOAP was nice with envelops and a bit of introspection so you could route a bit.

simple ravine
#

well, better might be weird... there are some nice things with wcf, like bidirectional binary stuff etc

worthy cape
#

(or so I vaguely remember from a 2006 era SOA course)

simple ravine
#

problem is that SOAP/WCF was abused the shit out of

#

people over-complicated architectures to the point where a hello world application was 20,000 lines of code lol

#

not going back to that

#

from someone who have seen it come and go heh

grave wren
#

Just a bit of generation later and tadah

#

Infinite code

#

I like graphql

finite cypress
#

Have any of you played Destiny 2? There was a 3rd party app that let you see and manipulate the ingame inventory. Really something POE could use. I don't know how they were allowed to interact with server data though, seemed dangerous

worthy cape
#

The armory? Same kind of sign-on and to be honest, phones are more trustworthy than PCs.

finite cypress
worthy cape
#

I think the question about a companion app has come up in the past, I think there was a sentiment that there shouldn't be additional requirements on playing the game competently.

#

Destiny's was a bit weird as it allowed online swapping of item sets, something that the client IIRC couldn't do.

finite cypress
#

....additional additional

#

yeah, you had to use that app to stay sane

simple ravine
#

GraphQL for me is like OData - it is tightly coupled to data, and absolutely has a use-case, but what I have seen is that people broadly want to use it all over

frank kayak
#

i only have to switch tabs to reload it

simple ravine
#

additionally, GraphQL seems cool and all, but it kind of feels like one of those things where hipster-kids got high and thought "what if we did skydiving while making pizza"

grave wren
#

No clue how to respond to that tbh

frank kayak
#

wouldnt it be making pizza while skydiving? and thanks fro making me imagine it

grave wren
#

But yeah it's nicer odata imo and pretty useful if you use it with custom db views

frank kayak
simple ravine
#

It's just that it feels like something that is developed by API consumers, because they got tired of REST, which I can understand, especially if consuming tedious ones

frank kayak
#

tired of REST?

#

must be a reaaally bad one

grave wren
#

i never had a decent restful api so far at work

#

it's all various degrees of wtf is this

simple ravine
#

the problem I have is you're giving the API consumer access to an unseemingly unbound amount of IO and CPU

#

at least there are some consequences

#

cool, and dangerous

frank kayak
#

even the worst ones ive worked with (badly documented, or outdated doc, weird encoding, data behind 5 calls) were workable with

grave wren
#

ever worked with one that said x but never did what you wanted and displayed yet another state in their awful aspx site?

frank kayak
#

next time i have to design a REST API Ill use a router framework for it though - prob chi

grave wren
#

had an endpoint to attach rules to a thing

#

the endpoint returned a set via rest

#

but it was a list in the backend

frank kayak
#

aspx... already sounds awful

grave wren
#

so you had tons of dupes

#

sometimes it appended shit you didnt even send

#

all in all a wonderful experience

simple ravine
#

hehe, oh the state in webforms ร  la 2005

#

good ol days

grave wren
#

had to ensure 3x that its not us fucking up

#

that day was godawful

simple ravine
#

my problem with REST, especially REST purists is that CQRS pattern don't always play nice with it

grave wren
#

in what way

simple ravine
#

Faust, were you the one who worked with SAP stuff?

grave wren
#

"worked"

#

we have one sap frontend using odata

simple ravine
#

works*

grave wren
#

which is godawful

#

thankfully i have a trainee now who seems to like it

#

so i delegate all tasks in that godforsaken technology

simple ravine
#

well, SAP think they invented REST, and everything SAP touches turns to shit

#

so hehe

grave wren
#

its not rest

#

they even have their own name

#

it's lovely

simple ravine
#

uhu

frank kayak
#

i think im glad that i didnt have any contact with it yet

grave wren
#

in theory the framework would be nice

simple ravine
#

try to avoid it like the plague

grave wren
#

if only it didnt suck if you dont pay

#

the argument "but the sap standard says it has to look like this"

#

solves so many customer requests

#

it's hilarious

frank kayak
#

would it help if you throw more money at it?

grave wren
#

likely

simple ravine
#

SAP is like Oracle. More money, more shiny shit that reeks after you open it up

grave wren
#

you get a web ide thats not ass then instead of half assed plugins

#

it was sold to me as quickly solve customer backoffice queries

#

turns out it's not really doing that

frank kayak
#

hate oracle mostly for stopping opensolaris...

simple ravine
#

It's like giving a handyman some very expensive duct tape and hammer, saying go fix this bathroom leak

grave wren
#

that'd be the guys you hire to "enhance" the base system

#

and then you pay double the price of normal programmers

simple ravine
#

it's like the goddamn lowcode/nocode hype

#

some real programmers will have to go fix all that mess up one day

#

if I had enough money, I'd be starting to short SAP now

mortal bone
#

We tried a low-code solution at work, and it was complete ass...now it is in production

grave wren
#

my ex project lead has a new project without any seniors

#

reason: the technology is new for everyone either way and it's low code

simple ravine
#

heheh

grave wren
#

cos it's mostly static content in headless CMS

simple ravine
#

it was complete ass... not is' in production

#

love that

grave wren
#

should i ever get assigned to that project i'll hand my keys in :>

#

tbh as read only i really dont mind odata/graphql, i'd still do all my writes with custom rest methods

mortal bone
#

I find it funny that the low-code solution they went with required more developers than it would have taken to just call a few apis

simple ravine
#

I still want to see GraphQL in production with actual usecase, with more than hello-world numbers of entities

#

and some real load

mortal bone
#

graphql is cool

simple ravine
#

then i want to talk to the SRE people on how they feel it's working out

mortal bone
#

Doesn't netflix use GraphQL?

grave wren
#

rosetta stone uses it

simple ravine
#

yeah, scroll up, i already ranted a bunch ๐Ÿ˜„

grave wren
#

or rather they made the switch recently

simple ravine
#

externally facing or internal only?

grave wren
#

externally

#

integrated it

#

spoiler they rolled it out while it wasnt ready

#

0 fucks given

simple ravine
#

pops some popcorn

mortal bone
#

that is great haha

#

"ship it"

grave wren
#

so now i have generated client code and custom rest calls

#

calling the nonfinished graphql part

#

11/10

worthy cape
#

@simple ravine Do you have any idea what clownware the Swedish medical services company that screwed up alarms recently are running?

steep iron
#

is there a site/app that I can easily see/export the passive nodes and their IDs or map over the passive tree UI?
or does any1 has an export of that handy?

grave wren
#

but a bit more glued shit wont hurt this bad boy

#

slaps monolith

simple ravine
#

@worthy cape let me guess, SAP

worthy cape
#

Kind of impressed that they manage to break safety alarms for the elderly twice in a year.

grave wren
#

the tree they give out has exactly that info @steep iron

worthy cape
#

"oh, grandma has fallen and can't get up? probably gets delivered eventually, maybe"

grave wren
mortal bone
worthy cape
#

Oh shoot, topical discussion. Everyone hide!

simple ravine
#

zao, what was the clownware?

worthy cape
#

I don't know, it was a genuine question.

simple ravine
#

ooh

worthy cape
#

They tried shipping this spring and screwed up so hard they had to back it out. This fall they screwed up in production again.

grave wren
#

sounds like sap

#

not biased, i swear

simple ravine
#

Oh damn, someone actually died because of it

#

that's heartbreaking ๐Ÿ˜ฆ

worthy cape
#

Yeah... it's not exactly good.

#

Might've died anyway still, but it's not a good look.

steep iron
#

yeah im looking at the json from ggg, but was wondering if there's a better format of that like in a table or UI, notables i can search pretty easily, but for the smaller attribute nodes, its kinda hard to figure out which specific ID it is (haven't look much into the coordinates), so was wondering if there's something like the passive tree UI but with the node ID shown

worthy cape
#

Maybe you can hack PoB to show you the info on hover?

simple ravine
#

Some company called Tunstall

steep iron
#

if im actually good with codes, maybe lol

grave wren
#

could make an issue on pob github, maybe it's already in the dev version

steep iron
#

might try looking into that later, thanks anyway

grave wren
#

didnt look too much into the gui stuff there

sleek nacelle
steep iron
#

awesome!!

#

how to set it to dev mode? =x

sleek nacelle
#

you can enable dev mode by editing ProgramData/Path of Building/launch.lua and changing self.devMode = false to true. it's the first thing in the list there

golden bane
#

Or if you clone the repo and start PoB from there

sleek nacelle
#

that too ^

#

setting it to dev mode does also stop you from getting updates the normal way, you'd have to disable dev mode to update if you change your main install

golden bane
#

Also newer installations are not in Program Data anymore

sleek nacelle
#

oh then I have no idea where the new version might be lol

golden bane
#

They're in %APPDATA% now

steep iron
#

nice, thanks for the info!

golden bane
#

Also you could download the portable zip and delete/rename installed.cfg to get into dev mode

lethal nimbus
#

@polar island is there some docs on a possible api u might have so i dont have to scrape stuff, trying to build a fancy tool that dosnt use/rely the official website

#

thats sorta helpful ty good sir

#

is there a live search limit implemented by any chance?

#

might hinder my plans a bit templarSad

violet path
#

@lethal nimbus how gritty are your searches going to be? poe.ninja has a decent chunk, and poe.watch is getting a lot of new cool stuff by the day

#

depending on what you need, river is probably going to be the best and only bet

lethal nimbus
#

just wanna price some stuff without hassle and possibly some weird searches based on pob weightings for some specific builds

#

its kind of a optimize-my-build.exe ๐Ÿ˜„

violet path
#

that makes it sound like scraping would be ok then?

lethal nimbus
#

ye it aint a big deal, just asking if there was an api would make my life easier

violet path
#

i don't know too much about it but it sounds like it'd have to be super complicated, databasing every item and price and somehow filtering out bad prices etc. for it to be that detailed. i'd just scrape if the use case is going to be that narrow, don't think you need to river

lethal nimbus
#

ye def wanna avoid ggg's river

dull laurel
#

why automate a webpage, when you can just query the server?

lethal nimbus
#

wat do u consider automation tho ๐Ÿ˜›

violet path
#

yeah don't scrape poeapp scrape official site, respect the limits, obey the law

lethal nimbus
#

wat if i dont like da police Kappa

frank kayak
#

automation on poeapp? in what way?

#

ah scraping...

#

i love scraping...

barren ingot
#

anyone familiar with any code snippets that can definitively map to the poe stash tab grid with precision? I think I'm seeing uneven cell sizes depending on abnormal window resolutions
i tried to solve this by creating an overlay library a rough alignment over the whole tab area, then pixel-by-pixel adjustments of an individual box, but aligning one box, for example at the bottom right can align the middle of the tab, but then cause other cells to be misaligned which is very odd if i'm dividing it into 12x12, 24x24 even boxes

barren ingot
#

in game frameless window overlay on top of an item

simple ravine
#

Like Mercury Trade?

barren ingot
#

mercury trade is not aligned correctly on my friend's instance

#

it's not factoring something in which causes it to lose precision over larger and larger position indices

#

for anyone who is interested in this, i found a korean-made tool called deadlytrade.
they seemed to have excellent alignment per: https://www.pathofexile.com/forum/view-thread/2785386

I'm yet to see if it works for oddball resolutions but they do seem to have some rather very specific factors baked in that are applied to the game window resolution so it looks promising.

https://github.com/DeadlyCrush/DeadlyTrade/blob/master/POExileDirection/DeadlyNotification/StashGrid.cs

this is right up your alley C# lover

#

nice quadruple nested for loop in here !

simple ravine
#

Yeah Mercury didn't work well on my 3440x1440 ultrawide

#

but tbh, not really a feature I'm missing

worthy cape
#

Small N, all is well.

simple ravine
#

small n?

#

are we talking o-notations?

worthy cape
#

In the loops, 12 x 12 x 2 x 2

simple ravine
#

perhaps unroll it then

#

fewer branch predictions the cpu will have to make, if that's your thing

barren ingot
#

lol

#

maybe if i was putting this on a 0.1w micro arduino

worthy cape
#

I wouldn't bother unless it's shown to be a bottleneck, and then the overdraw and lack of batching is probably more endemic ๐Ÿ™‚

#

Profile, ptune, profit ๐Ÿ˜›

simple ravine
#

mm, micro-ops and cache line alignments

barren ingot
#

the way they thought through how to reverse engineer this, if htey did it correctly, is interesting

#

i was just like, divide by 12 or 24, why isn't this working

worthy cape
#

If you were ambitious about misfits, you could parameter-sweep the size of the PoE window and see if you could determine what is off.

simple ravine
#

what u could do is just gather a few screenshots from people with resolutions higher than what you have

#

and then just resize it to different sizes with some program, and then try to align it

barren ingot
#

i actually originally attempted to implement this in python so i could use opencv to capture the stash area through boundary detection

worthy cape
#

@simple ravine IIRC, Mercury had the user manually align the grid.

barren ingot
#

but the ui frameworks for python suck, like gtk etc

#

qt

worthy cape
#

They also had some crawling UI issues with high-DPI, so happy I don't use it anymore.

simple ravine
#

yeah, which is really tedious process

worthy cape
#

but ui frameworks suck
Fixed it for you ^ ๐Ÿ™‚

barren ingot
#

๐Ÿ˜ฎ

simple ravine
#

especially if you're like me who sometimes only have PoE on portion of the screen, and then sometimes on the full size

barren ingot
#

i ended up creating my first electron app (ahhhh) with react so it's not bad now in terms of looks. never did any desktop programming so trying to figure out all the window options was annoying

simple ravine
#

all the ui frameworks suck right now, unfortunately

#

for being 2020

golden bane
#

Python/WinRT might become a real thing

simple ravine
#

oh rly, interesting

#

for someone who aren't much in love with python, i see this is a cool thing

#

hope it works out

barren ingot
#

i think python + opencv is really nice and easy to use, otherwise i don't really use it anymore

simple ravine
#

im gonna hope microsoft gets their shit together with MAUI

golden bane
#

I hope PySide6 turns out well. Release in November

simple ravine
#

but i dont have high hopes tbh, as it seems to be a continuation of Xamarin

worthy cape
#

Has anyone of you bit the bullet and upgraded to Python 3.9 with its new and shiny parser and broken ecosystem? ๐Ÿ™‚

golden bane
#

Yes, so far everything's working

worthy cape
#

We decided to ship the 2020b toolchain on 3.8 in EasyBuild, so much potential breakage.

golden bane
#

Stuff like PyInstaller is always lagging behind a release, but I had no problems with my personal projects and some parts of the scientific stack I use

simple ravine
#

here's a 3440x1440 screenshot in windowed mode

worthy cape
#

pybind11 underpins scipy and a lot of other fun stuff, but I don't know how hard the requirements are pinned.

simple ravine
#

regular grid

golden bane
#

I didn't test scipy

simple ravine
#

borderless

#

what I'd do then is just have different ones and batch through until u get an algorithm that works

barren ingot
#

i'm assuming that's what this deadlytrade developer did

#

looks like they found a linear coefficient to use as a scaling factor

#

i just wish they did something like, RECT getStashArea(RECT poeWindowSize) or something like that instead of this inline monstrousity

#

at least they put in somewhat useful comments ๐Ÿ™‚

simple ravine
#

but for me, the tool should be smart enough to understand where the window is and align itself

#

like, sometimes, I do this:

#

especially when flipping etc

golden bane
#

@worthy cape lots of errors when I try to install scipy

worthy cape
#

\o/

simple ravine
#

Funny how my StatDescription parser I wrote 2.5-3 years ago and havent touched today still works with just 1 single character in an expression needed as a fix

#

too bad it takes 3 seconds to parse the 18 mb file.

#

time to look at another parser combinator

haughty shoal
#

how the hell can I pass this

simple ravine
#

not sure how this is the relevant channel

worthy cape
#

Need to develop some sort of clearing tool ๐Ÿ˜„

simple ravine
#

nightowling I see, zao ๐Ÿ™‚

worthy cape
#

Yeah, this week has been lopsided.

simple ravine
#

No kids still, I presume ๐Ÿ˜„

worthy cape
#

Guess I should sleep soon, but it feels like the day has just begun.

simple ravine
#

I woke up with a cold, so I slept all day

worthy cape
#

No code progress either, ripped out my VFS and now everything is broken and I can't quite make up my mind on what kind of interface to have for it.

simple ravine
#

Just replied to a couple of time sensitive emails, and just called it a day

worthy cape
#

tripping myself up a bit in trying to merge directory traversal and listings when there's both loose files and indexed files, while still also supporting GGPKs.

simple ravine
#

I'm procrastrinating my ineviable need to integrate teh Bundle stuff with the other parts

#

so I'm rewriting the parser combinator for stat descriptions instead

#

lol

#

yeah i have a similar thing to overcome

worthy cape
#

Also complicated by that there's no one true string type for paths.

simple ravine
#

what do you mean?

worthy cape
#

Bundles are UTF-8(?) while GGPK are UTF-16 and the OS may be either byte-oriented or UTF-16LE (Windows).

#

Say that you've got vfs->lookup_file(path("Art/omg/wtf.bbq"))

simple ravine
#

Windows is UTF16-LE?

#

can we just not go back to the good old ASCII days

#

where's the delorean

worthy cape
#

You want to use the Wide family of functions on Windows to interface with the file system, as when you use narrow APIs there's paths on the filesystem that cannot be represented in paths.

simple ravine
#

C:\PROGRA~1\... etc

#

I still don't see the problem you're facing though

worthy cape
#

Say that you have a user name that's in cyrillic script and the system locale is japanese, you can't access anything in their home directory with narrow A-type APIs.

#

You pretty much have to use the wide W-type APIs on Windows if you want reliable access to the filesystem across cultures.

simple ravine
#

What language are you doing this in again? C++ or Rust?

worthy cape
#

Anyway, consider my example.

simple ravine
#

There ought to be some kind of abstraction over this, no?

worthy cape
#

What string types should a path accept as input, and what should it store internally?

#

If you store an UTF-8 string (or list of such path components), you're going to have to transcode it whenever you work with a GGPK file as they are UTF-16LE or UTF-32LE inside.

#

If you store UTF-16, you're going to have to transcode to work with bundles.

simple ravine
#

well, whatever you do, I'd just store it in one format internally, and then talk the language you need to with the infrastructure (filesystem) talks

worthy cape
#

Similarly, do you normalize case when constructing it or doing case-insensitive comparisons with pack entries?

#

GGPKs are case insensitive (or at least the hash is), as is most filesystems on Windows.

simple ravine
#

I just store them as chars or string โ•ฐ(ยฐโ–ฝยฐ)โ•ฏ

#

thankfully, I don't have to worry about the file system, as that's kind of abstracted away for me

worthy cape
#

Bundles are extra fun there, as they're simultaneously case sensitive and insensitive.

#

Directory listings have case, while file entry hashes do not.

simple ravine
#

Would be hilarious if they would store "Hello.txt" and "hello.txt" in the same folder inside of a Bundle

#

try exporting that on a windows file system

worthy cape
#

I need to sketch this out and the little time I get with my codebase means I barely get to hit Compile before something pulls at me.

simple ravine
#

TGIF tomorrow ๐Ÿ™‚

simple ravine
#

Got to love the expressiveness of this though:

static Parser<char, char> Quote = Char('"');

static Parser<char, char> RangeCharacter = 
    Token(c => "01234567890#|!-".Contains(c));

static Parser<char, string[]> Ranges =
    RangeCharacter
    .Until(Whitespace)
    .Select(c => string.Concat(c))
    .Until(Quote)
    .Select(e => e.ToArray());
grave wren
simple ravine
#

hah that looks like a fun challenge

#

not fun enough though

violet path
#

@polar island l wondering if you had any thoughts/plans on expanding the page at https://poeapp.com/#/stats? maybe like a detailed history of market levels going back further in time, different leagues etc.? pretty cool/fairly unique feature imo

simple ravine
#

Ugh, mandatory training videos

#

"Weelcome to Capgemini Group Competition Laws e-learning"

#

I have procrastinated this for 2 years

worthy cape
#

Sounds like a chill Friday.

simple ravine
#

Yeah, had a 2 hour meeting with CAST, it was pretty chill

#

Was fairly bed-bound yesterday, so procrastinating my e-mail inbox too

#

but what the heck, it's friday

civic crane
#

correction: payload_size contains file paths that are direct children of this dir, payload_recursive_size contains all child files

worthy cape
#

Didn't we document this already, heh?

#

I haven't gotten around actually verifying the nesting, I wonder if someone did.

civic crane
#

i verified it)

worthy cape
#

@civic crane Some of the directory entries are "empty" in that they don't have any base-paths. Are all those parent directories or are there such leaf nodes?

civic crane
#

yeah, I was also interested in it, gonna check this too

worthy cape
#

I've rewritten that section now.

#

Is there a root directory entry that encompasses everything or do we start with Art and Data as the largest unit?

civic crane
#

largest unit = largest payload_recursive_size = Metadata folder. So no, there is no root. Empty directory doesn't have files - basepathes will not be generated. Empty directory can be anywhere in tree, it also can be a first level dir, imagine if Art dir was without files but only with child dirs. So to get root dirs you must forlooping path_reps (still better 44k unique dirs compared to 500k files in a bundle)

worthy cape
#

Did you find any empty leaf directories?

#

I guess it doesn't matter much.

civic crane
#

leaf = (payload_size == payload_recursive_size == 8), will check this now

#

242 dirs, but we will never know names of them

worthy cape
#

Ooh, that's surprising. I wonder if we had anything like that pre-patch.

#

It's probably tractable to brute-force the hashes for curiosity's sake, I reckon, at least if the names are short.

grave wren
#

I am still missing my indoctrination thanks to Corona. Apparently this will be a thing next month confusedCat

dull laurel
#

Intoctrination?

grave wren
#

They have a workshop about the motivation behind the company. It's very weird.

dull laurel
#

Like a purpose workshop? Or strategy?

simple ravine
#

You mean indoctrination right?

grave wren
#

oh yeah, phone butchered it

simple ravine
#

omfg, TGIF

#

time to close down Slack, Outlook, Teams, Skype, etc

worthy cape
#

My Friday went into the hole of "oh heck, guess I'm learning Fortran for this".

#

I have a potential solution but it boils down to assuming memory layout and casting through a pointer to void ๐Ÿ˜„

#

I leave this problem for Monday zao, he deserves to be grumpy.

simple ravine
#

Fortran of all languages

#

I read a book by Dan Brown called 'Digital Fortress' many years ago

#

about some NSA woman, and there were some Fortran in that book

#

pretty good book, but that's all Fortran I have ever been in contact with ๐Ÿ˜„

simple ravine
#

home alone, deciding if i should play poe or write code around it

grave wren
#

Both

#

Also bake

simple ravine
#

having a cold, i just want to sit in a chair do as little as possible

frank kayak
#

19:45 finally home from work...

simple ravine
#

even ordered delivery food

#

oof, what's ur job 11011?

frank kayak
#

currently i have to finish firmware for a switch

#

....blind

#

no serial on the switch lol

#

it just hurts

simple ravine
#

ah, sys/net admin of sorts?

frank kayak
#

admin gone programmer or solo software dev dep...

#

currently not full time

#

just enough to pay my rent while studying

simple ravine
#

you freelancing?

frank kayak
#

no

simple ravine
#

ah ok

#

what are you studying?

frank kayak
#

i think its called student employee?

#

physics

#

but currently not going too well

simple ravine
#

ah, so you want to keep programming and computers as a hobby?

grave wren
#

Sounds dreadful for a student job ngl

frank kayak
#

the uni is in austria and since the start of the pandemy im back in germany

#

no i am something like an admin by profession let me check the exact translation

simple ravine
#

just curious of people who land in here, its interesting to learn who we all are a little, so pardon me and let me know if i pry too much

frank kayak
grave wren
#

He's making a list on whom to assassinate don't trust him marauderHeist

simple ravine
#

๐Ÿฅท

frank kayak
#

nice

#

how long is the list currently?

simple ravine
#

everyone who does Java and likes it.

frank kayak
#

so currently a blank paper?

simple ravine
#

see? im pretty harmless

frank kayak
#

now you 2

#

what are you?

#

bots?

simple ravine
#

programmer who ended up drawing boxes and lines and stuck in meetings

frank kayak
#

ah a sleep deprived bot forgot

#

nicely colored boxes?

#

dont say its monotone

simple ravine
#

yes, i like design too actually, so i tend to make them pretty

frank kayak
#

web design?

simple ravine
#

unlike my indian colleagues who dont even care about aspect ratios

#

graphic and web, ca dotcomboom 2000s

frank kayak
#

ok

#

you wouldnt like my ui endpoint from my project ๐Ÿ™‚

simple ravine
#

but now it's mostly distributed sytems, cloud and stuff

grave wren
#

what if your boxes contain java

#

:>

frank kayak
#

a bit ci/cd?

#

its just go pure goo

simple ravine
#

ci/cd is kinda implied but yeah

frank kayak
#

i love ci

#

when it works

simple ravine
#

im too slow to be an efficient programmer nowadays, i feel.. it's more like pondering about the meaning of it all

#

thats why you stop being a masochist and get rid of that jenkins / jira / circleci stuff

#

and just realize github actions or azure devops is better

grave wren
#

fullstack dev while doing lots of stuff trying to hieve our internal stuff onto a common ci/cd denominator

simple ravine
#

heard gitlab's pretty good too, but can't vouch

frank kayak
grave wren
#

bamboo is the worst fyi

#

but it's from atlassian so it's kind of a given

frank kayak
#

havent tried that gh actions stuff yet

#

what was that atlassian wiki?

grave wren
#

confluence

frank kayak
#

ah yeah

simple ravine
#

people can go that route if they want, i just don't find the reason to go there

frank kayak
#

tried to package some visio 2 svg tool for it - and messed with libs i shouldnt have messed with

simple ravine
#

visio is such an annoyance

#

some stencils when rendered to svg just blow up totally

frank kayak
#

@grave wren fullstack? so its web centered stuff?

grave wren
#

yeah mostly

#

dont mind non web stuff either

frank kayak
#

not a fan of that mess that is old html and js

grave wren
#

but so far its web

#

we dont do that here

simple ravine
#

jQuery all the way baby

grave wren
#

did you misspell ui5

#

:>

simple ravine
grave wren
#

funnily enough i dont think there is a stringent strat here on when to use vuejs, angular or react

#

every project "evaluates" it and picks what they like most with random point scales

frank kayak
#

@simple ravine (ui5 is from SAP)

simple ravine
#

why not just pick one, and get ninjagood at it

grave wren
#

that'd be too easy apparently

simple ravine
#

11011 yes i know

grave wren
#

you could also reuse people in different projects

#

sounds too efficient

simple ravine
#

Faust has vented his delight for the framework a few times

grave wren
#

yes but i also have a trainee i can force to do anything that needs doing in ui5

#

so i am basically winning

frank kayak
#

@simple ravine dont make me a 27 again ๐Ÿ˜ฆ - its 11211

simple ravine
#

One could argue though, with good enough developers, frameworks shouldn't matter.

grave wren
#

if the framework doesnt deliver what it promises your devs can just hack around it

simple ravine
#

ops

grave wren
#

wastes too much time imo

simple ravine
#

im curious what does 110011 signify?

frank kayak
#

51

simple ravine
#

... yes obviously. but

frank kayak
#

just an old nick

#

good luck number

simple ravine
#

ah

frank kayak
#

appears in my birth time, my initials are similar looking...

#

oops...

simple ravine
#

i must confess, the first few times I saw you around here I thought you were from asian origin, due to the nickname. As some there have a very close connection to numbers.

frank kayak
#

i prefer numbers over letters

simple ravine
#

Now, all we need is someone with 197 IQ

frank kayak
#

words are too arbitrary

#

forget the part i edited out ๐Ÿ™‚

#

getting some coffee and food

simple ravine
#

a world leader of sorts blurted out something about people not getting hacked a few days ago

#

was pretty interesting.

frank kayak
#

who?

tiny cargo
#

@frank kayak imho there is no good translation for "Fachinformatiker" without starting to explain the dual education system ๐Ÿ˜…

simple ravine
#

DJT

frank kayak
#

guess so

grave wren
#

not like it means anything later on either way

frank kayak
#

Deutscher Juristentag?

#

ah ok i get it...

#

donald duck

#

i think i havent played poe for 2 weeks now...

simple ravine
#

he was talking at a rally, and was ranting off-script/teleprompt, and it seems quite usual that he claims... interesting things then. not going to start a political discussion, but the thing he said started a little bit of an outrage in the security community to say the least

frank kayak
frank drift
#

his twitter was just hacked again too, because the password was "maga2020!"

simple ravine
#

I found the video with transcript of the rally... Quite an interesting session.

He also apparently got "hacked" again

#

However that is disputed

frank kayak
#

lucky me dont know my own passwords ๐Ÿ™‚

#

what could that maga mean?

simple ravine
#

his slogan

frank kayak
#

ah

frank drift
#

in 2016 or something a security researcher found that Trump's password was "yourefired", so he suggested Trump "change it to something like 'maga2020!'"

#

same researcher came back a few weeks ago and checked, and Trump took him literally

#

at least from what I read

simple ravine
#

Twitter themselves disputed the fact that someone got access to his account though. And in accordance to transparency rules, I think they have to acknowledge if that happened.

#

Twitter, however, denied the report. โ€œWeโ€™ve seen no evidence to corroborate this claim, including from the article published in the Netherlands today. We proactively implemented account security measures for a designated group of high-profile, election-related Twitter accounts in the United States, including federal branches of government,โ€ a Twitter spokesperson said in a statement.

frank kayak
#

cant wait for the election

#

so he didnt get the account back yet?

simple ravine
#

A little suspicious I would say that the same researcher that claimed he gained access in 2016 by guessing the password, did it again.

#

the original source https://www.vn.nl/news-trump-twitter/ has a correction at the bottom:

Correction: an earlier version of this story stated that the hackers โ€˜guessedโ€™ Trumps password. This phrasing is incorrect, and was therefore changed to โ€˜they found Trumpโ€™s password in a leaked databaseโ€™.

frank drift
#

right, password reuse

frank kayak
#

just rotate the number

worthy cape
#

100111

frank kayak
#

huh...

worthy cape
#

(you said to rotate the number ๐Ÿ˜› )

frank kayak
#

wanted to react with a rename but cant remember my pw...

#

i mean my db cant remember it

worthy cape
#

heh

frank kayak
#

not a problem as long as you can get a new one per email

#

zao did you rip your project further apart?

#

@worthy cape state of VFS?

worthy cape
#

Committed something that compiled but is incorrect, and now it's kind of more broken ๐Ÿ™‚

#

Not sure what to do to get out of this current rut, got so many things I'd rather work on.

civic crane
#

did full check, can't figure out this anomalies
Art
Art/Models/Effects/monster_effects/League_Heist/military/melee/1h_swordShield
CachedHLSLShaders

worthy cape
#

Hrm, is that from current patch or earlier version?

civic crane
#

3.12.4.2.2

latent solar
#

@velvet fog sorry for the ping, could I DM you about an important matter if possible?

frank kayak
#

@worthy cape better fix as soon as possible if it stays you wont remember what you did... at least i didnt...

worthy cape
#

Most of it is committed to a topic branch, but yeah, it's a mess.

#

Kind of wanted to get it in the repo so I could work on Linux for a while for variety.

#

I don't have any good way of transferring in-progress work between OS and local machines, sharing the same checkout over NFS/CIFS tends to lead to line ending sadness, even when you try to configure it correctly.

frank kayak
#

cifs did mess with me today again...

#

always \n only

#

if windows still wants to imitate a teletype let it do that...

worthy cape
#

I try to configure all my clients accordingly, but there's a lot of places where configs hide on Windows.

frank kayak
#

every day i dont have to touch windows is a good day

worthy cape
#

You've got WSL, Git for Windows, msys2, and in my case Fork with its own bundled Git.

frank kayak
#

nice diversity

#

like the linux desktop?

worthy cape
#

There's always something broken and annoying, and the state of modern Linux desktops is that it's pretty much impossible to investigate what goes wrong.

frank kayak
#

gnome 3 when it came out or even now

worthy cape
#

I get the wrong audio device on lock and DPI goes strange when the monitor powersaves. Impossible to find out without going into a hole for a week.

frank kayak
#

old unity wasnt that good either

#

ah pulseaudio

#

that messes up a few times during gameplay

worthy cape
#

A lot of the desktop environments have gone the cheap macOS way when it comes to DPI handling now too, it's all 1x or 2x scaling factors.

#

Adjusting text size works even worse than before.

frank kayak
#

i scaled it down to full hd ๐Ÿ˜„

#

but qt now needs an env var im too lazy to set

worthy cape
#

I run 1440p at 125% and 2160p at 150%.

#

My eyes are a bit krangled ๐Ÿ˜›

frank kayak
#

apropos krangled...

worthy cape
#

Especially when half-snapping windows to monitor sides, you kind of want some space.

frank kayak
#

the word is spreading...

#

poe is full screen always works without problems

worthy cape
#

Clicked that link and it booted me off voice <_<

frank kayak
#

only thing annyoing me is since i use lutris to start it i cant close the window with the context menu

#

?

worthy cape
#

The link took me to my list of PMs and I lost connection to my Discord voice call.

frank kayak
#

oh

simple ravine
#

what's happening boys

frank kayak
#

the word krangled is now no longer poe only

simple ravine
#

is that some kind of meme word that im too old for? ๐Ÿ˜„

frank kayak
#

dont hang those nuts on my comment...

frank kayak
#

poe reddit invented it this year

#

gn - ill annoy you tommorow again

simple ravine
#

haha

#

resonates with my feelings too

#

oh shit the unintended pun

#

oh well

winged oasis
#

Hey guys does anyone know why https://aura.poe.farm/ doesnt work anymore? I downloaded the index.html and stuff and tried to fix but yeah my knowledge is VERY limited about stuff like that... is there a working version out or a way to import aurabot data in PoB? Dont really want to create a jewel or smth all the time, that webside was soo good ๐Ÿ˜ฆ

worthy cape
#

@winged oasis If you look in the developer console of your browser, you'll find that it's not able to obtain a file from the RePoE project, which is a collection of friendly JSON data derived from the game files - in this case https://raw.githubusercontent.com/brather1ng/RePoE/master/RePoE/data/gem_tooltips.min.json

#

The author of your website needs to figure out how to live without them or derive them in some other way, or work with the RePoE person to find out if they can be reinstated. This might have been driven by the move to fmtlib for formatting.

#

(I don't have any solutions for you, just technical reasons why it's krangled ๐Ÿ˜„ )

winged oasis
#

Oh okay ^^

#

Well rip ๐Ÿ˜ฆ was always super nice to use that webside

worthy cape
#

You may want to offer feedback or encouragement there or try to hack it into working form again and make a pull request if you're handy ๐Ÿ™‚

winged oasis
#

oh shit true alt quality's need to be updated aswell hmm

#

I dont even have a Github account ๐Ÿ™‚

#

i am only smart enough for PoB

worthy cape
#

It's possible that the tool maker is working on this in silence or needs assistance to pull it off, or have outright lost interest. If you're curious I would recommend reaching out, otherwise I hope that the information above have brought you some closure at least.

winged oasis
#

yeah thanks alot โค๏ธ dont know if that side was super popular so he prolly just lost interest. I honestly thought he just had a data file he copy pasted the numbers from wiki in or smth ^^ would have been prolly easy to fix then. Oh well we will see

worthy cape
#

A bit of background info is that with the tech patch just before Heist a lot of data mining tooling broke rather hard, and it's still a bit in shambles in places.

tiny cargo
#

You can download the zip and replace the link in the file /docs/script/data.js on line 52 with the "https://raw.githubusercontent.com..." one mentioned in the issue. If you open the index.html in a browser the website should work again, but without anything new

timber path
#

Is there any way to bypass a cloudflare 403 forbidden (in c# using a WebClient) when requesting some static trade api data (such as stats, or leagues, etc...) ?
[Edit] To answer my own question: simply providing a User-Agent in the header was enough it seems...

simple ravine
#

Yeah, GGG kindly wants you to provide a reference to the tool in case there ever would be an issue

#

They had a couple of incidents where the tool was misbehaving and caused quite a ruckus

timber path
#

I understand their pov, and I agree with them. It was just unclear to me as a tool-dev that I should (since recently?) provide a user-agent

worthy cape
#

(it's touched on in the pins, the message I linked was shortly after the pinned one)

potent wadi
worthy cape
#

If you're the one that makes my Discord go bloop, please don't.

simple ravine
#

zao, for parsing the index bundle how long does it take your computer?

worthy cape
#

Don't have any figures handy, but sufficiently instant.

simple ravine
#

takes me ca 260 ms

worthy cape
#

Just parsing or also building lookups?

simple ravine
#

just parsing the outer and inner bundles

#

currently just throwing the values away after reading into structs

#

im a masochist

worthy cape
#

Running pure breachstones for XP with Brittleknee's community day now, might toy around later.

simple ravine
#

Enjoy ๐Ÿ™‚

#

I haven't watched any streams since Lifting stopped streaming. I used to moderate his and aaske's streams. They used to host brittleknee as well.

#

Just tuned brittleknee in, wow she grew her viewerbase a lot. Nice to see

worthy cape
#

On warm files, printing all the file names from the directory tree takes 1.96s on this janky old Xeon.

simple ravine
#

Ok, once you feel like it later, let's see how long it takes without printing?

#

Don't wanna ruin your funsies

#

Need to get to grocery store and grab some supplied anyways

worthy cape
#

0.85s, including filling the dicts.

simple ravine
#

ok

#

clock speed?

worthy cape
#

model name : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz

simple ravine
#

ok

worthy cape
#

Without populating dictionaries and lists of names, 0.157s

simple ravine
#

damn that's quick

#

Do you have the code somewhere for that?

worthy cape
#

(scientifically determined by commenting out anything that dealt with dicts in the loader)

#

This is all with zao/ooz, exiting after the index is loaded.

#

My actual codebase is all very broken ๐Ÿ™‚

simple ravine
#

I broke everything now too

civic crane
#

refactored my index bundle reader. no longer storing 500k strings in memory ๐Ÿ˜… GC finally happy and let me scroll table with higher fps