#tooldev-general
1 messages ยท Page 120 of 1
both are ItemClass idx 38
oh then that has changed it used to be different classes too
either way it was done when they added fragment tab
ModDomain is different. Flag0 is False on the one that is not referencing a FragmentBaseItemTypesKey
ok
isn't how that worked is whenever a new one dropped or was put into the fragment tab, it changed types?
yea
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
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
another Dark+ user I see
oh interesting it seems like the same colour set as I use in VSCode ๐
yeah, very similar indeed
definitely nicer than whatever I have set as default in VS 2019
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
none that I've found
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
it's possibly the one thing I actually enjoyed about JetBrain's IDEs
PhpStorm etc?
yeah
Do you opt to use VS Code over PhpStorm nowadays though?
or just use VS Code for other things?
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
And the obvious follow-up question would be the reason why
it's fast
Oh, so PhpStorm is noticeably slower, to the point where the pros are outweighed by the slowness?
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
nice indeed
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
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
I still use Visual Studio for actual C++ compiling or C# since VSCode just isn't good enough in those areas
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 ๐
haha yeah python is good in VSCode
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
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.
why rough?
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.
ah, yes
I know nada about say PoE but Iโd guess they might be on C++14, maybe 17 at best.
would it be a mess to "upgrade" to latest?
What do you do when the fixed toolchain for console X doesnโt have it implemented?
I mean, for an example, with C# 7 code-base, you could upgrade it to C# 9 with zero implications
Changes have risks in possibly altered behavior.
Isn't C++ just compiled into native code anyways?
I know of studios that commit whole compilers to version control up front in a project and never update.
we're using C++17 atm
Woo!
most likely console requirements will hold us back if anything
Would upgrading to C++20 mean leaving behind some 'targets'?
I thought that the compiling would take care of all those shenanigans
Vendors may be more flexible these days when compilers are more stock, it used to be baaaad.
i.e. C++ compiling into machine code?
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.
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.
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
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?
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
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.
yeah, that's a pain in most ecosystems I presume
I mean it's system dev right so most apis are c anyway
Xbone went rather hard on WinRT I thought?
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'
That has its own nice portability tho ๐
I dont know much about Xbox stuff, sorry
@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.
but now thinking about it, that would probably mean huge dlls
I guess they still do the uwp for apps and low level apis for games stuff, but maybe it's all winrt now
That puts some icky constraints on what runtime support you have.
yeah, there are also some interopability between C++/WinRT and .NET
Want to allocate in one module and free in another or pass a vector or string class across the edge? Ho ho ho.
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
Time for me to actually sleep now, itโs somehow Monday already.
Microsoft UI kit #16
hehe
Idk what microsoft is up to now a days anyway they are literally all over the place
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
Gn
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
Culling all the unknown columns, shaves it down to 49ms
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?
@simple ravine and what about GrantedEffectsPerLevel ? ๐
@civic crane I pushed the code so you can try :p
@rustic ferry GemTags.dat is exists
-rw-rw-r-- 2 nobody nobody 3074 Oct 14 07:16 3.12.4.1/Data/GemTags.dat
Hmm weird, it doesn't show up for me, probably something I've done, thanks
@rustic ferry in case youโre curious, the L variation of DAT supposedly have UTF-32 text
I am looking for an alternative to qtip3. As a floating display item, I need ajax function and display html.
Tippy is better than I expected, thanks
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... 
@broken cloud wait wat, so they changed it for you eh?
No, it looks like veiled mods are not guaranteed to remain consistent (seems to pick something random between Prefix01 and Prefix05)
But why would it change while being stationary in your stash though
Yes, why???????? 


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
I thought it was just decorational with the different squigglies?
ยฏ_(ใ)_/ยฏ
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 
idk what the intention of this randomization because you can search by veiled prefixes and suffixes of all syndicate members on trade site
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?
๐
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 
When the league was new, I believe it was said that the different videos were decorative.
Is there a good source for all affix mods in the game? One that can be readily used within a program.
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
hmmm, its purple for me, i'll need to check it again. ๐ ty
https://spidermari.github.io/
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
Right, it's weaved together by 3 sources of information
StatDescriptions, and then Mods.dat and Stats.dat
is that all taken from the ggpk file?
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
A baked source like RePoE is so much easier.
for sure is
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
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
i really wish GGG just did something like "name":"value"
if you check the data folder, there's a bunch of stuff
actually I don't see the mod translations anywhere
only mods.json which would need some stat translations
I'm trying to find something like "maximum_number_of_skeletons"
looks like multiple entries for a "mod", they used in different cases?
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
trying to do something similar to Looty
sorry, don't know what Looty is
grab all my stash, sort items by "max life" etc
ah
browser plugin, nicely done
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
"explicitMods": [
"+14 to Armour",
"+99 to maximum Life",
"Regenerate 27.8 Life per second",
"+43% to Fire Resistance",
"+43% to Cold Resistance"
],
thsoe are mods with 2+ stat lines
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
right, i just want the value and the type
well, you could do some crude parsing yourself, without involving all of this stuff too
that's what i want to avoid
i just found some python lib that does a fuzzy compare
{
"English": [
{
"condition": [
{}
],
"format": [
"+#"
],
"index_handlers": [
[]
],
"string": "{0} to maximum number of Skeletons"
}
],
"ids": [
"base_number_of_skeletons_allowed"
]
}
this is from stat_translations.json
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
the ids point to stats.json
yeah, what you can do is make some funky regex generator and go nuts ๐
well, whatever you use, I think that's your entry point to diving into things
this looks to find matches well, then it's just a matter of getting the difference for the value
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.
never do any kind of fuzzy search with poe translations)
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
this is ofcourse all documented on the GGG Api page, right ๐
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
@civic crane no? even for the simple strings?
I think biting the bullet with some regex is the better option
what you can do for matching is just replacing numbers and format tags in both strings
that'll be pretty simple regex
well, it's just a "fun" side project, so anything that becomes too tedious will likely fail for me
so {0} to maximum number of Skeletons and +1 to maximum number of Skeletons both become # to maximum number of Skeletons
@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. ๐
also suggested:
https://www.pathofexile.com/api/trade/data/stats
haha spaces vs tabs ๐
Thanks for reminding me of the horrors that are .ao files
what does 1|# and #|-1 mean? the end is obvious, negate the value, because the verb indicates the minus already
min max condiction to select correct translation string for stat value
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.
unfortunately for some reason they just copy English strings and only translate those. so it's not a full localization with plural forms)
ah, so 1 <= x <= # and # <= x <= -1, and # being MIN_INT and MAX_INT respectively
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();
๐
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
10 matches, still needed
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
I've got a separation in poe::format::* and higher level functionality built on each file format, including GGPK, index and bundle.
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.
i expect something worse than GNUisms
Knew it, no VLAs ever, no threads/atomics yet.
Everything optional is not there ๐
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
I have it as building blocks for the VFS.
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.
Right, you're in a little different position, as you want to also keep track of the old stuff, I guess
Yeah, I definitely want to support old-style installations and loose GGPK files.
As well as my deduplicated sqlite3-based storage.
Ambitious hehe
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.
*/
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
Sadly time to think is rare these days, have barely written anything since launch.
I didn't fancy the league that much, so I've been doing 50/50
but not very intense to be honest
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.
oof
@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.
yaaa something is very broken
Ugh, poe.ninja thinks it's 1:1 too.
we all knew the market woudl crash someday....
market seems slow either way
people are memeing the trade site
i guess i can buy 1ex now...
368ex : 1c etc
I think something is actually broken on GGG's end
trade site isn't even loading searches now
how about river prices
elaborate plot?
or possibly more of an economic bubble
dead game ๐
people see others listing chaos for ridiculous rates, so others do it too
seems fine in HC
currency prices are all kinds of weird this league
regals going for like 16:1 chaos?
never seen them that low
i remember when they were 1:2c
time to buy some exalts
guild mates say a group is trying to manipulate
so i guess bots
i have seen a ton of bots this league
surprised they didnt drive the price up as per usual
same but i guess its way less than before
looks like prices are back
I think your algo has deviation limit unlike poeninja
Patch countdown 30min, nothing new for us I guess.
no more playtime for me tonight
probably for the best. this archmage build is so janky
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
sign exe. You just cannot?
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
I'm not sure if it's gonna help now
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
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
I see. That will be a problem for sure
so after last night's debacle, we can determine that the economic nature of PoE is not entirely resilient eh
What do you mean? I'd not expect the price drop to be due to the troll pricing
From 60 to 40 after a ruckus
the new patch enabled a previously non-functioning mod that duplicates currency chests
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.
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
yeah, grimro the authority of poe, lol
i just remembered the way he started out, and yeah... no comment
Dunno was 52c for a bit then dived again after the trinket fix
Sounds like his prediction was correct then
@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.
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. ๐
Ohhhhh so that's what that was for! Nice
@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 ๐ฆ
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.
rough
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)
I considered that but I don't think many people would like to install something that is closed source and is tantamount to spyware
The prospective subset of users I had didn't seem to care much, but that requires previously established trust.
don't have to share if you don't want but jw what tool/use case you were planning @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
Racing-type stuff, eh?
yea
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
That's tricky, generic users that have a vested interest in being sneaky.
showing a popup info on /whois should be ok i think
Thanks. I've got a few other ideas but they all require established trust
Befriend all racers and OCR the friend list on a horde of client machines ๐
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
or do I then need to read through these posts
https://www.pathofexile.com/forum/view-forum/674
Only works for data gotten from public-stash-tabs endpoint
If you are using get-stash-items or similar, no category for you
why no love private stashes
@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.
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
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.
that might be where I saw it
I mean rest should do that with hateoas but who implements stuff like that
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
OpenAPI / Swagger is the equivalent of SOAP/WCF but better
- gRPC for internal things
SOAP was nice with envelops and a bit of introspection so you could route a bit.
well, better might be weird... there are some nice things with wcf, like bidirectional binary stuff etc
(or so I vaguely remember from a 2006 era SOA course)
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
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
The armory? Same kind of sign-on and to be honest, phones are more trustworthy than PCs.
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.
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
does anyone else gets a screwed up preview pane in VSCodium after suspend?
i only have to switch tabs to reload it
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"
No clue how to respond to that tbh
wouldnt it be making pizza while skydiving? and thanks fro making me imagine it
But yeah it's nicer odata imo and pretty useful if you use it with custom db views
ok ive found eating pizza while skydiving.... https://redd.it/bpxig3
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
i never had a decent restful api so far at work
it's all various degrees of wtf is this
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
even the worst ones ive worked with (badly documented, or outdated doc, weird encoding, data behind 5 calls) were workable with
ever worked with one that said x but never did what you wanted and displayed yet another state in their awful aspx site?
next time i have to design a REST API Ill use a router framework for it though - prob chi
had an endpoint to attach rules to a thing
the endpoint returned a set via rest
but it was a list in the backend
aspx... already sounds awful
so you had tons of dupes
sometimes it appended shit you didnt even send
all in all a wonderful experience
my problem with REST, especially REST purists is that CQRS pattern don't always play nice with it
in what way
Faust, were you the one who worked with SAP stuff?
works*
which is godawful
thankfully i have a trainee now who seems to like it
so i delegate all tasks in that godforsaken technology
well, SAP think they invented REST, and everything SAP touches turns to shit
so hehe
uhu
i think im glad that i didnt have any contact with it yet
in theory the framework would be nice
try to avoid it like the plague
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
would it help if you throw more money at it?
likely
SAP is like Oracle. More money, more shiny shit that reeks after you open it up
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
hate oracle mostly for stopping opensolaris...
It's like giving a handyman some very expensive duct tape and hammer, saying go fix this bathroom leak
that'd be the guys you hire to "enhance" the base system
and then you pay double the price of normal programmers
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
We tried a low-code solution at work, and it was complete ass...now it is in production
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
heheh
cos it's mostly static content in headless CMS
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
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
I still want to see GraphQL in production with actual usecase, with more than hello-world numbers of entities
and some real load
graphql is cool
then i want to talk to the SRE people on how they feel it's working out
Doesn't netflix use GraphQL?
rosetta stone uses it
yeah, scroll up, i already ranted a bunch ๐
or rather they made the switch recently
externally facing or internal only?
externally
integrated it
spoiler they rolled it out while it wasnt ready
0 fucks given
pops some popcorn
so now i have generated client code and custom rest calls
calling the nonfinished graphql part
11/10
@simple ravine Do you have any idea what clownware the Swedish medical services company that screwed up alarms recently are running?
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?
@worthy cape let me guess, SAP
Kind of impressed that they manage to break safety alarms for the elderly twice in a year.
the tree they give out has exactly that info @steep iron
"oh, grandma has fallen and can't get up? probably gets delivered eventually, maybe"
@steep iron https://github.com/poe-tool-dev/passive-skill-tree-json ?
Oh shoot, topical discussion. Everyone hide!
zao, what was the clownware?
I don't know, it was a genuine question.
ooh
They tried shipping this spring and screwed up so hard they had to back it out. This fall they screwed up in production again.
Yeah... it's not exactly good.
Might've died anyway still, but it's not a good look.
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
Maybe you can hack PoB to show you the info on hover?
Some company called Tunstall
if im actually good with codes, maybe lol
could make an issue on pob github, maybe it's already in the dev version
might try looking into that later, thanks anyway
didnt look too much into the gui stuff there
pob will show you node IDs if you set it to dev mode and hold alt
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
Or if you clone the repo and start PoB from there
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
Also newer installations are not in Program Data anymore
oh then I have no idea where the new version might be lol
They're in %APPDATA% now
nice, thanks for the info!
Also you could download the portable zip and delete/rename installed.cfg to get into dev mode
@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 
@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
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 ๐
that makes it sound like scraping would be ok then?
ye it aint a big deal, just asking if there was an api would make my life easier
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
ye def wanna avoid ggg's river
why automate a webpage, when you can just query the server?
wat do u consider automation tho ๐
yeah don't scrape poeapp scrape official site, respect the limits, obey the law
wat if i dont like da police Kappa
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
in game frameless window overlay on top of an item
Like Mercury Trade?
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.
this is right up your alley C# lover
Path of Exile is a free online-only action RPG under development by Grinding Gear Games in New Zealand.
nice quadruple nested for loop in here !
Yeah Mercury didn't work well on my 3440x1440 ultrawide
but tbh, not really a feature I'm missing
Small N, all is well.
In the loops, 12 x 12 x 2 x 2
perhaps unroll it then
fewer branch predictions the cpu will have to make, if that's your thing
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 ๐
mm, micro-ops and cache line alignments
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
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.
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
i actually originally attempted to implement this in python so i could use opencv to capture the stash area through boundary detection
@simple ravine IIRC, Mercury had the user manually align the grid.
They also had some crawling UI issues with high-DPI, so happy I don't use it anymore.
yeah, which is really tedious process
but ui frameworks suck
Fixed it for you ^ ๐
๐ฎ
especially if you're like me who sometimes only have PoE on portion of the screen, and then sometimes on the full size
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
oh rly, interesting
for someone who aren't much in love with python, i see this is a cool thing
hope it works out
i think python + opencv is really nice and easy to use, otherwise i don't really use it anymore
im gonna hope microsoft gets their shit together with MAUI
I hope PySide6 turns out well. Release in November
but i dont have high hopes tbh, as it seems to be a continuation of Xamarin
Has anyone of you bit the bullet and upgraded to Python 3.9 with its new and shiny parser and broken ecosystem? ๐
Yes, so far everything's working
We decided to ship the 2020b toolchain on 3.8 in EasyBuild, so much potential breakage.
pybind11 of particular vintage is broken, f.ex - https://pybind11.readthedocs.io/en/latest/
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
pybind11 underpins scipy and a lot of other fun stuff, but I don't know how hard the requirements are pinned.
I didn't test scipy
borderless
what I'd do then is just have different ones and batch through until u get an algorithm that works
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 ๐
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
@worthy cape lots of errors when I try to install scipy
\o/
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
not sure how this is the relevant channel
Need to develop some sort of clearing tool ๐
nightowling I see, zao ๐
Yeah, this week has been lopsided.
No kids still, I presume ๐
Guess I should sleep soon, but it feels like the day has just begun.
I woke up with a cold, so I slept all day
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.
Just replied to a couple of time sensitive emails, and just called it a day
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.
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
Also complicated by that there's no one true string type for paths.
what do you mean?
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"))
Windows is UTF16-LE?
can we just not go back to the good old ASCII days
where's the delorean
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.
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.
What language are you doing this in again? C++ or Rust?
Anyway, consider my example.
There ought to be some kind of abstraction over this, no?
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.
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
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.
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
Bundles are extra fun there, as they're simultaneously case sensitive and insensitive.
Directory listings have case, while file entry hashes do not.
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
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.
TGIF tomorrow ๐
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());
@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
Ugh, mandatory training videos
"Weelcome to Capgemini Group Competition Laws e-learning"
I have procrastinated this for 2 years
Sounds like a chill Friday.
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
correction: payload_size contains file paths that are direct children of this dir, payload_recursive_size contains all child files
and by "dir" I mean extract dir path from basepath
Didn't we document this already, heh?
I haven't gotten around actually verifying the nesting, I wonder if someone did.
i verified it)
@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?
yeah, I was also interested in it, gonna check this too
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?
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)
leaf = (payload_size == payload_recursive_size == 8), will check this now
242 dirs, but we will never know names of them
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.
I am still missing my indoctrination thanks to Corona. Apparently this will be a thing next month 
Intoctrination?
They have a workshop about the motivation behind the company. It's very weird.
Like a purpose workshop? Or strategy?
You mean indoctrination right?
oh yeah, phone butchered it
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.
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 ๐
home alone, deciding if i should play poe or write code around it
having a cold, i just want to sit in a chair do as little as possible
19:45 finally home from work...
currently i have to finish firmware for a switch
....blind
no serial on the switch lol
it just hurts
ah, sys/net admin of sorts?
admin gone programmer or solo software dev dep...
currently not full time
just enough to pay my rent while studying
you freelancing?
no
ah, so you want to keep programming and computers as a hobby?
Sounds dreadful for a student job ngl
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
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
the translations are just so bad...
He's making a list on whom to assassinate don't trust him 
๐ฅท
everyone who does Java and likes it.
so currently a blank paper?
see? im pretty harmless
programmer who ended up drawing boxes and lines and stuck in meetings
yes, i like design too actually, so i tend to make them pretty
web design?
unlike my indian colleagues who dont even care about aspect ratios
graphic and web, ca dotcomboom 2000s
but now it's mostly distributed sytems, cloud and stuff
ci/cd is kinda implied but yeah
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
fullstack dev while doing lots of stuff trying to hieve our internal stuff onto a common ci/cd denominator
heard gitlab's pretty good too, but can't vouch
would like to convince you to give go a go https://basta.net/blog/go-der-csharp-killer/
confluence
ah yeah
people can go that route if they want, i just don't find the reason to go there
tried to package some visio 2 svg tool for it - and messed with libs i shouldnt have messed with
visio is such an annoyance
some stencils when rendered to svg just blow up totally
@grave wren fullstack? so its web centered stuff?
not a fan of that mess that is old html and js
jQuery all the way baby

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
@simple ravine (ui5 is from SAP)
why not just pick one, and get ninjagood at it
that'd be too easy apparently
11011 yes i know
Faust has vented his delight for the framework a few times
yes but i also have a trainee i can force to do anything that needs doing in ui5
so i am basically winning
@simple ravine dont make me a 27 again ๐ฆ - its 11211
One could argue though, with good enough developers, frameworks shouldn't matter.
if the framework doesnt deliver what it promises your devs can just hack around it
ops
wastes too much time imo
im curious what does 110011 signify?
51
... yes obviously. but
ah
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.
i prefer numbers over letters
Now, all we need is someone with 197 IQ
words are too arbitrary
forget the part i edited out ๐
getting some coffee and food
a world leader of sorts blurted out something about people not getting hacked a few days ago
was pretty interesting.
who?
@frank kayak imho there is no good translation for "Fachinformatiker" without starting to explain the dual education system ๐
DJT
guess so
not like it means anything later on either way
Deutscher Juristentag?
ah ok i get it...
donald duck
i think i havent played poe for 2 weeks now...
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
his twitter was just hacked again too, because the password was "maga2020!"
I found the video with transcript of the rally... Quite an interesting session.
He also apparently got "hacked" again
However that is disputed
his slogan
ah
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
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.
Twitter claims the "hack" didn't happen.
Source: https://www.theguardian.com/us-news/2020/oct/22/trump-twitter-hacked-dutch-researcher-password
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โ.
right, password reuse
just rotate the number
100111
huh...
(you said to rotate the number ๐ )
wanted to react with a rename but cant remember my pw...
i mean my db cant remember it
heh
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?
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.
did full check, can't figure out this anomalies
Art
Art/Models/Effects/monster_effects/League_Heist/military/melee/1h_swordShield
CachedHLSLShaders
Hrm, is that from current patch or earlier version?
3.12.4.2.2
@velvet fog sorry for the ping, could I DM you about an important matter if possible?
@worthy cape better fix as soon as possible if it stays you wont remember what you did... at least i didnt...
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.
cifs did mess with me today again...
always \n only
if windows still wants to imitate a teletype let it do that...
I try to configure all my clients accordingly, but there's a lot of places where configs hide on Windows.
every day i dont have to touch windows is a good day
You've got WSL, Git for Windows, msys2, and in my case Fork with its own bundled Git.
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.
gnome 3 when it came out or even now
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.
old unity wasnt that good either
ah pulseaudio
that messes up a few times during gameplay
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.
apropos krangled...
Especially when half-snapping windows to monitor sides, you kind of want some space.
Clicked that link and it booted me off voice <_<
only thing annyoing me is since i use lutris to start it i cant close the window with the context menu
?
The link took me to my list of PMs and I lost connection to my Discord voice call.
oh
what's happening boys
is that some kind of meme word that im too old for? ๐
dont hang those nuts on my comment...
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 ๐ฆ
@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
Gem tooltips were removed from RePoE around a month ago in this commit: https://github.com/brather1ng/RePoE/commit/06a8d102aee3818fc75950dfe8b9fa2e97b30159#diff-916380f3d6f6456a1a581a7844000478a30a5c7844e71127300fcbf33ec09848
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 ๐ )
There is an open issue for the aura webpage on this problem - https://github.com/shadowmoose/poe-aura-calc/issues/5
RePoE's gem data, https://raw.githubusercontent.com/brather1ng/RePoE/master/RePoE/data/gems.min.json is structured completely differently and will require quite a bit of work to update to n...
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 ๐
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
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.
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
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.
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
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...
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
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
(it's touched on in the pins, the message I linked was shortly after the pinned one)

If you're the one that makes my Discord go bloop, please don't.
zao, for parsing the index bundle how long does it take your computer?
Don't have any figures handy, but sufficiently instant.
takes me ca 260 ms
Just parsing or also building lookups?
just parsing the outer and inner bundles
currently just throwing the values away after reading into structs
im a masochist
Running pure breachstones for XP with Brittleknee's community day now, might toy around later.
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
On warm files, printing all the file names from the directory tree takes 1.96s on this janky old Xeon.
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
0.85s, including filling the dicts.
model name : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz
ok
Without populating dictionaries and lists of names, 0.157s
(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 ๐
I broke everything now too
refactored my index bundle reader. no longer storing 500k strings in memory ๐ GC finally happy and let me scroll table with higher fps
