• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 13:21
CET 19:21
KST 03:21
  • 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
Rongyi Cup S3 - Preview & Info3herO wins SC2 All-Star Invitational12SC2 All-Star Invitational: Tournament Preview5RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0
Community News
Weekly Cups (Jan 12-18): herO, MaxPax, Solar win0BSL Season 2025 - Full Overview and Conclusion8Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets4$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)25Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns7
StarCraft 2
General
PhD study /w SC2 - help with a survey! herO wins SC2 All-Star Invitational Oliveira Would Have Returned If EWC Continued StarCraft 2 not at the Esports World Cup 2026 [Short Story] The Last GSL
Tourneys
$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7) OSC Season 13 World Championship $70 Prize Pool Ladder Legends Academy Weekly Open! SC2 All-Star Invitational: Jan 17-18 Sparkling Tuna Cup - Weekly Open Tournament
Strategy
Simple Questions Simple Answers
Custom Maps
[A] Starcraft Sound Mod
External Content
Mutation # 509 Doomsday Report Mutation # 508 Violent Night Mutation # 507 Well Trained Mutation # 506 Warp Zone
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ [ASL21] Potential Map Candidates Gypsy to Korea Fantasy's Q&A video BW General Discussion
Tourneys
[Megathread] Daily Proleagues Azhi's Colosseum - Season 2 Small VOD Thread 2.0 [BSL21] Non-Korean Championship - Starts Jan 10
Strategy
Current Meta Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2 Game Theory for Starcraft
Other Games
General Games
Nintendo Switch Thread Battle Aces/David Kim RTS Megathread Stormgate/Frost Giant Megathread Beyond All Reason Awesome Games Done Quick 2026!
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 Russo-Ukrainian War Thread European Politico-economics QA Mega-thread Canadian Politics Mega-thread NASA and the Private Sector
Fan Clubs
The herO Fan Club! The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
How Esports Advertising Shap…
TrAiDoS
My 2025 Magic: The Gathering…
DARKING
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
James Bond movies ranking - pa…
Topin
Customize Sidebar...

Website Feedback

Closed Threads



Active: 3318 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
Poland4742 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
Poland17626 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
Poland17626 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
Poland4742 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
Poland17626 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
Spain18199 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
Spain18199 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
BSL 21
15:00
NKorea Champ Playoff Final Day
Mihu vs XuanXuan
Bonyth vs Dewalt
ZZZero.O394
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech150
SteadfastSC 143
Rex 71
StarCraft: Brood War
Rain 3020
Sea 1708
EffOrt 628
Mini 543
ZZZero.O 394
Shuttle 213
ggaemo 150
firebathero 136
hero 125
Soulkey 66
[ Show more ]
Shine 13
Noble 10
HiyA 9
Terrorterran 6
Dota 2
qojqva2771
Counter-Strike
fl0m4467
byalli309
SPUNJ221
Super Smash Bros
hungrybox900
Mew2King42
Heroes of the Storm
Khaldor534
Other Games
FrodaN2062
Liquid`RaSZi1999
Grubby1655
B2W.Neo654
Liquid`Hasu171
XaKoH 112
KnowMe35
Organizations
Other Games
EGCTV1673
gamesdonequick752
StarCraft 2
angryscii 8
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• HeavenSC 135
• LUISG 19
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• Kozan
• IndyKCrew
StarCraft: Brood War
• HerbMon 15
• Pr0nogo 11
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 6531
League of Legends
• Jankos4160
• TFBlade1228
Other Games
• imaqtpie1266
• Shiphtur254
Upcoming Events
Replay Cast
5h 39m
Wardi Open
19h 39m
Monday Night Weeklies
22h 39m
OSC
1d 5h
Replay Cast
1d 14h
WardiTV Invitational
1d 19h
Replay Cast
2 days
WardiTV Invitational
2 days
The PondCast
3 days
HomeStory Cup
4 days
[ Show More ]
Korean StarCraft League
5 days
HomeStory Cup
5 days
Replay Cast
6 days
HomeStory Cup
6 days
Liquipedia Results

Completed

Proleague 2026-01-24
OSC Championship Season 13
Tektek Cup #1

Ongoing

C-Race Season 1
BSL 21 Non-Korean Championship
CSL 2025 WINTER (S19)
KCM Race Survival 2026 Season 1
Acropolis #4 - TS4
Proleague 2026-01-25
Rongyi Cup S3
Underdog Cup #3
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025

Upcoming

Escore Tournament S1: W6
Escore Tournament S1: W7
Acropolis #4
IPSL Spring 2026
uThermal 2v2 2026 Main Event
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Nations Cup 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 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.