• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 09:54
CEST 15:54
KST 22:54
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro24 Preview Pt2: News Flash10[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy18ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20
Community News
$5,000 WardiTV TLMC tournament - Presented by Monster Energy2GSL CK: More events planned pending crowdfunding3Weekly Cups (May 30-Apr 5): herO, Clem, SHIN win0[BSL22] RO32 Group Stage4Weekly Cups (March 23-29): herO takes triple6
StarCraft 2
General
Quebec Clan still alive ? BGE Stara Zagora 2026 cancelled Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Weekly Cups (May 30-Apr 5): herO, Clem, SHIN win Rongyi Cup S3 - Preview & Info
Tourneys
Sea Duckling Open (Global, Bronze-Diamond) Sparkling Tuna Cup - Weekly Open Tournament GSL CK: More events planned pending crowdfunding $5,000 WardiTV TLMC tournament - Presented by Monster Energy RSL Season 4 announced for March-April
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
The PondCast: SC2 News & Results Mutation # 520 Moving Fees Mutation # 519 Inner Power Mutation # 518 Radiation Zone
Brood War
General
BW General Discussion ASL21 General Discussion so ive been playing broodwar for a week straight. Gypsy to Korea Pros React To: JaeDong vs Queen
Tourneys
Escore Tournament StarCraft Season 2 [Megathread] Daily Proleagues [ASL21] Ro24 Group F [BSL22] RO32 Group B - Sunday 21:00 CEST
Strategy
Fighting Spirit mining rates Muta micro map competition What's the deal with APM & what's its true value Simple Questions, Simple Answers
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Starcraft Tabletop Miniature Game Nintendo Switch Thread Darkest Dungeon
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread The China Politics Thread European Politico-economics QA Mega-thread Trading/Investing Thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion Cricket [SPORT] Tokyo Olympics 2021 Thread
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
How Streamers Inspire Gamers…
TrAiDoS
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
ASL S21 English Commentary…
namkraft
StarCraft improvement
iopq
Electronics
mantequilla
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2164 users

The Big Programming Thread - Page 367

Forum Index > General Forum
Post a Reply
Prev 1 365 366 367 368 369 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
phar
Profile Joined August 2011
United States1080 Posts
October 04 2013 05:50 GMT
#7321
Also for a point of reference, World of Warcraft uses an RDMS, stores some >1PB of data (>1000TB). So it's definitely possible to do it with an RDMS somewhere in the chain (would be surprised if there weren't some crazy aggressive caches out front).
Who after all is today speaking about the destruction of the Armenians?
drafael
Profile Joined October 2013
3 Posts
October 04 2013 06:02 GMT
#7322
Well put phar

@sluggaslamoo - on a closing note, the thing about redis is that it is high speed enough to actually have this normally local and lose-able data on a shared, replicated server. This means that it's easier to do things like load balancing between your server instances and dealing with stuff like server crashes gracefully, which is something I assumed would be a requirement for MMOs!
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
Last Edited: 2013-10-04 06:07:49
October 04 2013 06:06 GMT
#7323
On October 04 2013 14:46 phar wrote:
Before you select a database tech, you have to have fairly good ideas about what you need in terms of

#1 most important: what is actually being stored?

then:
read latency (random)
read latency (for lots of shit)
write latency (random)
write latency (for lots of shit)
read throughput
write throughput
consistency level of the above operations (do you want to offer really fast not-terribly-consistent reads, or really slow consistent reads? or both?)
how conflicts between machines/replicas/clients/whatever are handled for writes
what happens when one of your db machines takes a shit and dies
what happens when an individual machine doing a read or write query decides that it's cool to suddenly take forever to do disk i/o

etc etc


Before you actually settle on what your actual requirements are, discussing individual db choice is a pointless endeavor.




For example:

for an mmo, maybe it's ok to store most things in a very fast inmemory cache. Things like, "where is this dude standing?, where is that dude standing? what is dude1 doing? what is dude2 doing?"

Maybe then things that are more static (what is each person carrying?) can be stored off the individual server, on some shared db. That db might have much less stringent requirements for latency & throughput. Maybe you only write to this every so often, instead of every action.

But then we're still leaving unanswered what happens if an individual server that has your inmemory cache of stuff-that's-going-on dies, starts being slow like a bitch, or w/e. Who knows? Do we just drop it and say "oops sorry, machine error, all that shit you just did disappeared"? I've played games that do that. It kinda sucks.

