• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 14:05
CET 20:05
KST 04:05
  • 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
RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12
Community News
Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets0$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)12Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns7[BSL21] Non-Korean Championship - Starts Jan 103SC2 All-Star Invitational: Jan 17-1822
StarCraft 2
General
When will we find out if there are more tournament SC2 Spotted on the EWC 2026 list? Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns Spontaneous hotkey change zerg
Tourneys
$25,000 Streamerzone StarCraft Pro Series announced $21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7) WardiTV Winter Cup WardiTV Mondays SC2 AI Tournament 2026
Strategy
Simple Questions Simple Answers
Custom Maps
Map Editor closed ?
External Content
Mutation # 508 Violent Night Mutation # 507 Well Trained Mutation # 506 Warp Zone Mutation # 505 Rise From Ashes
Brood War
General
[ASL21] Potential Map Candidates Potential ASL qualifier breakthroughs? A cwal.gg Extension - Easily keep track of anyone BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
[Megathread] Daily Proleagues [BSL21] Grand Finals - Sunday 21:00 CET [BSL21] Non-Korean Championship - Starts Jan 10 SLON Grand Finals – Season 2
Strategy
Game Theory for Starcraft Simple Questions, Simple Answers Current Meta [G] How to get started on ladder as a new Z player
Other Games
General Games
Beyond All Reason Nintendo Switch Thread Awesome Games Done Quick 2026! Mechabellum Stormgate/Frost Giant Megathread
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
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
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread European Politico-economics QA Mega-thread Trading/Investing Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
Anime Discussion Thread
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List TL+ Announced
Blogs
My 2025 Magic: The Gathering…
DARKING
Physical Exercise (HIIT) Bef…
TrAiDoS
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
James Bond movies ranking - pa…
Topin
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1166 users

The Big Programming Thread - Page 930

Forum Index > General Forum
Post a Reply
Prev 1 928 929 930 931 932 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.
Silvanel
Profile Blog Joined March 2003
Poland4740 Posts
Last Edited: 2017-12-13 15:53:36
December 13 2017 15:52 GMT
#18581
Totally off topic.
Among many advantages of working with hardware there are two (that i know of) significant disadvantages. One is the fact that it is hard to work remotly since You need the hardware itself. The other (that i just experienced today) is that it is painfull and tiring to move. My team just had to move to a different floor in same building and it took us most of the working day. And even now not everything is working. We have more space now though.
Pathetic Greta hater.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
December 13 2017 17:13 GMT
#18582
What kind of hardware do you work with. I remember in high school I had a class where we worked with hardware in suboptimal conditions, and we'd break (often via static electricity) our hardware all the time. But we were kids so we weren't too careful.
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
December 13 2017 17:21 GMT
#18583
For all you algorithm enthusiasts, I got one that I haven't been able to figure out. Maybe you can help me.

You have a given set of items. All items have four metrics, A, B, C, and D. Combining items together produces a net sum of all four metrics. For example, if you combine items 1 and 2 below, you get a net sum of 0 across all four metrics.

Item 1 (A = 1, B = 2, C = 3, D = 4)
Item 2 (A = -1, B = -2, C = -3, D = -4)
Sum (A = 0,B = 0,C = 0,D = 0)

Now let's say you have a target net sum. You want some combination of items that yields your target net sum, but you want it using the least number of items possible. Example:

Item 1 (A = 0, B = 10, C = 0, D = 0)
Item 2 (A = 0, B = -5, C = 0, D = 0)
Item 3 (A = 0, B = 5, C = 0, D = 0)
Target: (A = 0, B = 5, C = 0, D = 0)

You can reach the target by combining items 1 and 2. But it would be more efficient to use just item 3 by itself.

I've tried a dynamic programming approach, something similar to the knapsack problem. But I can't figure out how to define the boundaries. A smaller combination of a solution might seem to be way off, and can go negative or positive on some or all metrics, but all together it matches perfectly. Conversely, with the knapsack problem you can start at 0 weight and increment up to the max weight. Any ideas? Assume that the given set of items can in fact produce the target.
TMG26
Profile Joined July 2012
Portugal2017 Posts
Last Edited: 2017-12-13 18:28:39
December 13 2017 18:22 GMT
#18584
Convert it into a MaxSAT or MaxSMT(if number bounds are high) and run it in a solver.

