These are chat archives for arenanet/api-cdi

2nd
Feb 2016
smiley
@codemasher
Feb 02 2016 00:02
:point_up: 1. Februar 2016 20:50 @lye, this is not nice :(
Archomeda
@Archomeda
Feb 02 2016 00:03

AFAIK if it's a gizmo it's not immediate -- the vendor is likely doing something special which is replicating the behavior of an immediate

@Iye, regarding the guild upgrade item again, you're probably right about this, it didn't click for me when you said it
it's the same with https://api.guildwars2.com/v2/guild/upgrades/683 that needs https://api.guildwars2.com/v2/items/77763
the vendor sells this item, it pops up on the right side of your screen, when you click on it, it opens your inventory, but the item has been consumed automatically by the guild

Pat Cavit
@tivac
Feb 02 2016 00:04

:point_up: 1. Februar 2016 20:50 @lye, this is not nice :(

It's not an easy problem to solve, and the cost:reward doesn't seem to make it very worthwhile

smiley
@codemasher
Feb 02 2016 00:04
i meant more that he referenced ring of fire... hope he didn't mean my home server :P
(we were never striving to be on the top!)
tbh, i had no time yet to dig into the new wvw APIs
speaking of which, any news on the event details API?
Pat Cavit
@tivac
Feb 02 2016 00:14
I don't see anything on the board, but planning is Wed so we'll see what @lye pulls
codemasher @codemasher is excited
smiley
@codemasher
Feb 02 2016 00:17
/v2/events/details/ids=38,94,95,96
something like that
would be nice
(ids are the map ids)
Archomeda
@Archomeda
Feb 02 2016 00:19
wait... something is planned for events?
smiley
@codemasher
Feb 02 2016 00:19
dig through the PRs :D
Archomeda
@Archomeda
Feb 02 2016 00:20
i did, probably used the wrong search term heh
Pat Cavit
@tivac
Feb 02 2016 00:21
nothing planned atm
& I don't recall the issues w/ events that led to today
so zero promises
Archomeda
@Archomeda
Feb 02 2016 00:21
oh... i did use the correct search term.. i'm just blind
smiley
@codemasher
Feb 02 2016 00:21
arenanet/api-cdi#61
there was this
Archomeda
@Archomeda
Feb 02 2016 00:24
yeah i saw it
smiley
@codemasher
Feb 02 2016 00:25
(almost forgot about that, but yes, i'd still love to have event details in the floordate)
Archomeda
@Archomeda
Feb 02 2016 00:25
i suppose getting live event data is tricky since the megaservers
Nabrok
@Nabrok
Feb 02 2016 00:26
We used to have that endpoint before megaservers
smiley
@codemasher
Feb 02 2016 00:26
this is perhaps a whole differnt beast
Archomeda
@Archomeda
Feb 02 2016 00:26
@Nabrok indeed
but we never had live event data for overflows
Nabrok
@Nabrok
Feb 02 2016 00:26
True
Archomeda
@Archomeda
Feb 02 2016 00:27
i still like to think that the megaservers are just overflows, in the way how they work
Pat Cavit
@tivac
Feb 02 2016 00:27
that must be nice for you
Archomeda
@Archomeda
Feb 02 2016 00:27
hahaha yeah i suppose :P
smiley
@codemasher
Feb 02 2016 00:27
lamo
Archomeda
@Archomeda
Feb 02 2016 00:28
it's more like that they get created, and they get destroyed when they're not needed anymore
i suppose that's the only thing what megaservers and overflows have in common
smiley
@codemasher
Feb 02 2016 00:28
i wish, megaservers would work like gw1's district system so that you're able to switch any time
windwarrior
@windwarrior
Feb 02 2016 00:28
I like to think that there are golems in the serverpark of anet fitting new servers to racks, preferably cat golems
smiley
@codemasher
Feb 02 2016 00:29
(to anywhere)
Archomeda
@Archomeda
Feb 02 2016 00:30
same
i think there was a forum post a long time ago that explained (or just said, i don't remember) that megaservers are completely different than the gw1 districts
even though it really looks similar ingame
smiley
@codemasher
Feb 02 2016 00:32
i'm pretty sure they are but i'm also pretty sure that one could make it possible for people to switch
Pat Cavit
@tivac
Feb 02 2016 00:33
iirc it'd really fuck up the weighting aspects
smiley
@codemasher
Feb 02 2016 00:33
how if there's a limit?
Nabrok
@Nabrok
Feb 02 2016 00:33
Well, it is possible for people to switch if you happen to be partied with somebody in another one
smiley
@codemasher
Feb 02 2016 00:33
gw1 tells me "District full"
Archomeda
@Archomeda
Feb 02 2016 00:33
weighting as in different priorities where people are considered to be placed?
smiley
@codemasher
Feb 02 2016 00:37
so if each world had a limited space for "swappers" so that people could easier connect with each other
Nabrok
@Nabrok
Feb 02 2016 00:38
squads do make it easier to do that. You no longer have to drop/reform groups if you're trying to get into the instance only one of your guild members landed in.
smiley
@codemasher
Feb 02 2016 00:38
squads break up in pvp
Nabrok
@Nabrok
Feb 02 2016 00:39
Why would you need this in pvp?
smiley
@codemasher
Feb 02 2016 00:39
think in the bigger picture
what if you're on a map waiting for a friend who's finishing a pvp match
Nabrok
@Nabrok
Feb 02 2016 00:40
Bigger than 5v5 game modes?
Pat Cavit
@tivac
Feb 02 2016 00:40
all megaservers stuff is weighted based on criteria, dunno if those factors are public so won't comment directly on them
smiley
@codemasher
Feb 02 2016 00:41
but it has been noticed that it makes it hard for people to connect, yes?
Pat Cavit
@tivac
Feb 02 2016 00:41
yes of course, hence the party priority stuff
smiley
@codemasher
Feb 02 2016 00:41
:+1:
Nabrok
@Nabrok
Feb 02 2016 00:41
I'm pretty sure somebody said that the guild portal was supposed to guarantee arriving in the same map (it doesn't)
Pat Cavit
@tivac
Feb 02 2016 00:41
believe it or not we aren't total morons
Archomeda
@Archomeda
Feb 02 2016 00:42
i don't think that those factors are public @tivac
smiley
@codemasher
Feb 02 2016 00:42
believe it or not, but not being able to connect with friends on other servers for almost 2 years made me quit playing gw2
Archomeda
@Archomeda
Feb 02 2016 00:42
i think that only the order was explained some time ago in a blog post
Pat Cavit
@tivac
Feb 02 2016 00:42
This new system takes your party, guild, language, home world, and other factors
Nabrok
@Nabrok
Feb 02 2016 00:43
I think all they've said publicly is party/squad > guild > contacts > world > language
Pat Cavit
@tivac
Feb 02 2016 00:43
@codemasher that's fine, but I'm not on the server team so complaining to me accomplishes nothing
smiley
@codemasher
Feb 02 2016 00:43
i don't complain i wouldn't be here if i had to ;)
i found other games instead^^
(especially those that arent so time consuming... hehe)
it's just a sad matter of fact what poor social connection abilities can cause
Archomeda
@Archomeda
Feb 02 2016 00:47
what if we could join other instances through our friendlist or guild roster :D don't need any party!
even less social! :D
smiley
@codemasher
Feb 02 2016 00:48
i think that was possible as a quick fix at one point
travel to party member
but thats still possible, right
Archomeda
@Archomeda
Feb 02 2016 00:48
wait what?
smiley
@codemasher
Feb 02 2016 00:49
in the dark beginnings
back in the day
Archomeda
@Archomeda
Feb 02 2016 00:49
i said that half jokingly, and now i'm confused
smiley
@codemasher
Feb 02 2016 00:49
lol
Edgar Doiron
@Coffee4cr
Feb 02 2016 01:07
Out of context, but still GW2 related (or soon to be unrelated) http://grubbstreet.blogspot.ca/2016/02/the-gaming-news-departures-and-arrivals.html
windwarrior
@windwarrior
Feb 02 2016 01:08
amazon has game studios
TIL
Edgar Doiron
@Coffee4cr
Feb 02 2016 01:08
yeah, lots of ANET devs are gone there
recently i've heard of Eric Flannum and Jon Peters
Steve Fowler too
I wanna say Chris Whiteside, but I think he went elsewhere
but I have no clue what Amazon Game Studio is and what they've done
Archomeda
@Archomeda
Feb 02 2016 01:18
omg... i just pushed my cron job to openshift... it took 15 minutes to add 1 new item from /v2/items :D
Edgar Doiron
@Coffee4cr
Feb 02 2016 01:18
LMAO
Archomeda
@Archomeda
Feb 02 2016 01:19
it added like 100 in a few minutes, but that last one...
Edgar Doiron
@Coffee4cr
Feb 02 2016 01:19
by the time you're done, hundreds of new items will be out
Archomeda
@Archomeda
Feb 02 2016 01:21
btw, does anyone know what items like these are? https://api.guildwars2.com/v2/items/2
windwarrior
@windwarrior
Feb 02 2016 01:23
wiki has no clue
(good night)
Archomeda
@Archomeda
Feb 02 2016 01:26
rofl
windwarrior
@windwarrior
Feb 02 2016 01:27
I can speculate that it is some test item, most of the lower ID items are non obtainable as player I think
Archomeda
@Archomeda
Feb 02 2016 01:27
possibly, then someone must have spawned it in, otherwise it wouldn't exist on the api
or it must be a leftover from some api failure
i do wonder what "assassin" actually is :P
windwarrior
@windwarrior
Feb 02 2016 01:29
I just found a website that uses the API, and you can tweet your items on it
why would I want this
(also put it on G+ and FB)
wait, thats ours! XD
windwarrior
@windwarrior
Feb 02 2016 01:31
no, another one :D
smiley
@codemasher
Feb 02 2016 01:31
blame @darthmaim :D
windwarrior
@windwarrior
Feb 02 2016 01:31
but still, why
smiley
@codemasher
Feb 02 2016 01:31
linkedin is missing tho
anyway, off now :P
Archomeda
@Archomeda
Feb 02 2016 01:32
gn
Nabrok
@Nabrok
Feb 02 2016 06:32
treasury and upgrades endpoints returning empty arrays for anyone else?
@Archomeda I think it was for a south sun survival prototype; can't recall
darthmaim
@darthmaim
Feb 02 2016 10:01
surprisingly people are using the share feature (at least twitter and fb)
smiley
@codemasher
Feb 02 2016 10:02
which leaves more questions :D
huh, how is that different from FormData?
smiley
@codemasher
Feb 02 2016 10:22
"I think of URLSearchParams as an equivalent convenience to URLs as FormData was to forms."
fair
Nabrok
@Nabrok
Feb 02 2016 13:44
@lye Any idea why /v2/[guildid]/treasury and /v2/[guildid]/upgrades are returning blank arrays? Also, is it just my guild or happening to anybody else?
Edgar Doiron
@Coffee4cr
Feb 02 2016 13:52
empty for me too
L M.
@lmik
Feb 02 2016 13:52
TP is down atm too, probably some larger issue
David Reeß
@queicherius
Feb 02 2016 14:49
and /v2/account is returning "ErrTimeout" for me
Nabrok
@Nabrok
Feb 02 2016 14:50
/v2/account seems to be working for me
Edgar Doiron
@Coffee4cr
Feb 02 2016 14:57
account works for me
smiley
@codemasher
Feb 02 2016 14:59
perhaps a cdn/caching issue
Archomeda
@Archomeda
Feb 02 2016 16:40
@Iye, oh interesting :o
oh btw, i've always wondered, why does the lang parameter support ko (korean right)? some endpoints i've tested return {text:"ErrUnknown"}
uhh, I've no idea what might have broken /treasury and /upgrades.
the /v2/account issue was likely related to an outage we had this morning
Nabrok
@Nabrok
Feb 02 2016 18:11
/treasury still broken.
looking into why ... I'm really not sure what changed :/
okay, found the issue, the backend data format is changing
I'll have this cleaned up today/tomorrow, sorry 'bout the noise
Nabrok
@Nabrok
Feb 02 2016 18:26
no problem
smiley
@codemasher
Feb 02 2016 18:32
@Archomeda ko and zh actually. I wonder about the same thing btw.
Pat Cavit
@tivac
Feb 02 2016 18:32
they're the languages our backend has strings for
zh seems obvious
smiley
@codemasher
Feb 02 2016 18:33
ko as a nod to ncsoft perhaps, eh?
Pat Cavit
@tivac
Feb 02 2016 18:33
ko is because we translated at least part of the game into Korean for G-Star one year
smiley
@codemasher
Feb 02 2016 18:33
could you make those strings available?
Pat Cavit
@tivac
Feb 02 2016 18:33
afaik if you request those strings it'll return what it can
wait does it really?
smiley
@codemasher
Feb 02 2016 18:34
hmm, ok but does the used .dat too? :D
I thought it only did that on dev
Edgar Doiron
@Coffee4cr
Feb 02 2016 18:35
an MMO is always in Dev ;)
the dev branch :P :P
smiley
@codemasher
Feb 02 2016 18:35
i mean, it'd be cool because we could make our sites available for the chinese market too :D
Pat Cavit
@tivac
Feb 02 2016 18:35
@lye dunno, if live has those strings stripped we should probably not advertise them
smiley
@codemasher
Feb 02 2016 18:35
plus i know someone who is chinese ;)
Pat Cavit
@tivac
Feb 02 2016 18:36
china has its own API endpoint, but it's not publicly available
wait where are we advertising ko
smiley
@codemasher
Feb 02 2016 18:36
yup
Pat Cavit
@tivac
Feb 02 2016 18:36

