
Ask HN: What real-world apps are based on less popular disciplines of CS? - acconrad
It seems like HN can&#x27;t get enough of AI&#x2F;Machine Learning (with Robotics sort of lumped into those) and Crypto at the moment, but for those that aren&#x27;t interested in solely those disciplines, what real-world applications are you seeing that are focused around other central disciplines of computer science? Such as:<p>* Architecture<p>* Performance<p>* Graphics&#x2F;Computer Vision<p>* Networking<p>* Concurrent&#x2F;Parallel&#x2F;Distributed systems<p>* Databases<p>* Human-Computer Interaction&#x2F;UX<p>* Scientific&#x2F;computational science
======
Jtsummers
My office does radios for what amounts to a very specialized mesh network.
While we aren't at the bleeding edge of anything, one of the main things that
had to be understood by the designers of this was distributed systems. By us,
the implementers, performance and concurrency are key to our work.
Performance: We have a limited window within each time slot to process a
message and respond with a message. Being late means waiting X slots to send
the desired data, which may be too late by the time it arrives (as we can only
transmit when we're permitted to by the network configuration, which could be
every slot or every N slots, in order to avoid collision in broadcast).
Concurrency because our particular software component is designed with several
concurrent components, but also the whole radio has 5+ (depending on
configuration) processors each with 1+ applications executing on them.
Designing software that operates correctly in this environment is a challenge.

------
manvsmachine
Honestly, there are far to many to even list. I think part of the issue may
just be that not every application is an 'app' \- computing is increasingly
intertwined with physical applications. Here are a few consumer-focused
'emerging tech' applications off the top of my head:

Graphics / CV: VR Gaming (Oculus, HTC Vive, etc), self-driving vehicles,
computational photography (Lytro)

HCI: Leap, Kinect, VR Gaming again

Architecture / performance / networking / databases are tools, not
applications in and of themselves - find a problem that demands extremely high
performing systems, and there will be work done in those areas. Example: the
PX 2 system for self-driving racecars that Nvidia announced a few days ago at
GTC hits six of your bullets points by itself (architecture, performance,
computer vision, networking, parallel systems, computational science).

~~~
acconrad
I should clarify - the title had character limits, so when I wrote "apps" I
meant "applications" \- it doesn't necessarily exclude businesses that don't
do "apps" per se - for example, Vertica and VoltDB would be innovative
companies in databases, but their technology isn't an "app" in that sense.

~~~
Jtsummers
I usually try to tuck this as a note with a regular response to a comment, so
apologies for that.

"Per say" should be "per se".