Cheouckout z3 from microsoft research. I don't know if it supports maxSMT. But even with just SMT you can quickly work around it. It has a python api that I used in university.
Supporter of the situational Blink Dagger on Storm.
raNazUra
Profile Joined December 2012
United States10 Posts
Last Edited: 2017-12-13 18:30:51
December 13 2017 18:22 GMT
#18585
On December 14 2017 02:21 enigmaticcam wrote:
For all you algorithm enthusiasts, I got one that I haven't been able to figure out. Maybe you can help me.

You have a given set of items. All items have four metrics, A, B, C, and D. Combining items together produces a net sum of all four metrics. For example, if you combine items 1 and 2 below, you get a net sum of 0 across all four metrics.

Item 1 (A = 1, B = 2, C = 3, D = 4)
Item 2 (A = -1, B = -2, C = -3, D = -4)
Sum (A = 0,B = 0,C = 0,D = 0)

Now let's say you have a target net sum. You want some combination of items that yields your target net sum, but you want it using the least number of items possible. Example:

Item 1 (A = 0, B = 10, C = 0, D = 0)
Item 2 (A = 0, B = -5, C = 0, D = 0)
Item 3 (A = 0, B = 5, C = 0, D = 0)
Target: (A = 0, B = 5, C = 0, D = 0)

You can reach the target by combining items 1 and 2. But it would be more efficient to use just item 3 by itself.

I've tried a dynamic programming approach, something similar to the knapsack problem. But I can't figure out how to define the boundaries. A smaller combination of a solution might seem to be way off, and can go negative or positive on some or all metrics, but all together it matches perfectly. Conversely, with the knapsack problem you can start at 0 weight and increment up to the max weight. Any ideas? Assume that the given set of items can in fact produce the target.


Just so you're aware, this is going to be an exponential running time. The single-metric case is equivalent to the subset sum problem, and the additional metrics make the dynamic programming solution that is pseudopolynomial time described there not work, since the items need to be sorted.

I suppose the only way I can think of doing it that isn't brute force is to define OPT(a,b,c,d,n) = True if Target(a,b,c,d) is possible using the first n items. Your table would then be a 5-dimensional table where the first 4 dimensions are bounded by the minimum and maximum possible sums of that metric and the last dimension is the number of items.
Initialize the table as all False, then:
x = items[0]
OPT[x['A']][x['B']][x['C']][x['D']][0] = True

You can then fill in the table one slice at a time with the loop
for i in range(1, len(items)):
iA, iB, iC, iD = items[i]['A'], items[i]['B'], items[i]['C'], items[i]['D']
OPT[iA][iB][iC][iD][n] = True
for a in range(minA, maxA):
for b in range(minB, maxB):
for c in range(minC, maxC):
for d in range(minD, maxD):
if OPT[a][b][c][d][n-1] or OPT[a-iA][b-iB][c-iC][d-iD]:
OPT[a][b][c][d][n] = True


And now that I think about it, this is only for checking for existence. If you want an actual set (or the minimal set), you can store pointers in the table as you go for how to create each possible set, and if there's two possible ways at any point just keep the smaller set. Then check OPT[target metrics][n] for your final answer.

Note that since this is pseudopolynomial, it's not going to necessarily be better than brute force. Brute force is exponential in the number of items in the input, whereas the dynamic programming approach is dependent on the size of the values in the metrics. But that's the case for any pseudopolynomial DP approach to these kinds of problems, like knapsack or subset sum.

Edit: Of course, if this is for speed/productionalization rather than just understanding the problem, you should probably do what TMG suggests, which is often the right answer for any NP-complete problem that you need to solve quickly =P
Speak the truth, even if your voice shakes
TMG26
Profile Joined July 2012
Portugal2017 Posts
December 13 2017 18:32 GMT
#18586
Exactly.
For any np-complete problem you should always convert to SAT or SMT if you need performance. Because there is plenty of research into those and tgere is active competition to keep improving the solvers, you can't compete with your own algoritm unless the use case uses so little data that the overhead of converting is bigger than the difference.
That or you might as well prove that NP-complete is actuallt part of P.
Supporter of the situational Blink Dagger on Storm.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
December 13 2017 19:06 GMT
#18587
for fun I had started working on it before I realized I had ran into the exact same scenario as with the TSP, except i was trying to solve linear dependence relationships instead of path lengths.