https://api.guildwars2.com/v2

Possible locale 'langId' values include:
en
es
de
fr
ko
zh

OH
smiley
@codemasher
Feb 02 2016 18:36
on the v2 main
well then.
pretty sure the dat-reading backend component does not agree with that list
smiley
@codemasher
Feb 02 2016 18:37
heh
I'll change that real quick
need to do a deploy later today to fix guild stuff
Pat Cavit
@tivac
Feb 02 2016 18:37
:+1:
smiley
@codemasher
Feb 02 2016 18:37
but it'd still be cool if you could make at least chinese available
Pat Cavit
@tivac
Feb 02 2016 18:38
chinese strings are stripped for NA/EU builds
smiley
@codemasher
Feb 02 2016 18:38
meh
Pat Cavit
@tivac
Feb 02 2016 18:38
much like non-chinese strings are stripped out of chinese builds
maybe kong zhong has an API? XD
pretty sure the version they're using is internal-only
anyway turns out that was a config change, should be fixed soonish
smiley
@codemasher
Feb 02 2016 18:39
so you don't have a current chines build on your backend servers if i understand correctly?
Nabrok
@Nabrok
Feb 02 2016 18:39
Do they do anything with it? Make their own apps?
Pat Cavit
@tivac
Feb 02 2016 18:40
yeah they've got a few things using the API
/v2 actually started on a different team to meet KZ's API requests
then we essentially forked it, rewrote it, and hugely expanded it to make the /v2 you know today
smiley
@codemasher
Feb 02 2016 18:41
so they basically started the way like gw2 was announced to us very early?
Nabrok
@Nabrok
Feb 02 2016 18:42
Interesting.
smiley
@codemasher
Feb 02 2016 18:43
(i mean, having apps from the beginning would have been cool, but the public API is so much more :D)
Pat Cavit
@tivac
Feb 02 2016 18:43
APIs were all post-ship
smiley
@codemasher
Feb 02 2016 18:43
ah ok
Nabrok
@Nabrok
Feb 02 2016 18:43
Didn't work on the chinese version coincide with that long wait for the authenticated API?
Pat Cavit
@tivac
Feb 02 2016 18:44
no one was working on the API after Cliff left
then the server team built a small version of what became /v2 to meet KZ's needs
then we took it over, I did some work on it to clean it up to web team JS standards, and then @lye showed up and we unleashed him on it
and that's when everything started to break
Nabrok
@Nabrok
Feb 02 2016 18:45
Yeah, I noticed how we it seemed like forever waiting for authentication and then after that things have been coming at a really good pace.
Pat Cavit
@tivac
Feb 02 2016 18:45
omelettes/eggs/yadda yadda
I make my omelettes from eggs from a carton
Nabrok
@Nabrok
Feb 02 2016 18:46
Can't make an omelette without breaking a few cartons?
Pat Cavit
@tivac
Feb 02 2016 18:46
something like that, yes
darthmaim
@darthmaim
Feb 02 2016 19:53
but it'd still be cool if you could make at least chinese available
that does work
it works but is not officially supported
there may or may not be strings for everything
Nabrok
@Nabrok
Feb 02 2016 19:54
Does it fall back to english if there's no string in the requested language?
I believe it emits an empty string
@Nabrok pushed a fix for the guild endpoints
Also picked up the note bits for /v2/guild/:id/stash so there's that
Archomeda
@Archomeda
Feb 02 2016 21:17
oh wow, that's some interesting api development
Nabrok
@Nabrok
Feb 02 2016 21:17
Nice, thank you
Archomeda
@Archomeda
Feb 02 2016 21:18
@darthmaim i don't think that the chinese version is compatible, some items may or may not exist there compared to na/eu
so officially supporting the chinese language in a na/eu environment... i don't think that would work
unless of course, all items exist in both versions and are translated, but may or may not be hidden on live
I honestly have no idea how the localization process works for content (web has a slightly different workflow) so I'm not sure what the current state is
But the API frontend doesn't validate the ?lang parameter -- it just passes it to one of the backends. If the backends support the language that's cool, but I'm not going to try to track down issues related to languages outside what the core game supports in NAEU.
Archomeda
@Archomeda
Feb 02 2016 21:22
i suppose that also very few people would benefit from it, so it's possibly not even worth it
Nabrok
@Nabrok
Feb 02 2016 21:23
April 1st I might add ?lang=zh to everything :)
Archomeda
@Archomeda
Feb 02 2016 21:23
what i didn't know, is that CN actually has their own api (in w/e form)
( ͡° ͜ʖ ͡°)
Archomeda
@Archomeda
Feb 02 2016 21:24
haha :D
what would it take the gw2 developers to have that joke in the live client on 1 april? :D
over my dead body
april fool's jokes are the onus of application developers
oh you said "client" -- I can only speak for the public API :P
Archomeda
@Archomeda
Feb 02 2016 21:27
i don't think that introducing an april fool's joke into an API is a good idea xD
"all recipes now require butter"
Archomeda
@Archomeda
Feb 02 2016 21:28
i think all hell breaks lose when you do that
because of third parties that might have automated stuff running that depend on it
seems like the name is also missing in all other languages
Archomeda
@Archomeda
Feb 02 2016 21:30
while the client gives the feeling it's a joke (directly to players), and an automated system that depends on the API probably assumes it's correct and doesn't know whether it's a joke or not
Pat Cavit
@tivac
Feb 02 2016 21:31
@Nabrok awesome :+1:
Archomeda
@Archomeda
Feb 02 2016 21:31
@Nabrok wow nice :+1:
darthmaim
@darthmaim
Feb 02 2016 21:31
@Nabrok nice one
Archomeda
@Archomeda
Feb 02 2016 21:33
anyhow, they can also just reintroduce that bug that caused korean and chinese characters to appear ingame for item names :D
i think it was just encoded bytes directly fed to the output as unicode strings?
that bug seems to be fixed though, as i haven't seen it for a long time now
Archomeda
@Archomeda
Feb 02 2016 22:18
oh... is this a new chat log? "Cannot connect to the guild server."?
wait what? where are you seeing that message?
in-game?
Archomeda
@Archomeda
Feb 02 2016 22:21
yup
one of the backend services is likely having an outage
it's been a spotty day
Archomeda
@Archomeda
Feb 02 2016 22:22
i think it only might have lost connection for a few seconds though
but i've never seen that message pop up before, even when the guild servers were behaving strangely
IIRC the old message was something like "could not connect to login servers"
Archomeda
@Archomeda
Feb 02 2016 22:23
still, it's good to have it :D
oh, that annoying popup?
yeah; they probably changed the text to make sense
Archomeda
@Archomeda
Feb 02 2016 22:24
i'm grateful for that :D
also changing it to the chat log instead is way better
yeah, makes sense as it's a non-critical failure
windwarrior
@windwarrior
Feb 02 2016 23:14
might be a stupid question, but achievement category id's are never changing right?
like; can I hardcode the daily fractal category
it's highly unlikely that they'll change
they're in content though, so I can make no guarantees :/
windwarrior
@windwarrior
Feb 02 2016 23:21
searching all categories for the right one is not more reliable anyway
Archomeda
@Archomeda
Feb 02 2016 23:23
i suppose that a search endpoint for almost every existing endpoint would be nice :P
but that has been brought up many times
windwarrior
@windwarrior
Feb 02 2016 23:24
why doesnt javascript have printf :/
Archomeda
@Archomeda
Feb 02 2016 23:25
can't you use console.log?
windwarrior
@windwarrior
Feb 02 2016 23:25
it has `string` , but anything that allows variables in scope to be put into strings freaks me out
Archomeda
@Archomeda
Feb 02 2016 23:26
iirc console.log('string 1: %s, string 2: %s', string1, string2); should work
windwarrior
@windwarrior
Feb 02 2016 23:27
uhm yeah, but I dont want to log it :P
Archomeda
@Archomeda
Feb 02 2016 23:27
oh
just generic output?
windwarrior
@windwarrior
Feb 02 2016 23:28
building of API urls
I typically just use /v2/whatever?lang=${lang}&ids=${ids.join(",")}
windwarrior
@windwarrior
Feb 02 2016 23:29
yeah
it gets syntax highlighted so it's really clear what's up
windwarrior
@windwarrior
Feb 02 2016 23:29
I tried fixing it, escaping backticks in markdown is horrible
Archomeda
@Archomeda
Feb 02 2016 23:29
because of the US international keyboard? :P
all the ``,'and"` gets remembered for your next keystroke; or well, i suppose this is what you mean... nvm then
windwarrior
@windwarrior
Feb 02 2016 23:32
escaping backticks requires you to put two backticks, then your things you want to put backticks in, and then two backticks again
how you would escape two backticks is a mystery to me
\what``
rip sanity
Archomeda
@Archomeda
Feb 02 2016 23:33
\r\n
:cry:
anyhow, i really should look into using that way of making strings
how long has it been supported?
windwarrior
@windwarrior
Feb 02 2016 23:35
es2015
Archomeda
@Archomeda
Feb 02 2016 23:35
okay nice, so i didn't miss anything when i did something in javascript some time ago :D
i also want to use C# 6.0 when i decide to do something in C# again
but i don't want to use VS2015 Community after using VS2013 Ultimate D:
windwarrior
@windwarrior
Feb 02 2016 23:37
MSDNAA <3
Archomeda
@Archomeda
Feb 02 2016 23:38
last time i checked there, they didn't have it
windwarrior
@windwarrior
Feb 02 2016 23:38
or dreamspark
Archomeda
@Archomeda
Feb 02 2016 23:38
my uni isn't connected to it >_>
TU Delft..... sigh
there's always mono :>
windwarrior
@windwarrior
Feb 02 2016 23:38
the thing where Microsoft tries to vendorlock-in you with free software
TU Enschede here :)
or UT
Archomeda
@Archomeda
Feb 02 2016 23:39
pff mono... i'll only use that on linux when i need to run .NET stuff there
i don't even know if they keep up with the new language specifications
windwarrior
@windwarrior
Feb 02 2016 23:40
(context for the non-dutchies: two universities in the netherlands)
Archomeda
@Archomeda
Feb 02 2016 23:40
that null propagation in C# 6.0 is really awesome
windwarrior
@windwarrior
Feb 02 2016 23:40
pff, I used >> and >>= before it was cool
Archomeda
@Archomeda
Feb 02 2016 23:41
i rarely ever have to use bit shifting :P
windwarrior
@windwarrior
Feb 02 2016 23:41
(both Haskell operators, essentially what C# has implemented)
Archomeda
@Archomeda
Feb 02 2016 23:42
hmm, never looked at haskell
don't want to either XD
windwarrior
@windwarrior
Feb 02 2016 23:42
you really should
I strongly believe that knowing a functional language makes you a better programmer
and Haskell, well its the best functional language around :>
Archomeda
@Archomeda
Feb 02 2016 23:43
heh
Ryan Mast
@nightlark
Feb 02 2016 23:43
There isn't a monster api in the works, is there?
Archomeda
@Archomeda
Feb 02 2016 23:44
they tried to learn us how scala works, i horribly failed the first exam, passed the resit, but still don't know what the heck is going on there
the only thing that i loved, is probably lambda expressions
those things are awesome in c#
(also, regarding scala, it really didn't help that they used their in-house compiler on a server via the browser)
(because, that course also consisted of implementing the way of scala in c and javascript, and compiling c there was terribly slow)
windwarrior
@windwarrior
Feb 02 2016 23:47
Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
right :'(
@nightlark no, there isn't