------
charlieegan3
There was this: [http://summly.com/index.html](http://summly.com/index.html)
now part of Yahoo news digest. This would count as "Natural Language
Processing".

There's also Diffbot, [https://www.diffbot.com/](https://www.diffbot.com/),
you this could count under "computer vision" (as AI/machine learning).

Think this [https://streamium.io/](https://streamium.io/) might tick the
"Concurrent/Parallel/Distributed systems" and "Networking" boxes.

------
golergka
Follow up question: how does one move his career from general "business logic"
programming to state where you _have_ to read latest CS papers for work and
write your own (if your company allows you to share the intellectual
property)?

~~~
moftz
Join a startup doing their vision of the next big thing that requires actual
tech development and not just combining current tech together into a simple
product. Think DeepMind, not SnapChat.

~~~
perryh2
There are CV scientists building some very fun and interesting things at even
Snapchat. :)

------
marinabercea

      * Timetabling or scheduling apps like Doodle.com - subjects pertaining to Graph Theory
      * Travel comparison sites that can find you the fastest flight route from A to B (and/or cheapest or some other type of constraints) - Graph Theory
      * LinkedIn network analysis apps such as Socilab.com - Graph Theory
    

Basically Graph Theory is extremely important, with applications in domains
such as: networking, linguistics, (bio)chemistry, pathfinding & GIS, social
network analysis, matching (dating apps, organ donation, medical residency
matching) etc.

Edit: Another application is PCB design. The circuit to be printed is the
graph itself, it should not allow edge crossings that would result in a short
circuit.

~~~
TheLogothete
>less popular disciplines of CS

Graph Theory?

~~~
marinabercea
Considering the post submitter hasn't been more precise, I interpreted
'popular' as meaning less advertised or trendy. You can even use Graph Theory
for image processing & analysis, yet another application.

------
pbnjay
AI/ML and Crypto are sort of generally applicable to many startups, hence you
see them more.

For databases, there are quite a few columnar database startups.

A bunch of these topics are basically only relevant at large scale since
they're R&D intensive. I think it's easy to say that Facebook, Google, and
Microsoft have big groups of people dedicated to most of these problem
domains. Search their engineering blogs or look at white papers and you can
find a bunch of examples.

------
Ologn
One thing about distributed systems is there are many, many organizations with
small-to-medium sized infrastructures, so a lot of the solutions for the
problems of those organization's infrastuctures are already done and widely
available. If you look at the largest distributing systems setups, they are so
large they run into their own unique problems. Google has rolled a lot of its
own solutions, I'm sure often out of necessity. So they write Dapper to do DS
monitoring. Twitter writes Zipkin to do DS monitoring.

For distributed storage, Carnegie-Mellon had solutions like AFS, which large
DS organizations used. Google needed a different solution and made Google File
System and MapReduce. Inspired by this, a project like Hadoop is started.

Insofar as graphics and computer vision, the first non-dev Oculus Rift just
started shipping a few days ago, and Oculus is already working on an improved
version of it. HTC and Valve's Vive was just released a few days ago. So a lot
of innovation is happening in graphics and computer vision right now.

------
shakkhar
I think an enormous amount of money has been made in virtualization
technologies, yet they rarely get the kind of attention that AI / ML gets.
Probably because the primary customer of these products are very large
enterprises who use them in their private data centers.

------
kctess5
I think part of the reason you see so much AI/ML and crypto is that those
methods are very useful in a wide range of CS disciplines. This is true for
many of the things you list:

AI/ML is important to (or visa versa):

\- Performance

\- Graphics/Vision (my research is largely in this field)

\- HCI

\- Scientific/computational science

Crypto is important to:

\- Architecture

\- Networking

\- Distributed Systems

\- Databases

\- HCI/UX

And I'm sure the above lists are not exhaustive. I think learning ML and
optimization is important because you can apply it to literally almost any
other field. One of my favorite things to see is when people apply
ML/optimization in new ways to other disciplines. The field of Computational
Fabrication is very interesting, IMO. All these things are not so different as
they might seem.

------
tikhonj
A surprising number of companies rely on ideas and tools from PL (programming
languages) internally. More extreme examples are things like having their own
compilers and internal languages and more common ones are things like domain-
specific languages, static analysis tools and advanced type systems.

The thing with PL is that it's something of a meta-field, even within CS: the
programs you write help you write other programs. So while user-facing
products based on PL ideas are rare (ie just development tools), many
companies have surprising numbers of PL people in house who use these tools
and techniques internally.

------
throwaway2873
Performance/Parallel systems: Some animator friends are excited about GPU
rendering, which has a lot of potential to make professional animation
rendering more accessible/powerful.

Computer vision: Important for most VR tracking systems, body tracking systems
like Leap Motion, as well as augmented reality systems like Project Tango and
Vuforia.

------
8note
CV: farming/drone air photography

------
adamnemecek
I'm not sure what you consider central areas as all of those listed seem
pretty central.

~~~
acconrad
They are central disciplines of computer science, but they are not central in
mind share; basically I'm seeing all of these articles on AI and ML (DeepMind,
Comma.ai, tutorials on Deep Learning and Neural Networks), but not as much on
things like networking, databases, and HCI. It would be nice to explore
successful companies whose central focus is on one of those other disciplines.