There's just too many open questions to have a serious discussion about "what db to use for an mmo." It's just silly to talk about it in this format.


Except that most games do things more or less the same way.

Everything that happens inside the world instance is stored in memory, always.

Some games will lazily and asynchronously store important information to secondary storage so when the server dies, you don't lose everything. You also won't notice this happening as data manipulation in memory is instant and the replication is done in a separate thread.

Server clusters may also use checksums to test synchronisation between servers, if you have clusters that replicate player information in memory.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
October 04 2013 10:13 GMT
#7324
On October 04 2013 09:48 bigglesbiggles wrote:
Show nested quote +
On October 04 2013 01:22 Tobberoth wrote:
How is learning OOP and design patterns a substitute for learning about data structures? How will your knowledge of how a hashtable works help when you need the observer pattern? How will your knowledge of a linked list help you when you need the factory pattern?

Those things are not comparable at all. OOP and design patterns are on a completely different level than data structures.

heh, I think you kind of sidestepped what i was saying there. my frustration is that people use OOP and Design Patterns as a substitute for understanding data structures. data structures and algorithms are much more fundamental tools, and are practically always used in programming. OOP is more situational, and it's debatable whether learning & thinking in canonical design patterns is even helpful at all. in plenty of situations, it is completely nonessential to know either of these things. like anything else in programming, knowing them will enrich your ability as a computer programmer because they will give you a better understanding of programming culture & the available programming techniques. but they are far from the essential tools they're made out to be by the software engineering gurus. what i am saying is that focusing on them at the expense of learning to design data structures and algorithms is a mistake. unless you want to write only enterprise java, in which case disregard everything i have said.

I disagree. As a professional software developer, you will have more daily use of design patterns than knowledge of data structures and algorithms in the majority of positions. How often do you implement a sorting algorithm yourself? How often do you have to sit and ponder which collection type to use? Deciding how to refactor code, how to design a new aspect of the software, how to make up smart solutions for bigger problems, that's what you spend most of your time doing. Optimization is important, in some cases very important, but you do that afterwards with the facts in front of you.

Disregarding anything where you need a good grasp of OOP and design patterns as "enterprise java" just indicates you're a computer scientist who think you'll be working on an OS kernel or device drivers or something similar... when the vast majority of programmers actually do work on larger systems. Your personal preference on what programming you like has no real impact on what's most important to learn in an education aimed at software development.
bigglesbiggles
Profile Joined August 2013
New Zealand30 Posts
October 04 2013 12:17 GMT
#7325
apparently i want a job clipping software components together and writing boilerplate. sounds like all my least favourite parts of my job, where do i sign up? i'm glad to have learned that the business community's assessment of software quality is fact, and is not subject to disputation. design patterns are jobgetter therefore they are also good and work well. argument over. i lose.

here's a thing Dijkstra prepared especially for you and has fired from his grave through me to meet your eyes at this precise moment
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1209.html
truly he is prescient. there are many more fantastic letters that he has written for you to read in his archive.
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
Last Edited: 2013-10-04 12:37:53
October 04 2013 12:36 GMT
#7326
On October 04 2013 21:17 bigglesbiggles wrote:
apparently i want a job clipping software components together and writing boilerplate. sounds like all my least favourite parts of my job, where do i sign up? i'm glad to have learned that the business community's assessment of software quality is fact, and is not subject to disputation. design patterns are jobgetter therefore they are also good and work well. argument over. i lose.

here's a thing Dijkstra prepared especially for you and has fired from his grave through me to meet your eyes at this precise moment
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1209.html
truly he is prescient. there are many more fantastic letters that he has written for you to read in his archive.

No one is disputing the fact that a great grasp of math, algorithms, data structures and all the other low level stuff is important to computer science. What is being disputed is the worth in training droves of programmers to program device drivers/doing research into new programming languages etc when the vast majority of them does not need that knowledge.

If you want to research computer science, obviously you should focus on concepts like algorithms. If you're new to the field or if your goal is to work in IT departments of big companies, screw it, you won't need it to a degree where it's worth wasting years on.