Would this be a linear programming problem?

I feel like there are probably some heuristics like looking for combinations that lead to the correct sum of all elements, or maybe trying to leave out lin. indep vectors first since 2 or more of those equal one dependent vector (though what do i know, that may just end up making things worse)
Manit0u
Profile Blog Joined August 2004
Poland17596 Posts
Last Edited: 2017-12-13 22:45:18
December 13 2017 21:41 GMT
#18588
On December 14 2017 02:21 enigmaticcam wrote:
For all you algorithm enthusiasts, I got one that I haven't been able to figure out. Maybe you can help me.

You have a given set of items. All items have four metrics, A, B, C, and D. Combining items together produces a net sum of all four metrics. For example, if you combine items 1 and 2 below, you get a net sum of 0 across all four metrics.

Item 1 (A = 1, B = 2, C = 3, D = 4)
Item 2 (A = -1, B = -2, C = -3, D = -4)
Sum (A = 0,B = 0,C = 0,D = 0)

Now let's say you have a target net sum. You want some combination of items that yields your target net sum, but you want it using the least number of items possible. Example:

Item 1 (A = 0, B = 10, C = 0, D = 0)
Item 2 (A = 0, B = -5, C = 0, D = 0)
Item 3 (A = 0, B = 5, C = 0, D = 0)
Target: (A = 0, B = 5, C = 0, D = 0)

You can reach the target by combining items 1 and 2. But it would be more efficient to use just item 3 by itself.

I've tried a dynamic programming approach, something similar to the knapsack problem. But I can't figure out how to define the boundaries. A smaller combination of a solution might seem to be way off, and can go negative or positive on some or all metrics, but all together it matches perfectly. Conversely, with the knapsack problem you can start at 0 weight and increment up to the max weight. Any ideas? Assume that the given set of items can in fact produce the target.



In Ruby you can do something like that:


items = [
{ a: 0, b: 10, c: 0, d: 0 },
{ a: 0, b: -15, c: 0, d: 0 },
{ a: 0, b: -5, c: 0, d: 0 },
{ a: 5, b: 5, c: 0, d: 0 }
]
target = { a: 0, b: 5, c: 0, d: 0 }

def solve(items, target)
# check if any single one can solve it
results = items.select { |item| item == target }

# if we found any matches, we can just return them
if results.any?
puts results.inspect
return
end

# otherwise we have to do the hard work
return parse(items, target)
end

def parse(items, target)
min = 0
max = items.length
result = []

(min..max - 1).each do |x|
(1..max - x).each do |y|
chosen = items.slice(x, y)
intermediate = total(chosen)

if intermediate == target
result = chosen if result.empty? || chosen.length < result.length
end

if y > 2
(1..y).each do |sub_x|
(1..y - sub_x).each do |sub_y|
chosen_skip = [chosen[0]] + chosen.slice(sub_x, sub_y)
intermediate = total(chosen_skip)

if intermediate == target
result = chosen_skip if result.empty? || chosen_skip.length < result.length
end
end
end
end
end
end

result
end

def total(items)
items.inject({ a: 0, b: 0, c: 0, d: 0 }) { |result, item|
item.each do |key, value|
result[key] += value
end

result
}
end

puts solve(items, target).inspect


I think that something like that might work... I mean, the script works fine, I'm just not sure if it's very optimal

You can check it out here: https://repl.it/ (just choose Ruby)

Edit: I should clarify that I'm sure that the script isn't very optimal. There's plenty of duplicated chosen being selected. I think you could maybe optimize it with some memoization or something.
Time is precious. Waste it wisely.
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
December 13 2017 22:02 GMT
#18589
Thanks for the suggestions guys! I'm trying out a recursive algorithm with hashing to reduce the number of combinations to look for; hoping it will yield something reasonably fast. If it doesn't work out, I'll give some of your suggestions a try.
Manit0u
Profile Blog Joined August 2004
Poland17596 Posts
Last Edited: 2017-12-14 03:36:43
December 14 2017 00:01 GMT
#18590
Made it more robust and provided a recursive solution:


@items = [
{ a: 0, b: 10, c: 0, d: 0 },
{ a: 0, b: -15, c: 0, d: 0 },
{ a: 0, b: -5, c: 0, d: 0 },
{ a: 5, b: 0, c: 0, d: 0 },
{ a: 2, b: 0, c: 0, d: 0 },
{ a: 1, b: 2, c: -5, d: -128 },
{ a: -1, b: 3, c: 5, d: 128 }
]
@target = { a: 0, b: 5, c: 0, d: 0 }
@results = []

