Documenting projects can reveal code/ design bugs.
Stumbled upon this LWN.net entry written by a Linux man-pages contributor. The main point of this article was, documenting software projects quite early on can reveal important design and code bugs. This presented three examples of how a feature in inotify call was introduced, but was found not working while documenting it. Similar example was given for splice and timerfd calls
Read the full article here: http://lwn.net/Articles/247788/
The Martian Way - Novella
Enjoyed reading "The Martian Way" story by Asimov. Takes place in a future setting where there are dwellers in mars, and Earth has decided to ration the supply of water to mars. Martians get worried, but a group, adventurous enough, decide to get the water from "elsewhere" in the galaxy.
Still thinking like an earthling?
Get out of your rut, open your mind—there’s a whole universe waiting. It’s waiting for people who aren’t afraid of thinking in new ways, of doing new things.
Can you imagine…
…mining the skies for water?
…building a new world beneath the surface of a strange planet?
…making pets out of alien explorers?
…putting your life in the hands of a teen-aged computer?
If you can, you’re well on your way to becoming a member of the space generation—you’re thinking The Martian Way.
There will be code
There is a wired story which predicted that advancements in artificial intelligence will result in programs getting trained rather than being written. This is keeping in line with machine learning advancements popular these days where the number of people who are doing "machine learning" need not learn "how to write the machine learning algorithms", instead they just need to learn "how to use machine learning algorithms" on data. They should be efficient at using "algorithms".
That was total alien concept to me until I saw a whole category and industry flourish with that concept. Given the background, the wired articles prediction was that programs will be trained instead of being written.
I found an alternate argument, from a credible and respectable source Clean Code By: Robert C. Martin It goes like this.
There Will Be Code
One might argue that a book about code is somehow behind the times—that code is no longer the issue; that we should be concerned about models and requirements instead. Indeed some have suggested that we are close to the end of code. That soon all code will be generated instead of written. That programmers simply won’t be needed because business people will generate programs from specifications.
Nonsense! We will never be rid of code, because code represents the details of the requirements. At some level those details cannot be ignored or abstracted; they have to be specified. And specifying requirements in such detail that a machine can execute them is programming. Such a specification is code.
I expect that the level of abstraction of our languages will continue to increase. I also expect that the number of domain-specific languages will continue to grow. This will be a good thing. But it will not eliminate code. Indeed, all the specifications written in these higher level and domain-specific language will be code! It will still need to be rigorous, accurate, and so formal and detailed that a machine can understand and execute it.
The folks who think that code will one day disappear are like mathematicians who hope one day to discover a mathematics that does not have to be formal. They are hoping that one day we will discover a way to create machines that can do what we want rather than what we say. These machines will have to be able to understand us so well that they can translate vaguely specified needs into perfectly executing programs that precisely meet those needs.
This will never happen. Not even humans, with all their intuition and creativity, have been able to create successful systems from the vague feelings of their customers. Indeed, if the discipline of requirements specification has taught us anything, it is that well-specified requirements are as formal as code and can act as executable tests of that code!
Remember that code is really the language in which we ultimately express the requirements. We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we will never eliminate necessary precision—so there will always be code.
The Man Who Knew Infinity
"An equation for me has no meaning, unless it represents a thought of God." - Srinivasa Ramanujan
"The man who knew infinity" is the story of Srinivasa Ramanujan. This phrase, associated with Ramanujan should be familiar to many due to a very popular book with the same title. There is a motion picture directed by Matt Brown based upon this book.
I watched his movie on a Saturday at Berkeley. I was excited to listen to the QA with the director, and Mathematicians such as Richard Borcheds , Olga Holz and Ken Ribet following the screening.
In India, we have been exposed to Ramanujan quite early in our lives. I had stories in school book about great Indian mathematicians like Aryabhata, Brahmangupta, and Bhaskaracharya. Indian Satellites to Space launched by ISRO bear their names too. Along with those personalities, we have Srinivasa Ramanujan and whom we know for his invention of Magic Squares, and Ramanujan Number, the smallest number expressible as sum of two cubes.
Beyond that, I had not known much about the significance of this number or Ramanujan's work.
Years later, when taking online courses, I had come to know about Hardy and Ramanujan's research in Number Theory being at the core of secure communication and cryptography. Do you use Credit Cards online and feel confident that someone will not maliciously take your money? All this is was because of the research in number theory.
There is also famous anecdote associated with Ramanujan, known to many from South India, Ramanujan prayed to a goddess, and she gave inspiration for his work. He mentions that his theorems had come up like a dream, a boon granted by the Goddess, and he would write formulae in his book. That's how he invented those theorems.
If it happened like that, imagine how excited young students from Madurai will be, where there a temple every hundred feet. :) It needs to be clarified that, Ramanujan was a genius and he also worked very hard on his subjects.
A better understanding of this phenonmemon, in general, is now known. The style of discovery is called " diffused mode learning", wherein after an intense work on challenging problem, the solution suddenly comes up during a restful time.
All these are portrayed well in this movie. The relationship between Hardy and Ramanujan, the scientific culture at Trinity College, London revealed in real detail. The movie has a significant portion dealing with how Hardy mentors Ramanujan, and strives to bring his work to the modern world.
In the question and answer session that followed, two questions were of interest to me.
How do mathematicians study Ramanujan's work when he has not left many formula proofs with his equation?
Richard Borcheds, who is an accomplished mathematician, replied that Ramanujan's work was published in the form of series of notebooks. He left behind three notebooks containing almost 3000 theorems, virtually all without proof. The reason he could have done that is perhaps he grew up in a time when the paper was very expensive for him and he wanted to be economical.
(It did not answer the question, but provided a good perspective).
Question 2: In the movie, Ramanujan is shown to be desisting writing formal proofs. Is that true?
Richard Borcheds shared that, it is bit exaggerated in the movie. Ramanujan always knew the proof of his work and could state it if he wanted to. But he usually did not.
I enjoyed watching this movie and listening to the perspectives associated with the genius from kumbakonam.
Story of Arthur's Self Discipline
This short story of Aurther, his transformation from a paratrooper, to a person who could not carry himself and later he "regaining himself" is truly inspiration.
His quote is a great to hold on to.
"If you cannot do it today, it does not mean you cannot do it someday." - Arthur
Oxford Comma
Oxford Comma is the final comma in the list of things mentioned in a sentence. In this statement,
I like computer science, maths, and programming.
The comma after the word maths and before the conjunction, and, is considered the Oxford comma. Other commonly used terms that refer to this style are the serial comma, a series comma, or a Harvard comma.
In my writing, before this essay, I had never added a comma on the final element of the conjunction. This topic piqued my interest, and I started doing research on this entity.
The term, Oxford comma, got its name from the Oxford University Press style guide. It was recommended by the Oxford style guide even when many British journals and publications were not recommending it. My first conscious encounter with it was during the diagnostic test. I was not able to correct the sentence by placing a serial comma. I had never considered a statement, with a list of items, wrong if it did not have a serial comma. We always try to infer the meaning from the context. But in fact, as will see shortly, it may not be possible at all times and the reason to include Oxford comma is to reduce ambiguity in the sentence.
The reason we do not notice the lack Oxford comma is, the Associated Press style guide, which many newspapers follow, does not require us to use Oxford comma, and thus, it is often left out. Let's notice an ambiguity when we lack the Oxford comma.
To my parents, Alicia and Steve Jobs.
There is an ambiguity about the writer's parentage here because Alicia and Steve Jobs can be read as in apposition to his parents, leading the reader to believe that writer claims Alicia and Steve Jobs are his parents. Whereas, placing the Oxford comma after Alicia will resolve the ambiguity.
To my parents, Alicia, and Steve Jobs.
It articulates clearly that the writer is referring to 3 separate entities in his dedication. There are cases when inclusion of Oxford comma can make a sentence ambiguous too. For example, this statement:
To my father, Steve Jobs, and Alicia.
The serial comma after my father creates ambiguity about the writer's father because it uses punctuation identical to that utilized for an appositive phrase, suggesting that Steve Jobs is the writer's father. It is unclear whether there are three people (1. my father; 2. Steve jobs; and 3. Alicia) or it is only two (1. Steve Jobs and 2. Alicia. Steve Jobs is writer's father). The common way to disambiguate this sentence is to refer to each entity as a noun. For e.g.
To my father, to Steve Jobs, and Alicia.
Thus, the placement of the comma can significantly affect the meaning of the entire sentence. By appropriately choosing words and with always using Oxford comma, we can write less ambiguous phrases. Also, Oxford comma matches with the spoken cadence of sentences better.
If you need only one reference to remember this concept, then keep this picture in your mind.
One more thing.
Listen to "Weird Al" Yankovic - Word Crimes before you move beyond this page.
The Good Doctor
"Oh, yes," said Siddhartha, "I make one-off changes to Simulations on Earth."
Govind adjusted his glasses and wondered. "Really?."
"I mean it. I make real people come to readings and discussions of their stories."
"And?".
"The characters themselves evaluate how they are understood. I introduced Asimov into a class which was doing a discussion of his short story 'The Immortal Bard'."
"Oh wow, exciting."
"Asimov was excited too since it was his favorite subject. But, then."
"Hmm.?"
"He quickly became dismayed. His original writing of Immortal Bard was to illustrate, given enough time, how experts of this world create their meaning of original sources. When creators themselves come to face them, they so much believe in their interpretation and revisions that they fail the creator himself."
"That's what happened to Shakespeare in that story. Yeah, I know, that was a hilarious one. "
"Right, but what Asimov found was, the discussion was not about what he felt the readers might enjoy from his story. Instead, everyone went on to prove, why the immortal bard will fail when he brings him back."
"Amusing."
"Yeah, Asimov pondered, how the story could be perceived and readers change the intention when asked to prove something in an assignment. The Good Doctor that he was, continued with his writing, thinking that someday readers will be able to enjoy his stories as he meant it, perhaps with the help of an artificially intelligent agent."
Senthil Kumaran
The story is based upon The Immortal Bard by Issac Asimov.
Good Algorithms Matter
This screenshot from a slide presents a compelling reason as why good algorithms matter.
Choice of the algorithm determines the difference between solving a problem in few minutes vs., not able to solve it over a lifetime. Just compare sorting a billion items using insertion sort and quick sort in the above chart. It speaks for itself.
Gravitational Waves
Our universe is complex and our knowledge of it is limited. It is very hard to keep track of various breakthroughs and connect the dots. Moreover, as we focus on narrow pursuits, we often tend to lose our path in fundamental sciences. We become five-year-olds in fundamental sciences. Reddit's "Explain like I am Five" is one of the first things I look for whenever the world comes across a major scientific breakthrough.
When the existence of gravitational waves was proven on Feb 11, 2016, the question on everyone's mind was "what are gravitational waves", "why is it a big deal?", "Should I even care?". Well, honestly, many of us and our children can live for 100s of years without caring, but generations beyond those, assuming humanity survives, will find Feb 11 2016, discovery to be useful. Such breakthroughs are not new, just a few hundred years ago, we did not believe that earth was spherical.
So, what are gravitational waves?
When you consider the space as matter, and when bodies like stars and sun move that matter, they produce waves on that surface. Using instruments it is confirmed that these waves exists and we actually "listened" to them for real!
To follow along in simple terms, this is the excerpt of the conversation on Reddit.
A user loljetfuel explained the concept like.
Since I actually tried to explain this to a pair of 5-year-olds today, I figure why not share :) You know how when you throw a rock in a pool, there are ripples? And how if we throw bigger rocks in, they make bigger ripples? Well, a long time ago, a really smart guy named Einstein said that stars and planets and stuff should make ripples in space, and he used some really cool math to explain why he thought that. Lots of people checked the math and agree that he was right. But we've never been able to see those ripples before. Now some people built a really sensitive measuring thing that uses lasers to see them, and they just proved that their device works by seeing ripples from a really big splash. So now we know how to see them and we can get better at it, which will help us learn more about space.
The scientist from LIGO, dwarfboy1717 further supported this answer stating:
LIGO scientist here! Great explanation! I'll add:
If Einstein is right (hint: HE IS), gravitational waves would travel outward from (for instance) two black holes circling each other just like the ripples in a pond. When they come to Earth and pass through the detectors, a signal can tell us not only that the gravitational wave has been found, but it can also tell us lots of information about the gravitational wave! As you track what the gravitational waves look like over a (very) short amount of time, you can tell what kind of event caused them, like if it was two black holes colliding or a violent supernova... along with other details, like what the mass of these stars/black holes would have been! This discovery has ushered in an awesome new era of astronomy. BEFORE we started detecting gravitational waves, looking out at the universe was like watching an orchestra without any sound! As our detectors start making regular observations of this stuff, it will be like turning on our ears to the symphony of the cosmos!
Big Deal!. It's wonderful we are able to share this news in a way that every one of us can understand and relate to!
Further Reading
Read the discussion on reddit here.
Watching
Watch the video Allan Adams, theoretical physicist from MIT, explaining the significance of gravitational waves.
First day at Okta
Joined my new company, Okta, today. Eventful day with lot of people and process training, but a meaningful one wherein I got the feel of the pending tasks, by making change, going through the process, witnessing the test runs and committing the code on the first day itself.
Onwards with Always On. :)