You're being extremely condescending towards enterprise programming. Which is fine, you obviously don't care for it. But there's still tons of programmers needed to do that job.
Abominous
Profile Joined March 2013
Croatia1625 Posts
October 04 2013 12:39 GMT
#7327
On October 04 2013 21:17 bigglesbiggles wrote:
apparently i want a job clipping software components together and writing boilerplate. sounds like all my least favourite parts of my job, where do i sign up? i'm glad to have learned that the business community's assessment of software quality is fact, and is not subject to disputation. design patterns are jobgetter therefore they are also good and work well. argument over. i lose.

here's a thing Dijkstra prepared especially for you and has fired from his grave through me to meet your eyes at this precise moment
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1209.html
truly he is prescient. there are many more fantastic letters that he has written for you to read in his archive.

Spot on, mr. Dijkstra!
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
October 04 2013 13:31 GMT
#7328
On October 04 2013 21:17 bigglesbiggles wrote:
apparently i want a job clipping software components together and writing boilerplate. sounds like all my least favourite parts of my job, where do i sign up? i'm glad to have learned that the business community's assessment of software quality is fact, and is not subject to disputation. design patterns are jobgetter therefore they are also good and work well. argument over. i lose.

here's a thing Dijkstra prepared especially for you and has fired from his grave through me to meet your eyes at this precise moment
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1209.html
truly he is prescient. there are many more fantastic letters that he has written for you to read in his archive.


Yeah boilerplate sucks! Time to code my next website in... ALGOL!


begin
FOR do
REAL;
od;
end
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
Kambing
Profile Joined May 2010
United States1176 Posts
October 04 2013 13:43 GMT
#7329
Thanks for that Dijkstra link, btw. I'm giving a talk in a few weeks and this quote:

I can only describe as improving one's mathematical skills, where I use mathematics in the sense of "the art and science of effective reasoning". As a matter of fact, the challenges of designing high-quality programs and of designing high-quality proofs are very similar, so similar that I am no longer able to distinguish between the two: I see no meaningful difference between programming methodology and mathematical methodology in general.


Is perfect for it. ^_^
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
October 04 2013 15:45 GMT
#7330
Web design question: How would I go about creating something like this (from imgur)?
[image loading]

I'm working on a project and would like to use this kind of functionality, two buttons on opposite ends that can scroll through a list of content. I'm assuming it would have to be done with javascript?
adwodon
Profile Blog Joined September 2010
United Kingdom592 Posts
October 04 2013 16:04 GMT
#7331
On October 05 2013 00:45 enigmaticcam wrote:
Web design question: How would I go about creating something like this (from imgur)?
[image loading]

I'm working on a project and would like to use this kind of functionality, two buttons on opposite ends that can scroll through a list of content. I'm assuming it would have to be done with javascript?


A bit of googling could help you on this one:

http://www.1stwebdesigner.com/css/fresh-jquery-image-gallery-display-solutions/

Just google jQuery image gallery or something to that effect. There's a tonne of straight forward solutions.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-10-04 16:20:35
October 04 2013 16:14 GMT
#7332
How are composition and aggregation put in practice?

I think I know theory, e.g.

Aggregation: Laptop 0..1 ♢-------- 0..* USB mouse
Composition: Laptop 1 ♦------- 0..1 Touchpad

In the 1st case, there shouldn't be strict ownership. So if you destroy the laptop, the USB mouse can still exist.
In the 2nd case, there is strict ownership. If you destroy the laptop, then its parts (Touchpad in this case) cease to exist.

However, how does one put this in practice? Is it supposed to be only design methodology?

If you can provide some simple C/Java code, it would be nice.. Other languages like C++ may also be ok as long as they're readable.
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
October 04 2013 16:15 GMT
#7333
On October 05 2013 01:04 adwodon wrote:A bit of googling could help you on this one:

http://www.1stwebdesigner.com/css/fresh-jquery-image-gallery-display-solutions/

Just google jQuery image gallery or something to that effect. There's a tonne of straight forward solutions.

Thanks! Website design is still very foreign to me, so I never know quite where to start.
Frigo
Profile Joined August 2009
Hungary1023 Posts
October 04 2013 16:36 GMT
#7334
On October 04 2013 12:16 sluggaslamoo wrote:
Show nested quote +
On October 04 2013 10:34 Frigo wrote:
For example there is an MMORPG implementing component based entities in a relational database with strict concurrency guarantees and a nice ability to scale. Can you say the same thing about OOP based solutions? OOP based solutions can not be stored in arbitrary storages, they do not scale.


