HN user

codepie

192 karma

https://dipkakwani.com

Posts7
Comments43
View on HN

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?

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.

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.

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?

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...).

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.

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?

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.

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?