def solve
# check if any single one can solve it
@results = @items.select { |item| item == @target }

# if we found any matches, we can just return them
return @results if @results.any?

# otherwise we have to do the hard work
check_for_matches(0, 2)

# no matches found
return @results if @results.empty?

# drop duplicates
@results = @results.uniq

# check for shortest
len = @results.min { |x, y| x.length <=> y.length }.length

@results.select { |result| result.length == len }
end

def check_for_matches(x, y)
return if x == @items.length

chosen = @items.slice(x, y)
check_result(chosen)
check_subsequent(chosen, 2, 1) if y > 2

return check_for_matches(x, y + 1) if y < @items.length - x

check_for_matches(x + 1, 2)
end

def check_subsequent(chosen, x, y)
return if x == chosen.length

check_result([chosen[0]] + chosen.slice(x, y))

return check_subsequent(chosen, x, y + 1) if x + y < chosen.length

check_subsequent(chosen, x + 1, 1)
end

def check_result(chosen)
return if total(chosen) != @target

@results << chosen
end

def total(items)
items.inject({ a: 0, b: 0, c: 0, d: 0 }) { |result, item|
item.each do |key, value|
result[key] += value
end

result
}
end

puts solve.inspect

# =>
[
[
{ :a=>0, :b=>10, :c=>0, :d=>0 },
{ :a=>0, :b=>-5, :c=>0, :d=>0 }
],
[
{ :a=>1, :b=>2, :c=>-5, :d=>-128 },
{ :a=>-1, :b=>3, :c=>5, :d=>128 }
]
]


Note that there's plenty of superfluous steps/stuff but it's easier to debug this way and easier to see what could be optimized further.
Time is precious. Waste it wisely.
Silvanel
Profile Blog Joined March 2003
Poland4740 Posts
December 14 2017 08:13 GMT
#18591
On December 14 2017 02:13 travis wrote:
What kind of hardware do you work with. I remember in high school I had a class where we worked with hardware in suboptimal conditions, and we'd break (often via static electricity) our hardware all the time. But we were kids so we weren't too careful.


We make hardware and software for automotive (infotainment, navigation, updates, bluetooth, audio etc.). My location mainly for Mercedes. We use something called testbench to connect to car computer (which is in fact several separate computers) and simulate environment. And if You need several of them (like i do) it takes a lot of space and time to setup.
Pathetic Greta hater.
Manit0u
Profile Blog Joined August 2004
Poland17596 Posts
Last Edited: 2017-12-14 17:00:10
December 14 2017 16:49 GMT
#18592
I have another (not)fun algo for anyone interested. It's a test from algorithms classes at the local uni. I'll shorten the description because it's like 2-3 pages long about poor people of Algolia who have to be judged by their god Programistus to enter the promised land of Informia...

Input:
range of numbers from 0 to 1,000,000 (ids)

Operations:
- all even numbers get double the sum of their siblings added
- all odd numbers get (sum of siblings/3) deduced from them (save as absolute value from this operation)
- all odd numbers after above operations are discarded
- all numbers that are within delta 1 of arithmetic average of remaining numbers are discarded
- numbers are sorted in descending order

Output:
- doesn't specify, I assume the count of numbers left is sufficient

My solution:
+ Show Spoiler +


def select_even(ids)
ids.select { |id| id % 2 == 0 }
end

def select_odd(ids)
ids.select { |id| id % 2 != 0 }
end

def sum_siblings(id)
if id == 0
id + 1
elsif id == 1_000_000
id - 1
else
(id - 1) + (id + 1)
end
end

def bless_even(id)
id + (sum_siblings(id) * 2)
end

def bless_odd(id)
(id - (sum_siblings(id) / 3)).abs
end

def bless(ids)
blessed_even = select_even(ids).map { |id| bless_even(id) }
blessed_odd = select_odd(ids).map { |id| bless_odd(id) }

blessed_even + blessed_odd
end

def filter_average(ids, tolerance)
mean = (ids.inject(:+) / ids.length).to_f

ids.select { |id| (id - mean).abs >= tolerance }
end