I don't know what paradigms have to do with database performance.

A lot actually. ECS translates rather directly to either relational tables or key-value stores, it completely circumvents the object-relational mismatch and the expensive operations to translate between objects and database entries.

The way I implemented my component storage is essentially a Map<Class<? extends Component>, Map<int, Component>>, in other words for every component type I have associations between entity ids and component instances of the particular component type.

The choice of the inner map implementation is important, since there is a tradeoff involved between space and performance. I have two implementations for it, one is a simple ArrayList<T extends Component> with optimal lookup performance, the other is a Trove TIntObjectHashMap which stores sparse maps in a space efficient manner while still providing excellent performance. In my case entity ids are pooled int values, meaning they are reused and are always between [0..n), but Trove maps would work with non-pooled long values too, and is probably preferred when replication and synchronization is taken into account.

It is not hard to see the parallels with databases: the first choice corresponds to storing components in a huge table where columns are component types and rows are entity ids, cells are either null or component instances, the second choice corresponds to a key-value database with component type and entity id as key(s). It is simple and flexible enough to conform to the addressing method of a particular key-value store or document database.

It is also easy to see that it would not take much work to actually store all these components in an in-memory, or cached on-disk database, with all the nifty features modern databases offer. In my case I would just create a new ComponentStorage implementation. However at the moment database backed components are not the direction I am going.

However you should look at CouchDB which is a document oriented database (as opposed to a relational database) which scales much better than RDBMS through replication and the fact that it doesn't use tables. Especially for games, relational databases are an inferior solution even just performance wise, not to mention how much easier it is to maintain code-wise.

For the record you normally use an ODM with CouchDB which is object oriented.


A few months ago I was trying to sort through the chaos that is open source nosql databases and found LevelDB and LMDB among a few others to be interesting enough to consider (for other purposes as well).

Basically what would be nicest is a fast key-value store or document database that is either a cached on-disk db or a memory mapped on-disk db. Replication and such features are nice but they introduce another tradeoff and additional problems so I don't want to deal with that for quite a long while.
http://www.fimfiction.net/user/Treasure_Chest
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
Last Edited: 2013-10-04 16:49:27
October 04 2013 16:45 GMT
#7335
On October 05 2013 01:14 darkness wrote:
How are composition and aggregation put in practice?

I think I know theory, e.g.

Aggregation: Laptop 0..1 ♢-------- 0..* USB mouse
Composition: Laptop 1 ♦------- 0..1 Touchpad

In the 1st case, there shouldn't be strict ownership. So if you destroy the laptop, the USB can still exist.
In the 2nd case, there is strict ownership. If you destroy the laptop, then its parts (Touchpad in this case) cease to exist.

However, how does one put this in practice? Is it supposed to be only design methodology?

If you can provide some simple C/Java would be nice. Other languages like C++ may also be ok as long as they're readable.


All pseudocode:

// Base class for creature behavior defining things all creatures do
// but leaves the actual process of doing stuff open to the implementation
abstract class Behavior
{
public abstract void DoSomething();
}

// Class specificly for monster behavior. Attack player, drop loot, etc.
// Yes, inheritance. Because you can use inheritance and composition at the same time.
class MonsterBehavior extends Behavior
{
public void DoSomething()
{
this->AttackPlayer();
}
}

// Class specificly for NPC behavior, e.g. give quests, stand around, ...
class NpcBehavior extends Behavior
{
public void DoSomething()
{
this->Say("It's dangerous to go alone. Take this.");
}
}

// Class for all game entities. Takes a behavior parameter that
// specifies what the entity is actually doing.
class GameEntity
{
private Behavior behavior = null;

public GameEntity(Behavior behavior)
{
this->behavior = behavior;
}

public void DoSomething()
{
this->behavior->DoSomething();
}
}

// Later you just need to give the entity a behavior to make it do something.
// You don't need to create an inheritance tree to subclass GameEntity
// with the MonsterGameEntity class, etc., you just specify the behavior
// and you can mix and match with other properties
class Game
{
public void CreateMonster()
{
GameEntity monster = new GameEntity(new MonsterBehavior());
...
}

public void CreateNPC()
{
GameEntity npc = new GameEntity(new NpcBehavior());
}
}


