#tooldev-general
1 messages ยท Page 55 of 1
yeah tell your random consultants and employees to go grab this arbitrary chat application, and configure it to connect to this self-hosted chat server.. yeah.. no
it's all about the network/adoption effect
I hate slack, telegram, discord, whatever. they all come and go
whatsapp viber everything sucks
what sucks is when you self-host something, and people won't use it because it serves a single purpose
and people forget about using the app
imagine if email was invented in 2017
we'd have Google email, Facebook email, Aol (the fuck is aol) email, some gaming Twitch email
oh you have Google email? sorry I have facebook email so I can't contact you
I agree it's a problem
there were some work around standarized messaging iirc
xmpp, jabbr etc
but it circles back to the 'i took a 6 week bootcamp course, now im a professional' problem
looks like someone slapped messaging on top of a blockchain?
blockchain isn't a protocol
well, you can prove me wrong by providing a useful use case for blockchain
and let's see if we can replace it with something else that's not blockchain
what if I'm freezing to death and only have a bunch of gpus to keep me alive
load up minecraft @cosmic saffron
Proof of Work is just one way of using a blockchain
yeah? what are other ones?
Proof of Stake
and that actually exists?
yes
lol, i'm glad i have notifications on for this channel
cool stuff just keeps getting posted
because so far I haven't seen anything using it
anyway, that's not a use case
I'm more interested what kinda app you'd do with a blockchain
no, but it addresses one of your dislikes about blockchain
it's just the bitcoin implementation as far as I've seen, that you're not finding useful
no, I think the whole idea is garbage
other than currency; voting, governance, contracts
Ethereum could be one implementation, there are other
maybe when we are replaced by AI that make no mistakes, contracts would be a valid use
so far, it's absolute shit show
code is contract, except that people make mistakes all the time
heh.. your ranting doesn't bear much sense without any basis
basis?
"it's a shitshow"... why?
have you not seen ethereum?
code is immutable, code is law. except when there's a bug and we roll back the chain
I have. People think they can write contracts, and introduce bugs
oh. remember that one, where $150 million just disappeared into thin air because of a bug in another contract?
the $40 million one as well
got the number wrong lol
the problem is people think they can write bug free code
and obviously they cannot
the idea of it is what I like.
so the idea of code is law is not sustainable
until we are replaced with bug less robots
but who's gonna write bug less robots
lol, what pill did u have for breakfast? give me some.
sigh.. ok
a) issue voting tokens to eligible voters.
b) these tokens can be used to cast a vote onto the blockchain
c) after voting period is over, you sum up the votes on the blockchain
sounds great, I'm sure my grandma is gonna love this
lol, nice pivot in arguments
how are you going to do privacy?
"There will be 5 computers in the world, one in each continent"
I don't want anybody to know who I voted for
You seem like a somewhat bright guy, I'm sure you can think of a way pretty easily
oh @chrome topaz , i got two feature requests. one is the ability to name live searches (while also changing the window title to the search name). the other is a more detailed desktop notification when a new live search result appears (with the name of the search if applicable)
this way, the notification won't be as ambiguous as to which search got updated.
you're also very bright, I'm sure you can think of a reason in which your solution won't work
The token issued wouldn't expose who you are publicly obviously
oh I'm sure any blockchain problem can be solved by saying what to do, not how. the token won't leak your identity. the consensus algorithm won't draw lots of power. the technology will be usable by everybody computer illiterate and so on
Let's assume a political election.
- The office that governs the voting procedure will receive your 'public key hash, i.e. wallet address in some cases'. They pair this with your IRL identifier to make sure you're not issued duplicate tokens.
- You use your voting token to cast your vote.
so the office knows who I voted for
they already do!
not in my country
that's not what I am looking to solve with the blockchain though
it's not the primary usecase, the pseudo-anonymity is a side-effect
I don't see how it's better than a paper ballot
if you could just show the title of the window in the live search desktop notification that would be fine too
it provides a way to prevent fraud in ballot offices
voting should be done on paper IMO
i won't argue paper vs digital voting procedures, that's way too off-topic
okay so back to your idea
how do you control they don't issue more tokens than they should have?
well, that's not part of the blockchain problem-solution.
so then I'm not sure what upsides your solution has
what the blockchain provides in this case is prevention of tampering with data
so far it seems to introduce a lot of technical issues for no reason
it's still possible to tamper with election results
but now you made it impossible for my grandma to understand what's going on when she votes
lol, let's leave grandma out of this
if the blockchain is publicly visible to everyone to observe, and consistency checked based on a decentralized consensus algorithm
i'm pretty sure that are a lot of countries that would benefit from this
so what problem does it solve?
the user experience for the voters can be made extremely simple, as long as one would put some effort towards that
well, i don't really like to repeat myself
me neither
it doesn't solve the problem of tampering with election results
so what's the point?
ok, why not?
well, that's not a problem introduced by the blockchain
I thought the reason for introducing blockchain was to solve problems, not add them
one of the problems was tampering with results
but apparently all problems get split into "this is not a problem introduced by the blockchain" "this is a problem that could be solved without blockchain"
then what's the point?
and i'm going to assume we have a government that isn't going to fraud it's own country, rather having outside 'agents' tampering with voting offices around the country
okay, if we trust our govt to do the right thing
and if we dont, we're fucked anyways, right?
here's my proposed solution: govt makes a website where you enter your data, you vote on that website
and they get hacked on election night
what im saying is, even that website can use the blockchain as their backing store
oh they get hacked? and I guess the mechanism distributing blockchain tokens can't get hacked?
to make sure their data is pristine
so hackers can just issue more tokens and vote with them? or steal tokens?
I'm not saying that blockchain will solve all problems that exists. I'm saying it provides a solution for some problems.
and I'm saying it solves literally none of the problems while adding them
so an immutable storage that is consensus verified with an algorithm is a bad thing.
ok
in its purset form, a blockchain is merely a distributed database
no, blockchain is a bad thing
an immutable storage that is verified can be done as a git repo where you note the latest sha hash
no offense xyz, but im starting to doubt that you've done your research on how the blockchain actually works, technically
I know how it works
okay then
there is no reason for voting to be distributed
@timid hemlock can you add a toggle so that the list of uniques is ordered by the DPS increase they give to the current skill?
like for gems
with a consensus algorithm
in my opinion there is a benefit to that
which is?
no single point of failure
you don't need blockchain for that
again, blockchain in its purest form is a decentralized database
there are obviously other solutions. yet again, it's 2017
there are lots of solutions
the solution is any database with replication
๐คฆ
what's your problem?
replication doesn't mean it's decentralized
replication comes in two forms, right...
master-slave
master-master
I still don't see any problems that your voting blockchain proposal solves
which paper ballots do not
okay, then I don't see any problems it solves vs a government voting website
again; attack vector, single point of failure
blockchain can get attacked too and attackers can issue tokens
@delicate ore That;s quite an old suggestion, but at present the DPS calculation system isn't quite fast enough to allow it easily
the "single point of failure" is going to be whatever office you have that issues these "voting tokens"
it can't issue tokens without the private key, that would be air-gapped
you can distribute/shard those private keys as well, even use hierarchical keys
@timid hemlock then how about this... ordering the Shared Items list that way.
Plausible, as long as there aren't too many
okay cool let's assume attackers can't issue tokens
what if I'm a citizen and got my private key stolen?
invalidate the token, get a new one
so the government has a mapping of my public key to my identity somewhere
also i really think you should add it for the normal list anyway for those with fast pcs @timid hemlock . if it's opt-in it won't be a problem.
on another blockchain I assume lmao
anyway I feel like this discussion isn't going anywhere so I retreat
I have a fast PC, and it is too slow
I promise to eat five proverbal hats when somebody finds a useful use for blockchain
It can still be done asynchronously, but that's a little tricky to do
Well,that is a moot promise lol. You'd just deny you find it useful
But it's fine, we don't have to agree on everything. It's more fun that way anyways
I'll eat one proverbal hat when I see a working proof-of-stake system or similar with low power consumption
Ethereum is moving to proof of stake.
EOS will be proof of stake.
DASH is proof of stake.
we'll talk when they move then
@timid hemlock can you add a field in Calcs > General for Enemy Life so that we can get calcs for corpse explosions and stuff?
That's already there
wha? where?
oh, what about for Gratuitous Violence, Obliteration and Inpulsa's?
I don't support calculations for those yet
ok
@simple ravine I looked up dash and it has miners for transactions, does not seem proof of stake to me
Due to the complexity and die size required to create an ASIC for mining x11, we expect that it will take considerably longer than it did in Bitcoin, allowing for hobbyists to take part in the mining for a longer period of time. We believe this is highly important for good distribution and growth of a cryptocurrency.
seems like a proof of work with different hash
yes, x11 is just 11 hash algorithms in combination with a large sample size
I'll wait for ethereum one then
Bitmain made an ASIC miner for X11 (Dash etc) already
a lot of people in the cryptocurrency scene shouldn't be in it
much like a lot of people in the php scene shouldn't be doing programming at all
I think proof of stake is impossible but we'll see
rather, any proof of stake impl, could be attacked at minimal cost
well, there are some brilliant minds in the scene as well
When I pay with my Amex / MC / Visa, intermediaries charge 2.9%
When I wire money from one account to my other bank, it takes 3 days and costs $35 per wire.
People who dont have access to banking can also leverage cryptocurrency, once it becomes stable and mature enough.
In my opinion, cryptocurrency is still in an experimental phase.
@obtuse citrus Is there a way to export the entire GGPK using PyPoE?
write to disk?
just export via the ui or extract the root to a specific location when programming
unfortunately the UI won't work with my 3.6 installation, so I'm bound to the CLI
oh yeah
the CLI as far as I can discern will not let me extract the entire GGPK.
am i mistaken?
didnt add a command for that no, but youi ican just ope nthe python shell and do it
it's fairly trivial
right, i just wanted to benchmark mine against the gold standard so to speak
it's not very fast because of certain overheads I can tell you that lol
I'll probably add a c/c++ plugin for it eventually
ok
mine exports it roughly as fast as it takes to delete the folder afterwards (1 minute 40 seconds on my machine)
just wanted to make sure i'm at least in the ballpark where it should be
okay. well I'll defeintely put this on github once it's cleaned up a bit
seems fairly quick
anyway:
from PyPoE.poe.file.ggpk import GGPKFile
ggpk = GGPKFile()
ggpk.read('path/to/ggpk')
root = ggpk.directory_build()
root.extract_to('path/to/out')
oh nice, that looks clean
is there a convenient way to add a stopwatch around the execution in Python?
there are several ways I personally prefer to just take time before and after
import time
t = time.time()
print(time.time() -t)
put the last after the code
ah, thank you
good enough for general testing, for profiling there are other things
I saw that you added some code for fetching content from the update cdn
that could be an interesting scenario for server based applications to keep data updated
lol, your code takes exactly the same amount of time.
not bad.
probably bound by OS i/o
looks like CPU actually, because it's not using my disks full potential
i wish there was a way to tell the OS kernel to copy a section of a file to a new file
that'd be amazing
you could write some C++ CUDA code to make it run on the GPU no?
with known offsets you can thread data loading pretty easy
that would just make it slower - reason being the transfering between the GPU and the CPU would have to go from the kernel, into userspace memory and then through the PCIe lane, and then back
well I'm using a single Stream in my case (reading from the GGPK)
but I could probably create a pool of Streams
Yeah, was wondering about the processing part
in my case the CPU is the bottleneck
If that's being done by the CPU
I have 2 x Samsung 960 EVO NVMe in Raid 0 with 3000+ MB in write throughput
Yeah but you don't want to wear out the read/write caps
shouldn't be writing too much to the disk
depends on what type of disk you have.
if you have an SSD, threaded writes is just beneficial
spinning rust, the other way around
I need to get an ssd
yeah today/monday
I currently have a WD VelociRaptor 1TB which has worked well enough
I can't recommend 960 evo nvme enough
I know a lot of people that use those
SATA is just hard-capped at around 550 MB/s
not sure how many extra pci-e slots I have
what chipset / cpu do you have?
Ryzen-1700x
ah, i heard those has plenty of lanes
I could just bend down and look
well, your motherboard probably has at least 1 m.2 slot
@chrome topaz yeah, that's a good feature linux has indeed, no need to copy the data from kernel memory space to userspace
so if you want to raid it like I did, you gotta check if your motherboard support Intel Rapid Storage Technology's equivalent from AMD
don't really care much about raid
I have hard disk backups of everything
also don't need the speed
nah I use Raid 0 for perf
it's not really copying from kernel to user
ah
@chrome topaz sendfile2 circumvents that, is what i meant
even read() or write()
what use is sendfile here?
pretty sure they work staight on user memory
it is copied within the kernel
got any source saying that?
oh, nah I mean read() and write()
ohhh
if you programmatically buffer it in c/c++/python/whatever
it goes disk->kernel->user->[ur code]->user->kernel->disk
read and write are done in the user space
Yeah, I am aware of the linux structure. My entire schooling was done in/ontop of the kernel
then we're finally in an agreement, lol
I think I was confused at the conversation. I missed a message somewhere
I want a CopyFileEx that takes offset and length as parameters
i'm not sure i think it's an obvious optimization
you'd getting rid of the data being copied from kernel to userspace and back, which is a pretty big portion of the task, especially when Disk I/O isn't the bottleneck, rather the CPU
you can get this behavior if you open a file with O_DIRECT
doesn't O_DIRECT just circumvent the OS file cache?
"File I/O is done directly to/from user-space buffers. "
hmm, let me see if .NET has a flag in the FileStream to indicate this
it also disables cache so
sendfile's gonna be faster anyway
also, I was talking about linux, just fyi
oh
i dunno about windows
is CopyFileEx even a syscall?
it looks like it's just doing read/write itself
so it won't help if they add offset/length
Copies an existing file to a new file, notifying the application of its progress through a callback function.
yeah
so the kernel would do it without copying the data into userspace
it's probably implemented in user mode
because i don't see any copy functions in windows syscall table
especially considering it's got a callback function and a bool pointer
what does "kernel32.dll" mean?
It's a Windows kernel library
it allows you to tell the operating system to do things
like copy files
uhm
you use it to create OS threads, OS completion ports etc
it's just an interface to access windows functionality
yes
the call themselves are then executed in the kernel, not in your application
which call?
im not sure why i get into these repetetive discussions...
it's also annoying for me when i have to explain that kernel32.dll run in userspace
Sure, I agree that the actual DLL is loaded into user-space.
just for fun, i wrote up a tiny program calling CopyFile and traced syscalls
However, I am pretty sure the kernel is involved in copying the file. You can observe how the System process consume quite a lot of CPU time when streaming files using the .NET APIs for an example (which in turn uses underlying windows APIs)
for a 407MB file it did 408 NtReadFile syscalls and 6517 NtWriteFile syscalls
so i think that's it
which is funny because I expected it to at least call write and read same number of times
yeah
if you're worried about performance, you should see how much crap that function does
u running windows 10?
yeah but I tested it on 7 because syscall tracer broke on 10
I dunno I don't normally do low level dev on windows
if you pass COPY_FILE_NO_BUFFERING to CopyFileEx, it does same number of reads and writes, 408
what's interesting is that I have a far better performance using a 4K read buffer than a larger one
what size buffer have you tested?
is that using windows ReadFile?
it's using .net core's APIs and whatever it's using
it could be using its own caching layer
i wouldn't think so, but i would have to double check
what's the API called?
that's usually alright, but it depends how they use it
the buffer's useful so that when you spam Read(1 byte) it doesn't constantly call the API
if (!CanSeek || (destination.Length >= _bufferLength))
{
n = ReadNative(destination);
// Throw away read buffer.
_readPos = 0;
_readLength = 0;
return n;
}
it doesn't use the internal buffer for large reads
i think that's enough looking at microsoft code for today for me
haha
D:\Code\PoeSharp\src\PoeSharp.Playground>build && run
D:\Code\PoeSharp\src\PoeSharp.Playground>dotnet publish -c Release -f netcoreapp2.1 -r win10-x64 -o bin\pub\ -v q
Microsoft (R) Build Engine version 15.5.178.35674 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
D:\Code\PoeSharp\src\PoeSharp.Playground>bin\pub\PoeSharp.Playground
Reading GGPK File...
GGPK File parsed... 1,535.93 ms
Extracting GGPK Contents...
Elapsed total time: 56,663.77 ms
well, i'm pretty happy with that.
what happens with the other 55 seconds?
yeah, unfortunately it was a threading issue
we're back to around 100 seconds for the 8GB file (ggpk => individual files)
i think the issue with maximizing disk's potential is bottlenecking around a single source
@pseudo ocean mine's faster
oh wait, there must be something special with this one
I'm seriously buying 2 of these and raid 0 em
haha
i got 2 samsung 960 nvme in raid 0 now
but this seems to be faster with smaller files
and.. most files are smaller.
ah it's 4K reads are super fast for some reason
the optane is really nice for cache
well 2 x 480 GB is good enough for me
for OS drive
omg that random access speed
why did u have to tell me about the 900P coming out lol
it's already out?
yeah
came in october I think
yep, it's out even here in Sweden
$600 USD
if I knew this when I was in LA last week, argh
it's $850 in sweden
6990 yep
I bought these two 960s like a month or so ago
gonna make my fiance a desktop pc in a while, so i'll give her the samsung ones and upgrade to 900Ps then I guess
lol
omg resharper, y u so slow
@hushed relic Hey bud... I just installed PoE and found my assassin ts/signal fire build had its tree reset
iirc, you have some experience with TS
haven't played in months, and forgot how my tree looked like, any tips?
anyone in here running poecraft.com?
@timid hemlock Outmatch and Outlast isn't applying to the Physical Damage portion of Poison
Mark confirmed that bonuses to Physical Damage will apply to the portion of Physical Damage in Poison
the other modifiers to generic Physical Damage aren't applying either
"In addition, cases where base damage of one type can cause a damaging ailment that deals a different type of damage will be treated similarly to conversion with regard to damage modifiers.
This means that if you have the unique item "The Three Dragons", so that you Ignite with Cold Damage, rather than Fire Damage, when hitting an enemy with Cold Damage, the hit will be affected by Cold Damage modifiers, while the resulting Ignite will be affected by modifiers to Cold or Fire Damage, because it's dealing Fire Damage from base Cold Damage - this is pretty much the same as converting damage from Cold to Fire, such as with the support gem."
@delicate ore I believe you are quite mistaken
It definitely does apply, and in fact the program's Ailment system is quite specifically designed to allow such modifiers to apply
it's not showing in the calcs, i mean
Where, exactly?
the Total More output can only show modifiers that apply to all Poison damage
for the type-specific modifiers, look in the breakdowns for Physical/Chaos source damage
yeah, i kind of figured that was a possbility, you would need to make a breakdown like in Skill Hit Damage to show it all
also, you may or may not be able to answer this but...
@spare delta said the opposite of what the guy in the comments said, but do you have any insight
Hmm
AFAIK they aren't counted as skills in the usual sense
They may be considered to be skill effects though
how do they work exactly? are they triggered on death like COMK?
Pretty much
so they're technically skills
No
They are just effects that occur when you kill enemies under the correct conditions
ok, i think i get it
but... skill modifiers apply to them =/
what about my example case. might volkour's guidance work with inpulsa's broken heart?
I'd be mighty surprised
Things that work on "Lightning Skills" or "Chaos Skills" specifically apply to active skills that posess the corresponding skill type
yeah
But those on-death explosions don't actually have a skill associated with them
well there are two conditions in which it might work
Like, there's no skill anywhere in the data files for Gratuitous Violence
if volkours actually works with all lightning damage, or if the explosion is considered a lightning skill for that purpose
oh
maybe not then
let me test volkour's then. might be hope
if not the build will still be pretty good, with 250% of mob life for the explosion as opposed to the 400%+
I just found something c# can't do, and I'm disappointed.
public static unsafe T To<T>(this byte[] buf) where T: struct
{
fixed (byte* b = &buf[0])
return *(T*)b;
}
argh.
if anyone know an allocation-free way of converting bytes into primitives like this in a generic way, i'd appreciate it
What issue are you running into here? Unsafe should allow you to do that conversation
public static unsafe int ToInt32(this byte[] buf)
{
fixed (byte* b = &buf[0])
{
return *(int*) b;
}
}
this works.
the issue I am getting is that it will not get the size of a generic T struct
return *(T*)b; <- that won't work.
Oh, I see
I found a "workaround", but it's not allocation free, and it's slow
Yeah, you have to increment the pointer
public static unsafe T To<T>(this byte[] buf) where T : struct
{
fixed (byte* b = &buf[0])
{
T result = default(T);
var resultRef = __makeref(result);
var resultPtr = (byte*)*((IntPtr*)&resultRef);
for (int i = 0; i < result.SizeOf(); ++i)
{
resultPtr[i] = b[i];
}
return result;
}
}
ugly as f***
Would be easier just to marshal a ptr
yeah, but in comparison that's also slow
I guess in this case, it's better to just create ToInt32, ToInt64 etc
Marshal.PtrToStructure((IntPtr)b, typeof(T)); for reference
Kind of sucks that it won't let you cast the generic since it gets compiled down to the same code...
gotta box it
return (T)Marshal.PtrToStructure((IntPtr)b, typeof(T));
let me try this and see how fast I can get it with [MethodImpl(MethodImplOptions.AggressiveInlining)]
Oh, whoops yeah
Honestly, you may be able to allocate a block of memory ahead of time and just use it as a pool
Yeah, you are relying on the os to memory manage lol
Why are you converting so much?
reading .dat files
Oh, ok
just want it as fast as possible
and my unsafe ToInt32 is twice as fast as BitConverter.ToInt32(bytes, 0)
You aren't doing any null checks and what not
not in the conversion code itself, no
Also, I am pretty sure ToInt32 does some stuff with rounding
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static unsafe uint ToUInt32(this Span<byte> buf)
{
fixed (byte* b = &buf[0])
return *(uint*)b;
}
this?
sorry that was the UInt version, but same same
This is your implementation yeah?
indeed
It is annoying because these all have the same structure that could be boiled down to a generic...
they've improved the code in .net core
duh
here it is
Unsafe.ReadUnaligned<>
public static unsafe T To<T>(this Span<byte> buf)
{
fixed (byte* b = &buf[0])
return Unsafe.ReadUnaligned<T>(b);
}
int t = 64;
var b = BitConverter.GetBytes(t).AsSpan();
int e = 0;
var sw = Stopwatch.StartNew();
for (int x = 0; x < 10_000_000; ++x)
{
e = b.To<int>();
}
Console.WriteLine(sw.ElapsedMilliseconds);
6 ms, yay ๐
Oh nice
heh, fun how much faster .net core 2.1 is over 2.0
finding the data separator 0xbbBBbbBBbbBBbbBB in the Mods.dat 10 00 times, finishes in 700 ms on .NET Core 2.0 and in 558 ms in .NET Core 2.1 preview
@simple ravine are you taking another shot at the affix solver?
i might indeed
just refactoring the code I already have first, and introducing code to read directly from the ggpk file instead of pre-processed json files
were you able to do it with Elixir/Erlang, @tropic shuttle?
i'm curious to see your code and rewrite it in C and see how much faster i can get
any chance it's gonna be open source at some point?
@simple ravine yes
I used the spawn_weights annotations to do an intermediate layer for items by type, cache , and solve items with that subset of mods
Had to cross reference the data in stat_translations
Cache types were each of the accessories, each of the weapon types (inc scepter, rapier) and each of the armor types Cartesian product with the attribute stats
Ie, gloves_str_dex
So each item type was under ~40 groups (as you might expect from poeaffix etc)
Solution space is tiny, lightning quick
@chrome topaz code is a mess right now, if there is interest I can clean it up and publish it, maybe tackle it again next league
geez
But as I mentioned to thezensei before, thereโs multiple solutions. Integrating highest probability was a good idea for a second pass at it
i keep getting 302 errors and have to go to pastebin.com and do a captcha
and then wait like 5 minutes
then i can use pob pastebins again
then it happens again lol
@chrome topaz sure, knock yourself out
@tropic shuttle yeah, I did the same thing.
Basically I take reverse-translate them into stats (separate stat and values), find what mods that contains these stats in the base type
Dear Exiles, We are glad to announce that we have made significant progress at www.poeprices.info. Thanks to the...
@mortal bone Thanks for sharing!
There have been a few talks about this sort of stuff here, so I figured it might strike up some conversation
Is .net Core 2.1 out?
it is in preview right now
the new Span<T> and Memory<T> have some special treatment in .net 2.1 which makes it lucrative for most people to hop onto 2.1 when it's stable
what happened to Vagan's Unarmed Damage craft mod? Was it removed from the game?
@obtuse citrus, any idea why I'm getting this:
PyPoE.poe.file.specification.errors.SpecificationError: <ERRORS.RUNTIME_ROWSIZE_MISMATCH: 3002>: "ItemVisualIdentity.dat": Specification row size 170 vs real size 166```
specification is outdated
or your client because for some reason I dont get the error when testing against the current version

all heil xyz
poe.trade premium is gonna make a killing
get your tin foil cap on, what if I made all these snipe tools to cause a lot of load on GGG api and make them restrict it
if somebody was to post it, this wouldn't even be the dumbest thing I read on poe subreddit
bohoo, our game gets popular, our servers are crying.
how are people thinking sniping will be less of a problem with whitelisted sites?
you'll just create a community site, and grab the data off there instead
@hazy fog Well this got out of hand
@compact isle Did this really cause any strain on your servers?
it's essentially like DDoSing if enough people use the api
@lost wigeon not yet, no. We're monitoring it
@compact isle I'm also checking with Google Analytics. While many people commented on the thread, the amount of people actually using the tool (about 28 right now) is lower than during Legacy or Harbinger.
@lost wigeon Well if they restrict it, you could always create a server and IFTTT-websocket the results to the users ๐
@simple ravine Yeah totally, I was thinking about doing something like this.
I would want to create one of those services, and have an open API to it
and have the community pitch in a little for the server costs - obviously the bandwidth costs will be, uh.. slightly extensive in the case the app becomes hugely popular.
I'm gonna do some pondering on that one.. hmm
"community pitch in a little" yeah that won't work
the always-positive xyz ๐
have you looked at reddit?
people are complaining that they are only getting ONE free hat
those aren't the ones i am expecting to pitch in
if you make a service, people will see that it adds latency and switch to something else
I think the real solution is to make the API private and only give it to trusted people such as myself
of course you would say that
that'd secure your profits pretty nicely, instead of democratizing the utility
free will is a myth, democracy is a joke
excuse me, the unfair monopoly
xyz irl
poeapp* ๐ค
Yeah, it's about time for it to exist imo
It only requires a complete rewrite in order to keep the performance on devices good, and it's still far from finished. Still tho, progress c:
telia, nice
@winter fossil what language?
JavaScript written to an ES6+ standard. Also planning to include WebGL to enhance the rendering, but that's for a later build.
@simple ravine is there a release of poesharp somewhere?
lol @ people wanting whitelisted sites
whitelisting is fine if they have a proper process for applying
in my experience it never ends well and ends up destroying the ecosystem
But I mean, I haven't been working on an API Marketplace for the past 6 years
To be honest, it isn't hard for them to see who is killing the api.
Also having people register their applications wouldn't be bad. Not a whitelist, but something like an api key
It really should have caching
hard to do because it calcs the difference differently for everyone
Yeah having OAuth Applications would be a good idea
There is a company that does differential caching
Cloudflare
It's their new service they announced during AWS
Or at least their solutions engineer told me while I was at AWS
that is pretty cool
Railgun compresses previously uncacheable web objects up to 99.6% by leveraging techniques similar to those used in the compression of high-quality video. This results in an average 200% additional performance increase.
I don't think the api is in a format in which this would be helpful
It should work with any format is what I was told, my company offers a similar solution or at least the enterprise variant does
@jaunty briar it will be soon
what's poesharp?
it has domain logic around mods, stats, items and stashes as well, but yeah
it's a library with domain logic that can be reused in your applications revolving poe
that's the plan
well, parsing mods is a tricky thing - but parsing stats, 100% yes
i see what's going on
@chrome topaz @polar island we'll be adding support for a "~skip" item note to the client / our trade website for 3.1.0 btw
why have a skip?
for individual items in a public stash tab
use case was letting you use your currency tab as public for listing stock
^
that could be a lot of data that is pretty useless
I would assume that to be the case since they have the ability to have speciail mods
the ~skip option will only be on individual items
I'll check the frameType stuff now
no new frame type
how are they differentiated?
shaped items will have a "shaper": true property, elder ones will have "elder": true
.>
ffs
?
that is just a ton of bloat in the api
they only appear if they're true
so no, not really
frameType is specifically for frames, not for anything else
wouldn't you create a 'backgroundType' then
because they do more than alter the background?
just seems oddly not expandable
it's more likely that the data / visual formats get split than we add another influence to the atlas
yeah they actually change their frames
I know it's not very useful for determining the item class/type
that kind of thing is definitely on my mind
because it's specfically for skipping indexing
you are banking on people honoring the tag
what about private indexers?
people are going to be pissed when they get a whisper about an item they aren't selling
yes, then the people buying will complain to the private indexer creators
mmm, I doubt that
sure okay
they will first complain about it to the indexers, and when it doesn't stop, they will complain to you guys
yeah sorry, I keep thinking of the stash tab api in terms of how we use it for the trade site
but it works differently for the actual api
so ~skip items not being in the river will be fine
it would just look like an empty tab if there was a full tab of ~skip
yep, and there's nothing wrong with an empty tab as long as it still has it's details
easy
cool
thanks man
also keeps everyone honest
hehehehe
@simple ravine will you be making a nuget package for poesharp?
@wind garden yeah if there's enough interest
the library code will be open sourced as well
I was just thinking about the changes Novynn mentioned earlier. It's kind of a pain to have to update my code every new league because of this stuff. Buf if it were as simple as updating a nuget package, would be nice. Assuming you keep it up to date ๐
Accepting pull requests โข
open sourced
?
it's going to available in .h/.lib/.dll form though right, in addition to whatever c# has
nuget is a package manager that will allow you to reference the compiled bits, indeed. @delicate ore
i mean, i might want to use it in a c++ project
right, not sure how that'll work out for you, but i'm pretty sure that can work
i can just write a wrapper for it, i guess
there's some project out there that allows you to reference c# libraries from c++ with convenience
not sure how good it is, though
i haven't written c++ since college (a long time ago)
trying to figure out a bug in the dat parser right now, with ref|list|ulong giving me 0xbbBbbBBbbBBbbBB
once that's done, i'll make a Mods/Stats loader based on that data, instead of RePoE json which the old code used
after that I'll be ready to push this to github for initial review
Hey guys
I rly want to start a project based on poe community around a site web.
Any idea ?
hey guys I'm having problems with acquisition not showing items on Poe.trade
I followed a video's instructions exactly (got the link from poexyzis and the shop thread from the forums) Please help me find out why my items aren't showing
@chrome topaz ^
I noticed that people who have problem with my software also usually have issues describing their problems ie not providing stuff like thread number / search URL / screenshots / etc; wonder if there's a correlation
harsh ecks why zed
at least his nickname is quite describing ! "LF help with acquisition"
seems like the "shaper" : true and "elder": true properties are "consistent" with the corrupted property change that got discussed a week or two back
which was more or less what i was expecting
even so @compact isle maybe worth consider moving those nullary properties to a tag list or something, to keep the api purists happy ๐
enum flags would be a decent choice
public enum Stuff
{
Corrupted = 1,
Shaper = 2,
Elder = 4,
SomethingElse = 8,
AnotherThing = 16
}
i'm surprised Identified hasn't made the list yet
that way, you can do
item.flags = Stuff.Corrpupted | Stuff.Shaper
but who cares, ingress is normally free. it's their egress that is going to bloat up
they should just pipe their db into my server
all that overhead of converting item from binary to json representation
if they keep a sliding window cache of the head of the river and find a way to syncronize clients...
then theoretically there could be massive performance improvements / savings
the stash api is a dumpster fire
no point in ragging on it. just find ways to improve it
I think you mistyped the most beautiful thing ever
I just gave a pretty decent improvement suggestion, didnt I?
it's a crystal clear flow of tranquility through a wasteland of of forgotten toys and atziri axes of yesteryear
If I knew who's in charge of the river API, I'd send him a book on event sourcing ๐
if you think the stash tab api is bad you should've seen the online api (either one)
either way, im getting my unlimited full-duplex 1 Gbps fiber connection installed this week, it'll be fine
@compact isle I've read the talks about the stash API and the shaper and elder props. Do you know if those are also shown/indicated on the item data copied ingame via ctrl + c? Would suck for itemInfo/TradeMacro and some other tools if not.
@compact isle I'm gonna upload a new version of my tool tomorrow using socket.io to serve chunks from my poe-rates backend instead of having everyone download its individual version of the chunks.
can your backend sustain the hits
@hazy fog I'm not sure, but they're currently not too many people using the tool (approx. 20), so it shouldn't be too bad.
the problem with open source software is you can't kill it when you discover it's horrendously bad ๐ค
Yeah, sure people can fork it but it still depends on my backend somehow (item price stats, currency conversion) which is not open-source.
oh, good
good to hear, those mobile trees have terrible performance
im surprised the mobile trees don't use grid spatial indexing to handle the image performance
The way GGG decided to draw each node is based of groups that each have a cluster of nodes, from that they calculate the position of each node in that group on each full draw. Had to scrap that idea
I've only mapped each node's position to a tile at init, and if that tile is within bounds it will draw the associated nodes. Works ok for now.
But I still feel like I'm going to do some heavy optimization. The Sony xperia that I got draws in ~200 ms when zoomed out to 0.08. But then again, where should I even set a benchmark of what devices should run it well?
yeah, your approach is grid spatial indexing
or at least a simple version of it, you can find the pattern in the ebook "Game Programming Patterns", i think
Yeah, I google it and sounded a bit more advanced than what I've done haha
@polar island that's a spoiler
@tropic shuttle yes it's not the best ๐
@misty merlin I can check that now
are you using webgl?
oh, so it's canvas?
webgl should make it pretty fast because you basically will have static buffers for vertices
and you just move the camera
@compact isle Iโm not complaining too loudly tbh. Itโs easy to go off the rails with api purity and end up with stuff like soap or odata
@chrome topaz Yeah, the plan is to include it at some point.
kinda makes me want to finish my pob webgl port
^^
@simple ravine I haven't been up to date with what you're working on besides your poesharp lib. Do you run an indexer or something that uses insane bandwidth?
I don't see why the tree would be slow ๐ค it's pretty simple
The majority of it's contents is static, the highlight is the only dynamic portion
because canvas is slow af
it doesn't handle images very well
when I was messing around with some prototypes the basic drawing of a circle for nodes was super fast
@misty merlin it'll have "Shaper Item" or "Elder Item" after the Mirrored/Corrupted/Relic lines
Guys, sorry if this question already been asked but I just was wondering if there's something that gather all informations about PoE API and how to use it ?
Do you have to be in relation with GGG ?
PyPoE will help you out.
@inner sundial
Official documentation: https://www.pathofexile.com/developer/docs/api-resources
And if you want some further information you can look into: https://pathofexile.gamepedia.com/Public_stash_tab_API
Thanks @smoky temple
@inner sundial glad i could help
@compact isle Thanks for checking!
taking bets: the trade api change is just going to mention elder:true/shaped:true etc
no other change
any of you guys use angular?
angular FTW
isn't angular terribly slow?
Haha, no. I mean I'm an angular dev so I'm like no, go angular! It has it's problem but speed isn't one of them. However, React dev's would rant at me about how slow it is and the dirty checking and so on and so forth. It's like windows vs linux or consol vs pc.
That's like comparing apples to oranges.
they are both fruits and they are both round?
Slow isn't an opinion, it's a fact. Either it is, or it isn't
Prefering Windows over Linux or vice versa is an opinion.
slow is a relative. You don't think your 50mbs internet is slow but me who is used to 150mbs think it's slow.
but slow in what way? Slow on page load? Slow on processing time? Slow on response? Slow how? When? Not every project is going to need 'speed' in the same spot or in the same way and not every tech stack provides 'speed' in the same spot or the same way.
Hmmm, so my React (I'm just using angular and react because they're the two I'm most familiar with) experience is llimited to hobby code but the preformance between angular and react in that regard is negligible at least in the situations I would use either technology. If it appears instantaneous to the user then it's fine.
Ah, that was just in response to the 'any of you guys use angular?' I don't usually just run around shouting 'ANGULAR IS WIN' whether or not I feel that way.
I'm almost disappointed. I thought you'd fight harder for it ๐
Oh I mean I could fight 'til I'm blue in the face about why angular is the be-all end-all but I also like plenty of other languages and am willing to recognizes strengths and weaknesses in every language. Except PHP, php can go die.
oh man now we're talking angularJS vs angular
so when other mvvm frameworks perform better than angular, it is the fualt of the javascript vm
they are the same thing, just renamed lol
And if it is sheer pageload speed you're after there is a lot of optimization that angular really likes having with webpack
you can't say 'angular' without a number
Yes you can Emmitt... now it's AngularJS or just Angular because Angular 2 and Angular 4 and Angular 5 (that just came out last month) are all now just called 'Angular'
normally when you discuss performance with mvvm frameworks, it's the element manipulation that that the mvvm engine is responsible for
sure, however - some frameworks are faster than others achieving the same goal
Page load speed with angular is a pretty common complaint that I hear and my reaction to that is always that's a devs fault, there are lots of ways to fix that.
I'm refering to UI/UX in SPAs
https://jsperf.com/jquery-vs-javascript-performance-comparison/22
fun comparison between pure js and jquery (which angular uses for dom manipulation)
jQuery being slow is super old news lol
yes, so there is no way angular is going to be fast lol
there is too much overhead for it to be faster than (in 90% of cases) pure js
i7 7700K 4.7 Ghz
oh well i guess webkit's js is just way faster at getelementbyid
interesting
class selection in js seems slow
oh they are using querySelector...
getElementsByClassName should be used
well to be fair, $('.bye') is a query selector
it might short-circuit the full-fledged query selector in a smart by detecting if the query is a simple class
lol:
what...
what's the deal with angular versioning though? I've just been getting into it recently and I can't really tell what is the most commonly used version
hmm, or not. now i can't reproduce the Infinity result
normally I'd use the latest but because of all the dependence on other npm packages, version can make a huge difference
off-topic, anyone into Ubiquiti hardware?
my coworker swears by it
yeah, my devops employee too
i'm just contemplating between EdgeRouter vs Unifi Gateway + Unifi Switch
because I'm going to get a Unifi AP AC-HD for my wifi
but i hear EdgeRouter > Unifi USG/Switch
but I'm not sure
for a home setup?
ah ok
for some context, the coworker of mine that swears by them is a principal engineer working on 5g wireless technology
so that's his credentials
nice
and he said don't go cisco
ya
too expensive with licensing
cisco is a pain in my ass
he really likes the "enterprise quality with a consumer price" thing
this discussion all came up with the whole wifi vulnerability thing
i just want the latency not to drop when there are packets flying all around
he went out and bought a ubiquiti router and loves it
yaknow, fiance starts those 4K netflix streams, kid goes youtubin'
yeah, rip my currently 50mbit internet for that
๐
1 youtube = takes the entire bandwidth for 1 second
lag spikes.
with unifi you have to get the whole product line.
edgerouter you can fit into your current network
no, you don't have to, but it's beneficial
true
I'm setting up 6 google wifis around the house + asus RT-AC88U router
google wifis?
does that mean that we have to stop using jQuery ? ๐
google doing wifi hardware now?
ye boi
Looking at the interfaces, if you perfer GUI may as well go with Unifi
@inner sundial you can do everything jquery does in pure js lol
Unifi gets better with multiple units but doesn't require it
since it uses MU-MIMO
so you could get one unit and if you like it, get a 2nd
and have uber wifi coverage and speed
if your client devices support MU-MIMO yea
I'm skeptical, of those heh
i think my company might be ubiquiti dealers, need to check
well, unless you're in sweden..
there are dealers in america, i think
komplett? ๐ค
we're in the home automation business
Dustin
you can get them on newegg
are you in sweden?
ah i see
lol, yeah @wind garden why else would I want them from Sweden?
ya looks like Dustin and Avantis are your options
They have them in a few other online stores too
maybe you have a 2nd home in sweden that you're temporarily visiting? ๐
komplett also sells it looks like
u in sweden or norway, alex?
norway
gotcha
getting my 500/500 later this month ๐
they're installing the client node tomorrow morning
yea, it's gonna be around 980 SEK for 1 Gbps / 1 Gbps
yeah, swedish broadband infrastucture development was incentivized by the government, so i guess the price and openess of the fiber stuff is really good around here
i'm guessing you also have TV included ?
Telia for fiber is probably one of your better choices
prob for gaming : P
Telia Sonera should have the best peering you can get
considering they own their own NOCs/peering exchanges
the issue is.. the isps in norway have to "rent" routing from telenor which uses telia
and sometimes they mess up the latency from denmark to germany/netherlands
and there's no way to complain about this issue
damn
there are some days i'm glad my parents decided to move from norway to sweden
hopefully norway gets it's own routing soon lol
I think 90% of our traffic goes through sweden first
kinda weird
which means sweden can monitor norwegian internet traffic ๐
hmm, couldn't find any "trade API" note in patch notes?
was there in Markov Generated 3.1 PATCH NOTES
dominator? that's me
i think i'll skip this one lol
4 pauldrons wasn't enough?
i went with subjugator
redeemer portal was as much as the mtx compelled me, but i use enough API i figured i should chip in a bit
also, cloth map, because my glasses need to be cleaned
I've spend $2k+ already, but yeah..
looks expensive
looks likes too much
nah, wasn't too bad
edgerouter looks pretty neat, i was considering mikrotik routers not too long ago for my next house but will take another look
mikrotik is apparently douchebags
it actually isn't that expensive for a full network setup
around โฌ 1K
Yeah, was just looking, and it was close to that in $
I'll just spend less on supporter packs for a while
nice!
how is your experience regarding speed (throughput, latency)?
I got the Cloud Key, which should give me the web access ui
awesome, looking forward to installing it