def pass_judgement(ids, tolerance)
blessed = bless(ids)
filtered = filter_average(select_even(blessed), tolerance)

filtered.sort.reverse
end

ids = (0..1_000_000)
tolerance = 1

puts pass_judgement(ids, tolerance).length # => 666667



It's as stupid as it is useless I guess... It's also not very specific so I had to asume some things (like operations on odd and even numbers happening in isolation to prevent endless loops and delta value - the original assignment only mentioned 'close to arithmetic average')
Time is precious. Waste it wisely.
Acrofales
Profile Joined August 2010
Spain18180 Posts
Last Edited: 2017-12-14 17:59:54
December 14 2017 17:57 GMT
#18593
I'm assuming the first two steps are performed simultaneously. If not (you first do the even numbers and after that the odd numbers, then modify accordingly. And if the operations are done inplace, that's another different solution. Can all still be done in the same loop, though:


+ Show Spoiler +


def dumbstuff():
values = list()
values.append(2)
values.append(1000000 + 2*999999)
foreach i in range(1, 1000000):
if i%2 == 0:
values.append(5*i)
else:
if floor(i/3)%2 == 0:
values.append(i/3)
avg = mean(values)
return sorted(filter(lambda v: abs(v - avg) > 1, values), reverse=True)


I hope I wasn't dumb there.

E: added code tags
phar
Profile Joined August 2011
United States1080 Posts
December 14 2017 21:22 GMT
#18594
On December 13 2017 19:56 travis wrote:
But how is that different than divising a formula or recipe for a chemical, medicine, material, etc? That's also just math. It's literally a an algorithm. So why is it commonly accepted that patents for this makes sense, but patents for digital recipes do not?

I think the distinction is arbitrary and unfair.