This is a simplified but real-world applicable example of composition. You have a class that uses another class to specify it's behavior, meaning you can reuse the same behavior for different entities without having to subclass it. You can even change the behavior of the entities on-the-fly, e.g. when a quest makes an entity hostile.

// Base class for gaming consoles
class Console
{
public List<Controller> attachedControllers = new List<Controller>();

public void AttachController(Controller controller)
{
this->attachedControllers->add(controller);
}
}

// Base class for controllers
class Controller
{
}

// X-Box one console class
class XBoneConsole extends Console
{
}

// Controller for the X-Box one
class XBoneController
{
}

// Your living room might have an X-Box one with a controller attached
class LivingRoom
{
public Console console = null;

public LivingRoom()
{
this->console = new XBoneConsole();
this->console->AttachController(new XBoneController());
}
}


It looks very similar, but the Controllers don't define the (classwise) behavior of the Console, they are just part of it, they don't change the Console and they exist and have a meaning without it.
berated-
Profile Blog Joined February 2007
United States1134 Posts
October 05 2013 00:22 GMT
#7336
On October 05 2013 01:36 Frigo wrote:
Show nested quote +
On October 04 2013 12:16 sluggaslamoo wrote:
On October 04 2013 10:34 Frigo wrote:
For example there is an MMORPG implementing component based entities in a relational database with strict concurrency guarantees and a nice ability to scale. Can you say the same thing about OOP based solutions? OOP based solutions can not be stored in arbitrary storages, they do not scale.


I don't know what paradigms have to do with database performance.

A lot actually. ECS translates rather directly to either relational tables or key-value stores, it completely circumvents the object-relational mismatch and the expensive operations to translate between objects and database entries.

The way I implemented my component storage is essentially a Map<Class<? extends Component>, Map<int, Component>>, in other words for every component type I have associations between entity ids and component instances of the particular component type.

The choice of the inner map implementation is important, since there is a tradeoff involved between space and performance. I have two implementations for it, one is a simple ArrayList<T extends Component> with optimal lookup performance, the other is a Trove TIntObjectHashMap which stores sparse maps in a space efficient manner while still providing excellent performance. In my case entity ids are pooled int values, meaning they are reused and are always between [0..n), but Trove maps would work with non-pooled long values too, and is probably preferred when replication and synchronization is taken into account.

It is not hard to see the parallels with databases: the first choice corresponds to storing components in a huge table where columns are component types and rows are entity ids, cells are either null or component instances, the second choice corresponds to a key-value database with component type and entity id as key(s). It is simple and flexible enough to conform to the addressing method of a particular key-value store or document database.

It is also easy to see that it would not take much work to actually store all these components in an in-memory, or cached on-disk database, with all the nifty features modern databases offer. In my case I would just create a new ComponentStorage implementation. However at the moment database backed components are not the direction I am going.

Show nested quote +
However you should look at CouchDB which is a document oriented database (as opposed to a relational database) which scales much better than RDBMS through replication and the fact that it doesn't use tables. Especially for games, relational databases are an inferior solution even just performance wise, not to mention how much easier it is to maintain code-wise.

For the record you normally use an ODM with CouchDB which is object oriented.


A few months ago I was trying to sort through the chaos that is open source nosql databases and found LevelDB and LMDB among a few others to be interesting enough to consider (for other purposes as well).

Basically what would be nicest is a fast key-value store or document database that is either a cached on-disk db or a memory mapped on-disk db. Replication and such features are nice but they introduce another tradeoff and additional problems so I don't want to deal with that for quite a long while.


Can you please explain "expensive operations to translate between objects and database entries"? Are you speaking to trying to persist large object graphs in a normalized manner? Or?

Also, how is Map<Class<? extends Component>,Map<int, Component>> not object oriented?

If you need a fast key value store though, redis or memcached might prove helpful.
Sub40APM
Profile Joined August 2010
6336 Posts
October 05 2013 07:29 GMT
#7337
not sure if this is the right thread, but I just clicked through in an email -- stupidly -- that linked to the real amazon site that might have been sent by a spammer. Is it possible to have a link that links me correctly to amazon but also does something else to my computer?
phar
Profile Joined August 2011
United States1080 Posts
Last Edited: 2013-10-05 07:36:34
October 05 2013 07:35 GMT
#7338
This is not the right thread.

