top | item 20543990

(no title)

kartan | 6 years ago

> smartphones

I will take this as an example. I was developing in 80386 machines. When smartphones appeared and people said that "this is different because you have limited resources compared with a desktop machine", I just thought "it is new for you, not for me". I said nothing because they are right. It was new to them. I was happy to share an environment with people excited with "a new challenge".

> there is also so much more depth than we used to have. No?

Most intelligent behaviour in games is based on agents and finite state machines. With more states than ever, with higher polygon count, but it is the same that you had 20 years ago. The results are way more impressive because the hardware is faster and there is way more memory. But, the algorithms are the same.

Look for A* search algorithm or Dijkstra's algorithm. Been there for a while. Graph theory is still a building block for most things that look intelligent.

discuss

order

kragen|6 years ago

Dude, you can strap your smartphone to a quadcopter and you have a flying 20-megapixel 60 fps camera with a multi-megabit internet connection. You can do real-time control of the flight. That's something you couldn't do with a 386, not unless you had a Predator to put it in.

And there's a whole category of new challenges not because of limited resources but because of abundant resources. Your photogrammetry drone can generate 72 gigapixels per minute of photogrammetry data. You have 200 teraflops on your desktop. How good of a 3-D model can you make? With how little human effort?

How about making things simpler and more flexible? Old GUI toolkits were designed around the need for 2-D raster operations to be hardware-accelerated. Are there simpler designs possible now that that's no longer a constraint? I'm exploring this in BubbleOS.

Sure, lots of game AIs are finite state machines. So in lots of games there's no challenge unless the NPCs gang up on you. But AlphaGo is also a game AI. It's a bit more sophisticated than an A* search! What would a game look like where you worked on a team with such AIs?

Smartphones also have multitouch. Yet >90% of people's interaction on them is using an on-screen keyboard, one-finger scrolling of lists, and tapping on prepackaged options. Can we do better? Are there UI paradigms that multitouch enables that would allow more creativity, despite the horrifying levels of lag in existing systems?

Security is a big problem, and most of the world is wasting their time on approaches like virus-scanners that can't work even in theory. But then there's seL4. What would a personal computer based on seL4 look like? How could we translate the guarantees it provides into practically useful power in the hands of everyday people?

Can you do voice recognition on every FM and AM radio channel in your area at once? What's the minimum hardware you'd need to do it?

There's lots of interesting challenges out there.

jaredklewis|6 years ago

> I will take this as an example. I was developing in 80386 machines. When smartphones appeared and people said that "this is different because you have limited resources compared with a desktop machine", I just thought "it is new for you, not for me". I said nothing because they are right. It was new to them. I was happy to share an environment with people excited with "a new challenge".

Is performance the only or even primary challenge from smartphones though? It brings the internet, multiple cameras, GPS, an accelerometer, a touchscreen, and a compass all into one pocket sized device. We've had so many cool things come out of smartphones people didn't expect. I mean in 1994, was there anything like the iPhone Secure enclave, or the applications we have for photogrammetry today?

world32|6 years ago

The fundamental concepts haven't changed but the applications certainly have. The amount of things you can "do" with technology these days is far more vast than it was 25 years ago.

It seems to me like you expect that coding itself should provide you with interest and excitement. Maybe you should try focusing less on the skill itself but what the skill can be used to build? Do you think that an engineer would look at a drone for the first time and think "boring - its just a bunch of propellers provide lift for the device, I've seen this all before.."? Similarly, do you think that a programmer would learn about RSA crypography and think "boring - its just modular arithmetic and prime factorisation, I've seen all this before"?

All knowledge is built upon that which came before it, so in that sense I dont see how anything could be considered "a new challenge" by your standards?

knicholes|6 years ago

Software deployment has definitely changed dramatically. Instead of including the software along with the hardware, or shipping cartridges/tapes/disks/CDs/flash drives, we can have software as a service. Infrastructure is now written as declarative code and tracked in distributed version control. You can spin up thousands of instances of some software in seconds.