(that said, you actually can patent algorithms and ideas, if properly presented to the patent office. but you aren't supposed to be able to)

Bear in mind that a lot of drug patents these days tend to be on synthesis or delivery system, not just the underlying chemical itself.

This shit is very complicated, and there's an insane amount of money in it.
Who after all is today speaking about the destruction of the Armenians?
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
Last Edited: 2017-12-15 01:44:21
December 15 2017 01:31 GMT
#18595
So, while playing with my TSP stuff, I think I have come up with a way to create "sets" that have < O(n) complexity for intersection, and maybe O(1) equality test (it's hard to say... It's probably not, but it's good good). Well, with some overhead to any add, it's O(1) for sure.

And, this is without having to hash every element as a key pointing to the sets. Without having to hash any of the elements, actually.

They are kind of specialized in use, though.
phar
Profile Joined August 2011
United States1080 Posts
Last Edited: 2017-12-15 06:41:52
December 15 2017 06:41 GMT
#18596
You can do set intersection in O(n/sqrt(word-length-in-bits)) with some futzing. It's still technically O(n), but if you wanna be lax about it you can call that <O(n).

yea here's the MSR paper on it from awhile back: https://www.microsoft.com/en-us/research/wp-content/uploads/2011/01/p255-DingKoenig.pdf

I am skeptical about constant equality.
Who after all is today speaking about the destruction of the Armenians?
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
Last Edited: 2017-12-15 14:48:47
December 15 2017 14:48 GMT
#18597
I saw that! I feel like they are a bit misleading though. It seems that the setup time required to be to do intersection that fast would make it actually take more time in the long run. At least that's what I got from glancing at their preprocessing section.

Perhaps it is good for certain applications, though. But something I didn't see (admittedly only skimmed the article), is what the overhead is from a single add or delete from one of their sets. I have a suspicion it isn't pretty.

Regarding constant time equality, it's already out there!

I think, umm, Daniel Yellin was the author of the paper I saw. I also saw one from watson labs




And moving to a different topic, I have a question for you guys that probably isn't asked much.

Let's say I simply have too much data to store in memory. I need to write it to the hard drive.
So, say I have a 10gb array of data. I write it to the HD, and then do a series of operations on it (let's say 10), where I pull out a chunk of it(maybe 5gb), do the operations, and write the results to the HD. Eventually, I will have a 2nd array on the HD too (where all my results went).

So, actual operations start once I have my data prepared in memory, but between sets of operations I am reading or writing a huge chunk of data to the HD.

What kind of performance hit will I be taking, assuming the user has a SSD. Is there a chance data will be corrupted(enough to worry about)? If so, how could I mitigate that?

Thanks!
phar
Profile Joined August 2011
United States1080 Posts
Last Edited: 2017-12-15 18:16:46
December 15 2017 18:15 GMT
#18598
On December 15 2017 23:48 travis wrote:
What kind of performance hit will I be taking, assuming the user has a SSD.


If you can the disk writes asynchronously while doing other stuff, not much to worry about. If your computation generates less data than the sequential write speed of your SSD (what, 500MB/s or higher now?) then it won't bottleneck there.

If you need to do blocking writes bit by bit, then the latency of an ssd write is something on the order of 10,000x slower than memory, 100,000x slower than L3 cache, and 1,000,000x (or more) slower than L1 cache / register. But that's just for initial write, so it depends on how much you need to block on it, and what your throughput is.

On December 15 2017 23:48 travis wrote:
Is there a chance data will be corrupted(enough to worry about)? If so, how could I mitigate that?

Yes. Mitigation: checksums, different filesystems (zfs is a thing? idk), write to multiple disks, etc. It really depends on what your failure cases that you care about are. Do you just want to avoid local file corruption, but don't care if e.g. the building burns down and you lose all data? Then it's pretty easy. If you're like Amazon/Google/etc and want to fail gracefully if a whole datacenter gets nuked, then you need to be a bit more careful and write to a proper distributed file storage system.


r.e. yellin paper, I'm unfamiliar, but a quick search shows a couple of yellin algos for set equality that are O(log(n)) and O((log(n))^2). Not sure about constant still, that just feels off.
Who after all is today speaking about the destruction of the Armenians?
Isualin
Profile Joined March 2011
Germany1903 Posts
December 16 2017 06:50 GMT
#18599
https access is restricted to admins on teamliquid, does anyone know why this is the case? i mean why wouldn't they use https for everyone
| INnoVation | The literal god TY | ByuNjwa | LRSL when? |
Acrofales
Profile Joined August 2010
Spain18180 Posts
December 16 2017 08:10 GMT
#18600
On December 16 2017 15:50 Isualin wrote:
https access is restricted to admins on teamliquid, does anyone know why this is the case? i mean why wouldn't they use https for everyone

http://www.teamliquid.net/forum/website-feedback/527276-https-access-only-available-to-staff
Prev 1 928 929 930 931 932 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 5h 56m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
UpATreeSC 303
JuggernautJason142
White-Ra 122
BRAT_OK 121
SC2Nice 43
MindelVK 34
StarCraft: Brood War
Shuttle 413
firebathero 138
Mong 113
Dewaltoss 98
scan(afreeca) 19
Dota 2
qojqva4099
Counter-Strike
FalleN 826
Heroes of the Storm
Liquid`Hasu464
Other Games
Grubby4567
Gorgc2931
Liquid`RaSZi2156
B2W.Neo1619
FrodaN923
Beastyqt643
ceh9473
Fuzer 326
ArmadaUGS275
DeMusliM243
QueenE127
mouzStarbuck48
Mew2King35
Organizations
Other Games
gamesdonequick3446
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 18 non-featured ]
StarCraft 2
• StrangeGG 65
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• HerbMon 28
• FirePhoenix10
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV537
League of Legends
• Nemesis3001
• TFBlade1115
• Shiphtur517
Other Games
• imaqtpie1439
Upcoming Events
PiGosaur Cup
5h 56m
WardiTV Invitational
16h 56m
The PondCast
1d 14h
OSC
1d 16h
OSC
2 days
All Star Teams
3 days
INnoVation vs soO
sOs vs Scarlett
uThermal 2v2 Circuit
3 days
All Star Teams
4 days
MMA vs DongRaeGu
Rogue vs Oliveira
Sparkling Tuna Cup
4 days
OSC
4 days
[ Show More ]
Replay Cast
5 days
Wardi Open
5 days
Liquipedia Results

Completed

Proleague 2026-01-12
Big Gabe Cup #3
NA Kuram Kup

Ongoing

C-Race Season 1
IPSL Winter 2025-26
BSL 21 Non-Korean Championship
CSL 2025 WINTER (S19)
OSC Championship Season 13
Underdog Cup #3
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025

Upcoming

Escore Tournament S1: W4
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Rongyi Cup S3
Thunderfire SC2 All-star 2025
Nations Cup 2026
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 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.