• Breaking News

    Tuesday, February 16, 2021

    Is anyone else still in awe of coding/programming and what all it can accomplish? Computer Science

    Is anyone else still in awe of coding/programming and what all it can accomplish? Computer Science


    Is anyone else still in awe of coding/programming and what all it can accomplish?

    Posted: 15 Feb 2021 08:48 AM PST

    I've had about 4 years of experience in computer science now, and I'm still in awe at all that I've learned.

    I still remember what it was like to not know anything. When I explain what I do to people who aren't familiar, they say "It's all Greek to me!" And I totally get that because even though I know how to program now and I know the computer science concepts behind it, I'm still not entirely convinced that the whole CompSci field isn't magic.

    Edit: just a typo

    submitted by /u/GentlyWeepingGuitar_
    [link] [comments]

    My 10 Favorite Computer Science Books

    Posted: 15 Feb 2021 08:23 AM PST

    What are the problems with working on tech projects with other people fully remote? Are there any to begin with?

    Posted: 16 Feb 2021 04:30 AM PST

    Brilliant interview with Sara Hooker of Google Brain discussing Survivorship Bias & Imposter Syndrome in AI, The Accra Lab, Brain Damage research and more.

    Posted: 16 Feb 2021 02:54 AM PST

    Which of these concurrency models are useful and which are not so much?

    Posted: 15 Feb 2021 02:43 PM PST

    Harper's Practical Foundations of Programming Languages presents

    • language PiC, derived from the Pi Calculus
    • language Concurrent Algo (CA), which combine PiC and Modern Algo
    • language Distributed Algo (DA), which modifies CA for modeling distributed sites

    Varela's Programming Distributed Computing Systems presents four concurrency models:

    • the Pi Calculus
    • the join calculus
    • the ambient calculus
    • the actor model.

    There are also CCS, CSP, and ACP in the family of process calculi/algebras.

    I was wondering which of them have been seen very useful in applications, and which not so much. How are they ranked in that regard?

    Thanks.

    submitted by /u/timlee126
    [link] [comments]

    Common techniques for rigorously proving runtime bounds?

    Posted: 15 Feb 2021 01:57 PM PST

    Hi,

    I'm entering a phd program in reinforcement learning next year and am studying some gaps in my foundational cs knowledge to prepare a little.

    Something I have never had to do is rigorously prove runtime bounds, and unfortunately so many problems / exercises I've encountered thus far on this either rely on slightly clever algebra, something that feels very similar to an epsilon-N proof in sequences from very elementary real analysis or just using the limit definition of little o and the fact that little o eclipses big O (and likewise for omega and theta).

    It's very hard for me to google for this due to the abundance of material of runtime complexity for big O, and I've solved a good chunk of the exercises in CLRS chapter 3; where can I read more about this subject (especially on theorems or problems that introduce new techniques)? Or, is this all there is to it for the most part for general proof techniques (ie, any more techniques now depend on analysis of a certain class of algorithm, or certain attributes, etc)?

    submitted by /u/OriginalMoment
    [link] [comments]

    How are distributed systems fast??

    Posted: 15 Feb 2021 05:38 PM PST

    Hello all! I have just started learning about distributed systems in my course and have been following kleppman's book as well (Designing Data Intensive applications). The book in itself is excellent, but I have had a few questions that have been stuck in the back of my head for some time now.

    I was going through the chapter about distributed replications. So basically, I know that we have distributed replications of the data stores that is also called as horizontal scaling (increasing the number of data-handling processes instead of creating a single, more powerful one). I get that replication will increase fault tolerance on the overall system, but what about speed?

    This is the one point I am confused about. Looking at leader-based replication mechanisms, it seems like ultimately, all traffic has to flow through a single node, which, again is baffling, considering it has to process an equal amount of traffic as in a single-sever installation, with the added latency of ensuring that all replicas have stored the data as well. The only advantage I can see here is fault tolerance, and nothing else (since being a single master means that all clients will have to connect to the same master, regardless of the geographical proximity and hence the concept of "CDNs" have been nullified)

    Also, looking at leaderless replication mechanisms (used by Amazon's Dynamo), it seems that a single client will have to go through the hassle of storing/retrieving data from multiple instances, which definitely seems to be slower compared to the time required for storing data on a single, powerful instance.

    So TL;DR, my question is, Is implementing Distributed Replication *meant* to be slower but have the added advantage of fault tolerance, or am I missing some fundamental part that I have not understood well? Also, please feel free to include additional learning resources in the threads below!

    Thanks a ton!

    submitted by /u/potcmotc
    [link] [comments]

    If somebody asked you to create an email client from scratch, what would you do?

    Posted: 15 Feb 2021 06:33 PM PST

    This question is purely hypothetical. I was just thinking about this as I've been trying out Basecamp's Hey email client. What would be some features that you would add to your custom email client if you were given the time to create one?

    submitted by /u/Gourmandy
    [link] [comments]

    What is the programming language paradigm of the pi calculus?

    Posted: 15 Feb 2021 07:30 PM PST

    What is the programming language paradigm of the pi calculus?

    Concurrency is an application field and isn't really a paradigm, is it?

    The actor model is inherently OO or functional?

    Thanks.

    submitted by /u/timlee126
    [link] [comments]

    Is this a typo in representing a function as a fixed point of another via the Y combinator?

    Posted: 15 Feb 2021 06:22 AM PST

    In Varela's Programming Distributed Computing Systems, Ch4 is about the Actor language which combines the actor model into the lambda calculus.

    On p63, it has an example that computes the product of the weighted leaves of a binary tree, using a divide and conquer recursive algorithm in the Actor language. See the quote below.

    Questions:

    (1) When representing tprod as a fixed point of the function λb.λm.seq ( if (isnat? (tree(m)),...ready (b))) via the Y combinator rec, can tprod appear in the definition of the function?

    • Should lp = new (tprod) be lp = new (b) instead?
    • Should rp = new (tprod) be rp = new (b) instead?

    Are they typos?

    (2) Why does the function need "ready(b)" at the end, i.e. getting back to the original state?

    4.1.1 Join Continuations

    Consider the functional programming code to compute the product of numbers in the leaves of a binary tree:

    treeprod = rec ( λf .λtree. if ( isnat? (tree), tree, f (left(tree)) × f (right(tree)))) 

    We could write actor code to compute the left and right branches concurrently. In italics, we denote auxiliary definitions that can be defined in terms of the pairing primitives. Messages to the tree product actor are pairs containing the tree and the customer actor to send the result to. These are accessible by tree(m) and cust(m) respectively. Likewise, binary trees can be represented as either number values (leaves) or pairs with the left and right subtrees (nonleaves). In summary, tree = left = 1 st , and cust = right = 2 nd .

    tprod = rec ( λb.λm. seq ( if ( isnat? (tree(m)), send (cust(m), tree(m)), let newcust = new (joincont(cust(m))), lp = new (tprod), rp = new (tprod) in seq ( send (lp, pr (left(tree(m)), newcust)), send (rp, pr (right(tree(m)), newcust)))), ready (b))) joincont =λcustomer.λfirstnum. ready (λnum. seq ( send (customer, firstnum × num), ready (sink))) 

    In this example, a tree product actor receives a request as a pair containing a binary tree and a customer to receive the result of computing the product of the numbers in the tree. If the tree is a leaf, then the number is returned to the customer. Otherwise, two new tree product actors are created, as well as a new customer, in charge of getting the partial results from the left and right subtrees and composing the final result for the original customer.

    The new customer is also called a join continuation, since its behavior is to wait for two concurrent computations executing asynchronously and perform an action when they both complete. The join continuation actor has an initial state containing a customer to be notified of completion. On reception of the first number containing the result of the first computation completed, it becomes ready to receive the sec- ond number and notify the customer with the product of the two subcomputations. Finally, it becomes a sink, since its goals have been met.

    submitted by /u/timlee126
    [link] [comments]

    Top 5 Emerging AI Trends in 2021

    Posted: 15 Feb 2021 05:52 AM PST

    Hey, help me!

    Posted: 15 Feb 2021 03:04 PM PST

    How transmit a data by electronic waves between two cell phones?

    submitted by /u/BRNOFLX
    [link] [comments]

    No comments:

    Post a Comment