But anyways, it's possible that you could be directed to a site, have it do something bad, and then have it redirect automatically to another site. That's not going to very typical, and if your internet isn't super fast you likely would be able to see it happening.

It's possible Amazon has some kind of referral program that would net someone a certain % of a purchase if you bought after using a link they clicked on. I don't know what Amazon's setup is like, so that may not be possible.

Do you have the link in the email? One way is to copy the link (actually rightclick on the link and select copy url or w/e, sometimes the link you see and the link go to after clicking on are not the same), paste it somewhere, and see what the leftmost domain name is. E.g. if you see

foo.bar.cz/hi?somestuff=amazon.com/b/ref=asdfasd


Then it's not linking to amazon. It's going to bar.cz
Who after all is today speaking about the destruction of the Armenians?
Sub40APM
Profile Joined August 2010
6336 Posts
October 05 2013 07:40 GMT
#7339
Thanks! Yes it just links to amazon.
phar
Profile Joined August 2011
United States1080 Posts
Last Edited: 2013-10-05 16:56:22
October 05 2013 16:55 GMT
#7340
Ok cool, you should be fine then. Just make sure that the link you copy is not just the display link, and you likely have nothing to worry about.
Who after all is today speaking about the destruction of the Armenians?
Prev 1 365 366 367 368 369 1032 Next
Please log in or register to reply.
Live Events Refresh
WardiTV Team League
11:00
Playoffs Day 2
WardiTV890
ComeBackTV 591
IndyStarCraft 177
Rex97
3DClanTV 57
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
IndyStarCraft 177
Rex 97
trigger 51
StarCraft: Brood War
Britney 59614
Sea 6642
Jaedong 1587
EffOrt 1070
Shuttle 653
Mini 582
Hyuk 498
Light 356
firebathero 346
ggaemo 247
[ Show more ]
Zeus 189
Noble 177
hero 148
Last 124
PianO 99
Shinee 65
Pusan 52
Sexy 49
[sc1f]eonzerg 47
ToSsGirL 42
Hm[arnc] 37
Shine 28
Movie 26
scan(afreeca) 24
910 18
Sacsri 17
Barracks 15
Terrorterran 14
yabsab 14
Rock 13
GoRush 9
Icarus 7
Dota 2
Gorgc9814
qojqva1434
syndereN259
Counter-Strike
kennyS1934
fl0m131
Heroes of the Storm
Khaldor162
Other Games
singsing1835
B2W.Neo1537
Lowko354
DeMusliM272
XaKoH 212
RotterdaM118
Hui .115
QueenE60
Organizations
Counter-Strike
PGL14912
Other Games
BasetradeTV1071
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
CasterMuse 0
sctven
[ Show 14 non-featured ]
StarCraft 2
• StrangeGG 60
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Michael_bg 3
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos1991
• TFBlade1485
Upcoming Events
uThermal 2v2 Circuit
1h 6m
IPSL
2h 6m
Hawk vs TBD
StRyKeR vs TBD
BSL
5h 6m
n0maD vs perroflaco
TerrOr vs ZZZero
MadiNho vs WolFix
DragOn vs LancerX
Sparkling Tuna Cup
20h 6m
WardiTV Team League
21h 6m
OSC
23h 6m
BSL
1d 5h
Sterling vs Azhi_Dahaki
Napoleon vs Mazur
Jimin vs Nesh
spx vs Strudel
IPSL
1d 5h
Artosis vs TBD
Napoleon vs TBD
Replay Cast
1d 19h
Wardi Open
1d 20h
[ Show More ]
Afreeca Starleague
1d 20h
Soma vs YSC
Sharp vs sSak
Monday Night Weeklies
2 days
Afreeca Starleague
2 days
Snow vs PianO
hero vs Rain
GSL
2 days
Replay Cast
3 days
Kung Fu Cup
3 days
The PondCast
4 days
Escore
5 days
Korean StarCraft League
6 days
CranKy Ducklings
6 days
Liquipedia Results

Completed

Escore Tournament S2: W2
RSL Revival: Season 4
NationLESS Cup

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
StarCraft2 Community Team League 2026 Spring
Nations Cup 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026

Upcoming

Escore Tournament S2: W3
Acropolis #4
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
RSL Revival: Season 5
WardiTV TLMC #16
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.