Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What real-world apps are based on less popular disciplines of CS?
63 points by acconrad on April 7, 2016 | hide | past | favorite | 22 comments
It seems like HN can't get enough of AI/Machine Learning (with Robotics sort of lumped into those) and Crypto at the moment, but for those that aren'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:

* Architecture

* Performance

* Graphics/Computer Vision

* Networking

* Concurrent/Parallel/Distributed systems

* Databases

* Human-Computer Interaction/UX

* Scientific/computational science



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.


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).


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.


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".


There was this: 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/, you this could count under "computer vision" (as AI/machine learning).

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


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)?


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.


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


  * 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.


>less popular disciplines of CS

Graph Theory?


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.


Or more generally, topology. A graph is a 1 dimensional simplicial complex.


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.


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.


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.


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.


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.


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.


CV: farming/drone air photography


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


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.


I figured he was trying to find out real-world problems that actually demand the use of "cutting-edge" tech and practices.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: