TLA+ is mentioned a lot here and many people point out how it's practically infeasible to use it in real world systems. Just curious, is there any alternative to write specifications which are more closer to common programming languages and can be used by an average programmer to formally prove correctness?
HN user
codepie
https://dipkakwani.com
I found this short paper really interesting to understand the fundamental limitations of distributed systems: Consistency Tradeoffs in Modern Distributed Database System Design http://www.cs.umd.edu/~abadi/papers/abadi-pacelc.pdf . The theorem introduced in the paper (PACELC) provides a better way to understand the design of modern distributed systems than CAP.
This paper was published in PaPoC 2020, which was recently organized online. The rest of the papers, along with the talks are available here: https://papoc-workshop.github.io/2020/programme.html
The rest of the material from the summer school is available here: https://sptdc.ru/schedule/
There's also an extension which overlay the alt tags over images: https://github.com/ageitgey/show-facebook-computer-vision-ta...
Is there a proper book(s)/source(s) that I should follow?
You may find these book useful:
Competitive Programming 3 by Felix Halim and Steven Halim.
Competitive Programmer’s Handbook (https://cses.fi/book/index.html)
I have rarely found the need to code one up in my job
Depending on your job profile, these data structures may not be used at all. But programming puzzles have become the norm for interviews in the industry.
I have been using Zim[0] for quite few years now. With various plugins, it allows me to write LaTeX equations, formatted code, tables etc. Overall it has been really good, but I feel the only thing missing is the support for mobile devices.
The former paper appeared in SIBVOIK 2017 (http://www.sigbovik.org/), where you can find other such papers. My personal favorites are "On The Turing Completeness of PowerPoint" (https://www.youtube.com/watch?v=uNjxe8ShM-8) and "Automated Distributed Execution of LLVM code using SQL JIT Compilation"
Following the popularity of MapReduce, a whole ecosystem of Apache Incubator Projects has emerged that all solve the same problem. Famous examples include Apache Hadoop, Apache Spark, Apache Pikachu, Apache Pig, German Spark and Apache Hive [1]
Slightly OT, but I wanted to know if there's any group/forum where we can read and discuss papers regularly?
I know the morning paper (https://blog.acolyer.org/), but it is not so interactive, in the sense that you can't have discussions with peers and it turns into just passive reading.
Obligatory XKCD for operating systems: https://xkcd.com/1508/
First, I suppose I need to get to a point in my career and personal life where my finances are good enough that I don't have to decide where I spend my effort based on the income it'll bring me.
This. Waiting for the right moment to start working on your long term plan is, according to me, not a good idea. Instead of taking a giant step after some point of time, consider taking small steps on a regular basis.
I really like your idea, would you like to discuss how are you planning to approach this problem?
Firefox has a really good market in the mobile industry. I really wanted Firefox OS to catch up, but it didn't. I am still looking for privacy-focused OS alternative to Android, any suggestions?
The thread example given in article is only limited to a single writer and multiple readers. Things get interesting when you want to have lock free concurrency with multiple readers and writers. One of the famous techniques is using software transactional memory (https://en.m.wikipedia.org/wiki/Software_transactional_memor...). But it hasn't really caught up in the industry and it still exists within academia.
The existing lock free concurrency solutions are not mature enough to replace locks. I like this analogy of what garbage collection is to memory is STM is to memory(https://homes.cs.washington.edu/~djg/papers/analogy_oopsla07...).
I tried gold, silver and bronze. It said incorrect.
Then I tried gold, silver, bronze. It said correct.
As another user pointed out, why should be the chromatic polynomial of rectangle with deleted edge be: q^4 - 3q^3 + 2q^2 and not q * (q - 1)^3. A counter example: when q=2, we have two ways to color the rectangle with a deleted edge. Am I missing something?
I think fixating q as the number of possible ways to color the end points of the deleted edge leads to the wrong result.
It's true that these institutes haven't started something revolutionary, but there has been considerable amount of work in the right direction. I think there are multiple possible reasons behind it: 1) Most of the undergraduate students from these institutes either go study abroad or take up a job; which leaves only a fraction of the top students in these institutes. 2) Students who come for MS in these institutes have to clear GATE exam and most of them, according to what I have seen, join these institutes just for getting a good job and not for serious research.
Disclaimer: I work at one of the top institutes you mentioned.
There's also Blogel [0] which is a distributed graph processing framework in C++ and it runs significantly faster than its counterpart in Java, Apache Giraph [1].
I have started wondering if the big data developers really care about the speed; the advantages of these Java softwares start to fade out when compared with their C++ counterparts.
No, it is ₹1500000 which is $22500 (yearly).
You can try competitive programming course by ITMO on edx (https://www.edx.org/course/how-win-coding-competitions-secre...). It's going to start on 17th October.
I recently met a professor, he said that most of his students are working in Deep Learning and he is finding it difficult to get people to work on other interesting problems. So there is really a demand of students to work on other areas as well. But most of the students get carried away by the trending fields.
Hadoop's source code has been on my reading list for a long time now. I have tried it before, but couldn't go through all the bits and pieces. Is there any strategy you should follow while reading any source code? Are there any code walkthroughs of hadoop's source code?
Since you mentioned page rank, you can also check out graph processing frameworks, eg Pregel/Giraph, which are designed specifically to run graph algorithms on big data.
Previous discussion: https://news.ycombinator.com/item?id=11796253
These courses will provide you a good theoretical background, which may not be enough to crack the interview problems. You might wanna look at some of the programming problems on Hackerrank, Codejam etc to bridge the gap between the theory and the implementation.
You can download all the videos from here https://archive.org/details/MIT6.046JS15 . Available as torrent too.
In case you didn't know, there's an option in VLC to download subtitles based on the hash of the video.
For some reasons i3 was showing wrong value for battery. It also had issues with the graphic drivers, showing black screen on logging in. So I didn't consider it as a viable option for me.
I recently tried some tiling window managers, but the problem with those was that none of them provided basic default configuration and you have to configure them from scratch. For example you have to add a plugin for small things such as a battery indicator. The custom themes were too much bloated for me. I ended up installing shellshape for gnome. Do you know any tiling window manager which solves this?
I have been using ZimWiki[0] for some time now. It has been really useful for me as it supports LaTeX. Dropbox can be used to synchronize it. [0]http://zim-wiki.org/
Is it just me or this website is heavy on CPU? Increased my CPU usage by 50%.