Ideas

Ideas

Tags
Location
Published
Published March 19, 2022
Author
Apoorva Singh
For a very long time I’ve been wanting to create my own website, a place where I can just post stuff that I find interesting. It’s not that I don’t know how to build a website, it’s just that I never managed to pull myself together to create something that I would love (I still don’t feel that this site looks good enough 😕. Lot more work ahead!)
This site is built on Next.js and uses Notion for content management and is deployed on Vercel. I hated the idea of opening VS Code just to write something on my blog (Jekyll 😒) and also wanted a super clean interface where I can just focus on writing.
 
Here is a small list of things that fascinate me and probably this blog will contain a lot content around these topics sometime in the future.
 
notion image
 
  • Hardware
    • Transistors
      • How do they work?
      • What mathematical models can we use to understand them?
      • What parameters can we use to describe their behaviour completely?
    • Computer generated circuits
      • How can we specify constraints to a computer regarding the circuit?
      • Is there a way in which we can specify the input and output of a circuit and let a computer figure out the most optimum circuit design?
    • Circuit Simulation
      • With my limited experience in circuit simulation, I believe there ought to be a better way of performing these simulations. The user interfaces in these applications were built in the 90s. We are in 2022 for God sake (LTSpice 😒)!
      • Easier to use and more intuitive tools will lead to faster iterations, frictionless prototyping, better understanding of the circuits (Something like Figma 😍). A person can understand a system well if they can poke around, change things and notice what happened as a result.
      • A person can understand a system only as well as it’s presented it to him.
         
      • Having the ability to change the parameters of a circuit component and observe what happens is an amazing way to develop intuition of what’s happening inside. Many of these circuit simulation tools only give you static graphs and tables to look at.
      • I believe one of the reasons why programming took off so well was the fact that all you require is a computer and a book. The iteration time to build something and test it out is really small. If you did something wrong, it only takes a very small time to fix and move on. We don’t have that in the hardware world!
      • Having better, more intuitive, cleaner, easier to use and understand, poke-able simulation tool opens up the world of electronics for anybody and everybody who is interested in building something. Nobody would have to buy something! People could sit in front of their laptops and build whatever they want!
    • Microcontrollers
      • Datasheets in PDF form are the shittiest way to consume information about a microcontroller. The only thing you do is CTRL+F this CTRL+F that and just keep jumping around sections of the document that you have to refer while building something. It’s obvious that it shouldn’t be so painful!
        • Why aren’t these microcontroller manufacturing companies not building a better interface?
        • Wouldn’t it just improve their sales?
        • Wouldn’t people be able to iterate faster using their product?
      • Can we find better ways to layout information about a microcontroller in a document?
      • Adding more images and animations to aid understanding of the system.
      • Integrating code examples right in the datasheet.
      • A section to which describe system setup and installation
      • Ability to change language of the document (Chinese, English, French, German)
      • Ability to search the entire document semantically (Eg. List of all registers used to control timer 1?)
      • Popup card when you hover on something that references some other part of the document
      • notion image
      • Have the question answer forum for that part integrated with the datasheet.
      • Ability to export the document in a PDF/HTML format.
      • Table of contents that is always accessible
      • All application notes should be present in the datasheet
      • Ability to highlight parts of the document and also share the document with other people in the organisation.
      • A microcontroller simulator to run and test your programs. Along with a graphical interface that shows how all the peripherals of the system are working.
      • Details regarding the instruction set used by the microcontroller
      • Ordering information, distributors etc
      • Packaging information (Get 3D models, PCB footprints and visualise the package in 3D space)
      • Git like errata and changes made to the document
  • Design
    • Identify ways to layout and present information for different domains and contexts.
    • What other improvements can lead to faster understanding and better iteration speeds?
    • How can I improve the design of this site to provide an optimum reading experience?
    •  
  • Software
    • Natural Language Understanding
      • How feasible it is to build a model that can read long documents of text and images. And then answer my questions? (Stanford SQuAD)
      • What is the state of semantic web? What are the biggest bottleneck? What are the technologies that have been built for this?
      • What is the best way to structure information so that it can help me answer natural language questions? (Represent the information like a graph? Maybe like RDFs?)
    • Compilers
      • How does cross compiling work?
      • Why are compiler backends so hard to write?
      • What optimisations are performed before spitting out the final machine code?
      • How can we improve the readability of C program that run on microcontrollers and also employ some methods to statically check our programs? (Can implement something good using just m4 macros?)
      • Can we employ Design by contract and/or formal verification into our programs? (Like the Ada Language)
      • All microcontrollers and their peripherals are generally controlled by writing some information in some registers. Can we define these peripherals, registers and functioning in some general way so that we can write programs more independently of the hardware? (CMSIS SVD)
 
  • Business
    • Going through some good business case studies
    • What makes a product disruptive or more widely adopted?
    • What makes certain businesses exist in the marketplace even after having a shitty product?
    •  
  • Research
    • Fundamental computer science
      • What is computation?
      • Different models of computation
      • What property of materials gives a system the ability to compute? (Ability to create electric switches in silicon?)
      • What other physical material can be used to perform computation?
      • Other ways of encoding logical information in physical quantities?
      • Creating logical blocks of (AND, OR and NOT) using materials other than silicon and using physical quantities other than voltage.
      • How do analog computers work? (Bernd Ulmann has done a lot of work in this field)
      • Why do we use binary number system performing computation?
      • What class of problems can we model in a system whose parameters are continuously changing? (Analog computers)
      • Understanding mathematical models for performing computation using continuously varying physical quantities like voltage, current, frequency in an analog system.
    • Abstractions
      • How they are used in the real world?
      • Can we build better abstractions for hardware? Programming?
      • Understanding some of the most used abstractions.
 
  • Biology and Biomimicry
    • What makes living organisms tick?
    • How does our brain work? (Livewired, an amazing read by David Eagleman)
    • Do biological systems compute? How do they do it? How is different from the way we compute?
    • How can we copy application specific designs from nature and use them in our digital realm?