• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:31
CEST 17:31
KST 00:31
  • 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
Serral wins HomeStory Cup 2914Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
Weekly Cups (July 27-Aug 2): SHIN's big week0SC4ALL II: Brood War - $2500 - Dec 5-66SC4ALL II announced - $10,000 prize pool, Dec 5-63PIG STY FESTIVAL 8.0! (13 - 23 August)11Neeb returns to progaming; rejoins ONSYDE15
StarCraft 2
General
Balance hotfix patch 5.0.16b (July 16) SC4ALL II: StarCraft 2 Player Announcement 2/8 August World Ranking: Clem climbs to #2 Daily SC2 Player Grid - feedback wanted Weekly Cups (July 27-Aug 2): SHIN's big week
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament PIG STY FESTIVAL 8.0! (13 - 23 August) RSL Revival: Season 6 - Qualifiers and Main Event INu's Battles #19 2-Days Event SC4ALL II announced - $10,000 prize pool, Dec 5-6
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
The PondCast: SC2 News & Results Mutation # 537 Hostile Territory Mutation # 536 Railroad Switch Mutation # 535 Assembly of Vengeance
Brood War
General
Recent recommended BW games BW General Discussion ASL22 General Discussion Making an Online Broodwar Manager Game [Personal Project Share] Terran Defense v0.60
Tourneys
2v2v2v2 Tournament [Megathread] Daily Proleagues SC4ALL II: Brood War - $2500 - Dec 5-6 Escore Tournament - Season 3
Strategy
Any training maps people recommend? Fighting Spirit mining rates Simple Questions, Simple Answers Odyssey Mineral Stack Saturation
Other Games
General Games
General RTS Discussion Thread Nintendo Switch Thread Stormgate/Frost Giant Megathread ZeroSpace Early Access is Now Live! Beyond All Reason
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread Artificial Intelligence Thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine
Fan Clubs
INnoVation Fan Club The Scarlett Fan Club The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023 McBoner: A hockey love story
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
Northern Ireland Global Starcraft The Automated Ban List
Blogs
Please support my new stand…
Peanutsc
What is a Gamer?
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
Customize Sidebar...

Website Feedback

Closed Threads



Active: 7452 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
Poland4768 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
Poland17820 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
Poland17820 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
Poland4768 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
Poland17820 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
Spain18401 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
Spain18401 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 8h 29m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Calm 8869
Bisu 1140
EffOrt 994
Mini 694
Jaedong 672
Shuttle 589
BeSt 313
Sea.KH 75
Sexy 70
hero 60
[ Show more ]
Hyun 53
Terrorterran 40
Sharp 36
Hm[arnc] 32
sorry 30
soO 28
Rock 22
Shine 22
zelot 17
IntoTheRainbow 14
Dota 2
Gorgc13185
Dendi1032
syndereN342
BananaSlamJamma259
Counter-Strike
fl0m870
byalli837
Other Games
singsing1738
FrodaN1199
B2W.Neo1040
hiko770
Mlord406
Liquid`VortiX208
elazer197
Trikslyr30
Organizations
Other Games
BasetradeTV64
StarCraft: Brood War
lovetv 17
Kim Chul Min (afreeca) 14
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 13 non-featured ]
StarCraft 2
• Shameless 18
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV518
League of Legends
• Nemesis2832
Upcoming Events
PiGosaur Cup
8h 29m
Replay Cast
17h 29m
Kung Fu Cup
19h 29m
Replay Cast
1d 8h
The PondCast
1d 18h
INu's Battles
1d 19h
Percival vs Cure
Classic vs Clem
Replay Cast
2 days
Escore
2 days
IntoTheTV X SOOP
2 days
RSL Revival
3 days
herO vs SHIN
Clem vs Solar
Serral vs Rogue
[ Show More ]
RSL Revival
4 days
WardiTV Weekly
5 days
The Patches Monday
6 days
Sparkling Tuna Cup
6 days
PiG Sty Festival
6 days
Liquipedia Results

Completed

Proleague 2026-08-03
CranK Gathers Season 4: BW vs SC2 Team League
Eternal Conflict S2 Finale

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
RSL Revival: Season 6
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026

Upcoming

Acropolis #5
Escore Tournament S3: W6
Escore Tournament S3: W7
CSLAN 4
ASL Season 22
Escore Tournament S3: W8
Acropolis #5 - TRS
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Big Dog Cup 2026 Div 1
Thunderpick World Champ.
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 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.