• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 16:02
CEST 22:02
KST 05:02
  • 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] Ro16 Preview Pt2: All Star10Team Liquid Map Contest #22 - The Finalists16[ASL21] Ro16 Preview Pt1: Fresh Flow9[ASL21] Ro24 Preview Pt2: News Flash10[ASL21] Ro24 Preview Pt1: New Chaos0
Community News
2026 GSL Season 1 Qualifiers19Maestros of the Game 2 announced92026 GSL Tour plans announced15Weekly Cups (April 6-12): herO doubles, "Villains" prevail1MaNa leaves Team Liquid25
StarCraft 2
General
MaNa leaves Team Liquid Maestros of the Game 2 announced 2026 GSL Tour plans announced Team Liquid Map Contest #22 - The Finalists Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool
Tourneys
2026 GSL Season 1 Qualifiers INu's Battles#14 <BO.9 2Matches> Sparkling Tuna Cup - Weekly Open Tournament GSL CK: More events planned pending crowdfunding RSL Revival: Season 5 - Qualifiers and Main Event
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
Mutation # 522 Flip My Base The PondCast: SC2 News & Results Mutation # 521 Memorable Boss Mutation # 520 Moving Fees
Brood War
General
Leta's ASL S21 Ro.16 review BW General Discussion ASL21 General Discussion BGH Auto Balance -> http://bghmmr.eu/ Data needed
Tourneys
[Megathread] Daily Proleagues Escore Tournament StarCraft Season 2 [ASL21] Ro16 Group C [ASL21] Ro16 Group D
Strategy
Simple Questions, Simple Answers What's the deal with APM & what's its true value Any training maps people recommend? Fighting Spirit mining rates
Other Games
General Games
Nintendo Switch Thread Dawn of War IV Diablo IV Total Annihilation Server - TAForever Starcraft Tabletop Miniature Game
Dota 2
The Story of Wings Gaming
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 Canadian Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread YouTube Thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion McBoner: A hockey love story Cricket [SPORT]
World Cup 2022
Tech Support
Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Sexual Health Of Gamers
TrAiDoS
lurker extra damage testi…
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1817 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
Poland4751 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
Poland17733 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
Poland17733 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
Poland4751 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
Poland17733 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
Spain18277 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
Spain18277 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
19:00
RO16 TieBreaker - Group A
ZZZero.O202
LiquipediaDiscussion
Ladder Legends
15:00
Valedictorian Cup #1
Solar vs Cham
SteadfastSC362
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
SteadfastSC 362
ProTech140
UpATreeSC 90
JuggernautJason72
ROOTCatZ 69
BRAT_OK 63
Ketroc 42
CosmosSc2 32
StarCraft: Brood War
ZZZero.O 202
firebathero 139
Dewaltoss 110
ggaemo 84
Hyun 66
Jaeyun 51
Rock 37
Dota 2
Gorgc7967
monkeys_forever178
League of Legends
Doublelift676
Counter-Strike
byalli1109
minikerr28
Super Smash Bros
AZ_Axe243
Heroes of the Storm
Khaldor769
Liquid`Hasu500
MindelVK6
Other Games
Grubby4197
FrodaN1112
summit1g846
B2W.Neo576
shahzam301
mouzStarbuck208
KnowMe166
RotterdaM143
Pyrionflax103
ViBE10
Organizations
Dota 2
PGL Dota 2 - Main Stream23475
Other Games
gamesdonequick1167
StarCraft 2
ComeBackTV 644
angryscii 39
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 20 non-featured ]
StarCraft 2
• Hupsaiya 72
• Adnapsc2 14
• davetesta12
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• HerbMon 23
• FirePhoenix4
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV538
League of Legends
• Jankos4408
Other Games
• imaqtpie1248
• Shiphtur228
• tFFMrPink 15
Upcoming Events
Sparkling Tuna Cup
13h 58m
WardiTV Map Contest Tou…
14h 58m
Ladder Legends
18h 58m
BSL
22h 58m
CranKy Ducklings
1d 3h
Replay Cast
1d 12h
Wardi Open
1d 13h
Afreeca Starleague
1d 13h
Soma vs hero
Monday Night Weeklies
1d 19h
Replay Cast
2 days
[ Show More ]
Replay Cast
2 days
Afreeca Starleague
2 days
Leta vs YSC
Replay Cast
4 days
The PondCast
4 days
KCM Race Survival
4 days
Replay Cast
5 days
Replay Cast
5 days
Escore
5 days
Replay Cast
6 days
Replay Cast
6 days
IPSL
6 days
Ret vs Art_Of_Turtle
Radley vs TBD
BSL
6 days
Liquipedia Results

Completed

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

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
StarCraft2 Community Team League 2026 Spring
WardiTV TLMC #16
Nations Cup 2026
IEM Rio 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

Upcoming

Escore Tournament S2: W5
Acropolis #4
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
RSL Revival: Season 5
2026 GSL S1
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
BLAST Rivals Spring 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.