A year in technology: 2019
Ramarao Kanneganti
Founder/CTO of Aganitha | Transforming BioPharma R&D with advances in computing | building cross functional teams
Hello friends:
This year, like every year taught me many new things: new methods, tools, and information about AI, devops, and biology. More importantly, I learnt most of it in the context of solving customer problems. This note gives me chance to describe the technologies and tools that excited me this year, both in the course of customer related work, and hobby work. In addition, I will describe what I look forward to in the coming year.
My frustration with AI tools
If the last year was the focus on AI, this year it was the enabling technologies for AI. Last year, I was wading through the mathematics required for AI and the libraries and toolkits required for various deep learning algorithms. Coming from language design world, it is true that frameworks like Tensorflow gave me reason to weep. On one hand I could see it as a world ripe for language design: there is a domain -- of matrices and vectors. There are operators: standard ones like multiplication, encodings like one hot encoding, transformations and so on. Now, is it so difficult to specify a dataflow so that we can optimize it, transform it and compile it to the backend that we want?
Unfortunately, we are stuck with a weird language that we program in Python. The host language, Python, is not known for creating domain languages (like Lisp, or even TCL). However, it has good IDEs, good libraries, and a lot of good developers. With libraries and toolkits, it won the war for deep learning.
Ah well, it could have been worse. We could have been using Java for deep learning.
On the flip side of it, Lisp was the face of AI for decades. They were so stuck in symbolic manipulations, they missed positioning the language for something useful. They could have designed a UI language or web language or API language, or now a deep learning language. All they designed were toy systems (early advances of game development notwithstanding).
So, here I am, using Python in my day job for the most part. And, Javascript for the web part. I am not complaining. But, I could.
My excitement with biology
This year, because of the work we are doing, I ended up learning quite a bit of biology. In school, all my teachers considered me a favorite student -- all except biology. To me it appeared rote learning. Now, reading biology showed me how wrong I was.
As I was reading the way cell biology works -- the central dogma of molecular biology, autophagy of cells, and the way encodings happen -- it fascinates me. It sounds like a magical world where numbers and rules operate differently and where information is processed differently. The abstractions that biological systems offer, enrich any thinking person’s library. Just for that alone, biology is worth studying.
On top of that, the data that is available is mind boggling. Surprisingly, most of the biology data systems are built collaboratively -- or at least, several kinds of data is available publicly. For somebody who wants to understand genomic or phenomic data, the playground is large and opportunities are plenty.
In particular, I am excited about coming gene therapies and immunotherapies. They require the ability to understand and process large volumes of data. It is not a data science problem; it is a problem of understanding the data itself -- why this data, what can it be used for, what are the relationships among the data.
That leads to the next excitement for me: understanding knowledge.
My pet project: Interfaces to deal with knowledge
First the computers showed reports: various numbers in tabular forms. That carried over to the client/server applications, spreadsheets, and even the web. The web offered us a chance to create a narrative structure to the numbers. Is that all there is to it, the way we can interact with information?
Lot of companies cracked the code in different ways: You want to search the information? Google shows the way. You want to see information as people centric? Facebook shows the way. Quora, reddit, tableau -- all these offer different ways of dealing with information: discovering, querying, displaying, and analyzing.
With AI, all these paradigms breakdown. How do we deal with reports when the data is probabilistic? How do we ask questions when we do not know what questions to ask? How do we traverse the information? At what point information becomes knowledge?
I am intrigued by this problem: It is not just technological question that can be solved by graph databases alone. It goes to the core of how should people use the AI driven systems when they can infer, analyze, and present the information. How can we explore these systems when AI can act as a guide or co-traveller? What does it mean to knowledge workers? We can explore these questions meaningfully and usefully, without fully resorting to epistemological queries.
This problem has enormous potential in any knowledge workers world. It brings AI to our creative world to transform the way we work. It can open up new modes of collaboration, to discover others’ work, to learn from each other, and to take knowledge to the arena of wisdom.
What tools do I use these days?
Let us get to the mundane issues: at the end of the day, I still work with a computer. I take enormous pleasure in able to get this machine to do my bidding. This was the year of the Linux desktop for me. I am using Linux for every task, including scanning documents, producing websites, developing code, reading books, watching movies, and every other activity. I even forget that I am in Linux anymore. For some reason, when I am using my Macbook laptop, I feel a bit hobbled: no first class docker, the magic Applications folders, and such.
I usually use PyCharm IDE for my code. I use VS Code for most of editing. I am not using Emacs any more. Even editing on the servers, I am using ssh in vs code to edit. If I have to write documentation, it is in markdown. I spruce it up with CSS and use it in mkdocs or hugo. I discovered the joys of grid layout that I use it often.
For office productivity tools, I like GSuite. The collaborative editing is superior to anything else I have experience in. In fact, GSuite editing is the only aspect that is stopping me from moving to git + markdown + web based collaboration tools.
What am I looking forward to?
I am looking forward to many things in the near future. In particular, on the AI front, I am looking forward to NLP (natural language processing) and NLG(natural language generation). Unlike problems in computer vision, speech, or game playing, these language problems are created by us, the humans. Through the vagaries of our social and cultural evolution, we made languages complex, without consistent rules, with too many ambiguities. In fact, we take pride in the complexity; we celebrate the ambiguity; we reward unconventional usages. No wonder that AI has trouble with these areas. Thanks to some advances in AI, we are seeing good results. I am looking forward to using them in our customer problems, when they are widely available.
In biology, as we are discovering the power of understanding and connecting data from multiple sources, I am excited about the possibilities in creating innovative applications. Imagine we are able to add inferences to this data, using the deep domain knowledge. And, imagine that we are able to add knowledge to this data, gleaned from research papers. This solves the big problem that is challenging us these days: converting vast amounts of data is that is being generated for useful purpose and more importantly, using the research that is being produced rapidly.
When I hear about how the field of biology is progressing -- apparently, we double the knowledge of the field every four years -- I come to the conclusion that these systems are needed: the ones that marry data with knowledge from many sources and put it to targeted use. I am looking forward to working with such systems, be it in drug discovery, synthesis, clinical trials, or in other fields with similar explosion of information and data. I am particularly thankful that I am able to work with innovating customers in this field.
On a mundane level, I am looking forward to seeing advances in type system for Python. I will take what I can get, even if it is type hints. I cannot imagine writing large systems without a clear understanding of the types. On another note, I am excited about my 4k monitor setup. I am particularly happy how simple the setup is: just the motherboard, CPU, NVME storage, and memory. Compared to earlier machines I built, this is simplicity itself. My experience taught me that it takes many years to get to that simplicity. I am looking forward to bringing that simplicity in my daily work.
Yours in technology,
Dr. Rama Kanneganti
Highly experienced software engineering leader.
5 å¹´Congratulations on graduating from EMACS. I use IntelliJ for most of my editing these days, but when there is a complex editing task, I find myself going back to emacs. Have you found something more modern for complex editing?
Former Head of External Communications
5 å¹´You could have mentioned book on tech that helped you, Rama.? :-)? Happy 2020. :-)
Solution Architect | Data Engineer | AI Engineer
5 å¹´Any thoughts on acceleration that is happening in the cloud front from various providers ?