• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 21:07
CEST 03:07
KST 10:07
  • 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
[ASL19] Finals Recap: Standing Tall10HomeStory Cup 27 - Info & Preview18Classic wins Code S Season 2 (2025)16Code S RO4 & Finals Preview: herO, Rogue, Classic, GuMiho0TL Team Map Contest #5: Presented by Monster Energy6
Community News
Weekly Cups (June 30 - July 6): Classic Doubles2[BSL20] Non-Korean Championship 4x BSL + 4x China9Flash Announces Hiatus From ASL66Weekly Cups (June 23-29): Reynor in world title form?14FEL Cracov 2025 (July 27) - $8000 live event22
StarCraft 2
General
The GOAT ranking of GOAT rankings The SCII GOAT: A statistical Evaluation Weekly Cups (June 23-29): Reynor in world title form? Weekly Cups (June 30 - July 6): Classic Doubles Program: SC2 / XSplit / OBS Scene Switcher
Tourneys
RSL: Revival, a new crowdfunded tournament series FEL Cracov 2025 (July 27) - $8000 live event Sparkling Tuna Cup - Weekly Open Tournament WardiTV Mondays Korean Starcraft League Week 77
Strategy
How did i lose this ZvP, whats the proper response Simple Questions Simple Answers
Custom Maps
[UMS] Zillion Zerglings
External Content
Mutation # 481 Fear and Lava Mutation # 480 Moths to the Flame Mutation # 479 Worn Out Welcome Mutation # 478 Instant Karma
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ ASL20 Preliminary Maps [ASL19] Finals Recap: Standing Tall SC uni coach streams logging into betting site Flash Announces Hiatus From ASL
Tourneys
[BSL20] Non-Korean Championship 4x BSL + 4x China [BSL20] Grand Finals - Sunday 20:00 CET CSL Xiamen International Invitational The Casual Games of the Week Thread
Strategy
Simple Questions, Simple Answers I am doing this better than progamers do.
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Path of Exile What do you want from future RTS games? Beyond All Reason
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
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Summer Games Done Quick 2025! Russo-Ukrainian War Thread Stop Killing Games - European Citizens Initiative Summer Games Done Quick 2024!
Fan Clubs
SKT1 Classic Fan Club! Maru Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [\m/] Heavy Metal Thread
Sports
Formula 1 Discussion 2024 - 2025 Football Thread NBA General Discussion TeamLiquid Health and Fitness Initiative For 2023 NHL Playoffs 2024
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Culture Clash in Video Games…
TrAiDoS
from making sc maps to makin…
Husyelt
Blog #2
tankgirl
StarCraft improvement
iopq
Trip to the Zoo
micronesia
Customize Sidebar...

Website Feedback

Closed Threads



Active: 706 users

The Big Programming Thread - Page 930

Forum Index > General Forum
Post a Reply
Prev 1 928 929 930 931 932 1031 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
Poland4725 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
Poland17244 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
Poland17244 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
Poland4725 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
Poland17244 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
Spain17971 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
Spain17971 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 1031 Next
Please log in or register to reply.
Live Events Refresh
Replay Cast
00:00
Korean StarCraft League #77
CranKy Ducklings119
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft417
Livibee 121
ProTech67
RuFF_SC2 40
Vindicta 14
StarCraft: Brood War
MaD[AoV]34
Bale 25
Icarus 4
Dota 2
monkeys_forever369
NeuroSwarm116
League of Legends
JimRising 609
Counter-Strike
summit1g10964
tarik_tv5145
taco 505
Super Smash Bros
Mew2King179
Other Games
shahzam891
Maynarde150
ToD96
JuggernautJason95
Day[9].tv82
Organizations
Other Games
gamesdonequick49546
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 22 non-featured ]
StarCraft 2
• HeavenSC 26
• davetesta25
• Berry_CruncH23
• Mapu3
• Kozan
• sooper7s
• Migwel
• AfreecaTV YouTube
• LaughNgamezSOOP
• intothetv
• IndyKCrew
StarCraft: Brood War
• Pr0nogo 1
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota2583
League of Legends
• Jankos1463
• TFBlade511
• Stunt233
Other Games
• Scarra1481
• WagamamaTV189
• Day9tv82
Upcoming Events
Sparkling Tuna Cup
8h 53m
WardiTV European League
14h 53m
MaNa vs sebesdes
Mixu vs Fjant
ByuN vs HeRoMaRinE
ShoWTimE vs goblin
Gerald vs Babymarine
Krystianer vs YoungYakov
PiGosaur Monday
22h 53m
The PondCast
1d 8h
WardiTV European League
1d 10h
Jumy vs NightPhoenix
Percival vs Nicoract
ArT vs HiGhDrA
MaxPax vs Harstem
Scarlett vs Shameless
SKillous vs uThermal
uThermal 2v2 Circuit
1d 14h
Replay Cast
1d 22h
RSL Revival
2 days
ByuN vs SHIN
Clem vs Reynor
Replay Cast
2 days
RSL Revival
3 days
Classic vs Cure
[ Show More ]
FEL
3 days
RSL Revival
4 days
FEL
4 days
FEL
4 days
CSO Cup
4 days
BSL20 Non-Korean Champi…
4 days
Bonyth vs QiaoGege
Dewalt vs Fengzi
Hawk vs Zhanhun
Sziky vs Mihu
Mihu vs QiaoGege
Zhanhun vs Sziky
Fengzi vs Hawk
Sparkling Tuna Cup
5 days
RSL Revival
5 days
FEL
5 days
BSL20 Non-Korean Champi…
5 days
Bonyth vs Dewalt
QiaoGege vs Dewalt
Hawk vs Bonyth
Sziky vs Fengzi
Mihu vs Zhanhun
QiaoGege vs Zhanhun
Fengzi vs Mihu
Liquipedia Results

Completed

BSL Season 20
HSC XXVII
Heroes 10 EU

Ongoing

JPL Season 2
BSL 2v2 Season 3
Acropolis #3
KCM Race Survival 2025 Season 2
CSL 17: 2025 SUMMER
Copa Latinoamericana 4
Jiahua Invitational
Championship of Russia 2025
RSL Revival: Season 1
Murky Cup #2
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25
BLAST Rivals Spring 2025
MESA Nomadic Masters
CCT Season 2 Global Finals
IEM Melbourne 2025

Upcoming

2025 ACS Season 2: Qualifier
CSLPRO Last Chance 2025
CSL Xiamen Invitational
2025 ACS Season 2
CSLPRO Chat StarLAN 3
K-Championship
uThermal 2v2 Main Event
SEL Season 2 Championship
FEL Cracov 2025
Esports World Cup 2025
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
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 © 2025 TLnet. All Rights Reserved.