A year in technology: 2019
credit: Photo by Crazy nana on Unsplash

A year in technology: 2019

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?

What if Lisp is the preferred deep learning language?

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. 

No alt text provided for this image

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?

No alt text provided for this image

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. 

No alt text provided for this image

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

Mark Grand

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?

赞
回复
Anil A.

Former Head of External Communications

5 å¹´

You could have mentioned book on tech that helped you, Rama.? :-)? Happy 2020. :-)

赞
回复
Kishore Dandu

Solution Architect | Data Engineer | AI Engineer

5 å¹´

Any thoughts on acceleration that is happening in the cloud front from various providers ?

赞
回复

要查看或添加评论,请登录

Ramarao Kanneganti的更多文章

  • Working with LLMs: Learn abstractions

    Working with LLMs: Learn abstractions

    In the earlier article in the series on “skills needed to thrive in the era of AI”, https://www.linkedin.

    5 条评论
  • Developer skills we look for in the era of AI

    Developer skills we look for in the era of AI

    Recently, Google’s CEO mentioned that 25% of their code is written by AI. This highlights how AI is becoming an…

    12 条评论
  • Empathetic programming: a logical approach

    Empathetic programming: a logical approach

    I remember talking to a friend of mine who joined the professional programming world, while I was still toiling in the…

    2 条评论
  • Best Practices in Documentation: A guide to engineers

    Best Practices in Documentation: A guide to engineers

    This document provides an overview of the best practices in documentation: structure, format, content, style, and…

    11 条评论
  • Writing code as if people read it

    Writing code as if people read it

    Of late, working with younger programmers, I have observed the following: All of them write code that meets the…

    3 条评论
  • Learning in the time of Covid-19

    Learning in the time of Covid-19

    [I wrote this note for the parents who is asking about how their kids can spend their time wisely during the forced…

    3 条评论
  • My budget friendly PC

    My budget friendly PC

    The last time I built my desktop computer was 6 years back. I went all out and got 9TB disks and 64GB memory and two 27…

    3 条评论
  • Back in the saddle again

    Back in the saddle again

    My first desktop was Solaris. In fact, I had two Solaris monitors on my desktop, back when I was at Bell Labs.

    3 条评论
  • Standardization: What and why

    Standardization: What and why

    When I was a student at IIT Madras, my dream place to work was Bell Labs. Eventually, after a PhD, I ended up there.

    6 条评论
  • In the beginning, there was command line...

    In the beginning, there was command line...

    During the heydays of Linux, Neal Stephenson wrote an essay called “In the beginning, there was command line”, about…

    1 条评论

社区洞察

其他会员也浏览了