Page 7 of 10 FirstFirst 12345678910 LastLast
Results 61 to 70 of 99

Thread: Requirements for a Web Front End

  1. #61
    Mod - all of it. SapporoGuy's Avatar
    Join Date
    Aug 2009
    Location
    SonyLand
    Posts
    448
    Cheers, will look into SVN later tonight.
    Lolo, I'm old skool

  2. #62
    FLAC sama's Avatar
    Join Date
    Feb 2006
    Location
    London, UK
    Posts
    1,375
    There's a question has now been consuming my brain for a bit: How to get sat nav/other apps working through the webui on something like an ipad?

    I've now got the answer! You stream the output of apps directly to video.

    Basically, on a linux server, you can use xvfb which is a virtual frame buffer. You can launch an application in here as if it were on a monitor. You can launch a satnav app for example, then stream that virtual frame buffer to h.264 video. This means you can see the output of an application that's running on the server, inside a web page. Neat huh?

    I've been looking at actually implementing this, and have found that this guy has pretty much done it. He's using a technique to convert flash video to an h.264 avi using xvfb and ffmpg.

    xvfb is started as a virtual screen, flash is started on this new screen, ffmpg is compiled with x11grab to capture that output, then finally it's written to video.

    So instead of being written, ffmpeg can stream is (not directly but using a server or sorts) and bingo!

    Since xvfb is a virtual screen, many can be started. That means, each app can run on it's own screen. Velocity can easily launch these apps. You can even have lots of apps per connected client. You're only limited by your server hardware. This is a good limitation to have since you can just throw more hardware at the problem to increase capacity (and your debts).

    The final piece of this puzzle now is getting the web user events transmitted back to the xvfb. To do this, you use xte. This allows commands like: xte -x :3 'mousemove 100 100' and xte -x :3 'key h'.

    So now all you need is some decent Linux based navigation s/w. Android x86 with a hack to run Google navigation anyone? ha, Google Navigation on an ipad!

    There's the solution to making it all work through a web front-end

  3. #63
    Admin. Linux loser.
    Auto Apps:loading...
    Bugbyte's Avatar
    Join Date
    Sep 2004
    Location
    Corning, NY
    Posts
    7,359
    Blog Entries
    2
    Wow. Most of what you've been saying has gone right over my head, but that is wild. So, could I run, for example, LinuxICE and serve it up on the iPad through the browser? Would it work as if it were a touchscreen?
    Quote Originally Posted by ghettocruzer View Post
    I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
    Want to:
    -Find out about the new iBug iPad install?
    -Find out about carPC's in just 5 minutes? View the Car PC 101 video

  4. #64
    North of the land of Hey Huns
    Auto Apps:loading...

    Join Date
    Jun 2004
    Location
    Westminster, MD
    Posts
    2,127
    Quote Originally Posted by sama View Post
    There's a question has now been consuming my brain for a bit: How to get sat nav/other apps working through the webui on something like an ipad?

    I've now got the answer! You stream the output of apps directly to video.

    Basically, on a linux server, you can use xvfb which is a virtual frame buffer. You can launch an application in here as if it were on a monitor. You can launch a satnav app for example, then stream that virtual frame buffer to h.264 video. This means you can see the output of an application that's running on the server, inside a web page. Neat huh?

    I've been looking at actually implementing this, and have found that this guy has pretty much done it. He's using a technique to convert flash video to an h.264 avi using xvfb and ffmpg.

    xvfb is started as a virtual screen, flash is started on this new screen, ffmpg is compiled with x11grab to capture that output, then finally it's written to video.

    So instead of being written, ffmpeg can stream is (not directly but using a server or sorts) and bingo!

    Since xvfb is a virtual screen, many can be started. That means, each app can run on it's own screen. Velocity can easily launch these apps. You can even have lots of apps per connected client. You're only limited by your server hardware. This is a good limitation to have since you can just throw more hardware at the problem to increase capacity (and your debts).

    The final piece of this puzzle now is getting the web user events transmitted back to the xvfb. To do this, you use xte. This allows commands like: xte -x :3 'mousemove 100 100' and xte -x :3 'key h'.

    So now all you need is some decent Linux based navigation s/w. Android x86 with a hack to run Google navigation anyone? ha, Google Navigation on an ipad!

    There's the solution to making it all work through a web front-end


    Ill be honest, while all this sounds awesome, it sounds like a bunch of layers of abstraction for no reason other than to slow things down. If you are going through all that effort... why not just run the PC as is with all that stuff? No reason to pipe it over a web ui. Or even get a real tablet to do it if you want the portability.

    By all means, if I am missing the bigger picture please enlighten me. This sounds like a really cool project with a lot of awesome technology, but an absolutely unnecessary and convoluted way to display something.
    "stop with the REINSTALLS, what do you think we got some lame-o installer!!!" - mitchjs
    RevFE
    My Shop

  5. #65
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    1,783
    Quote Originally Posted by malcom2073 View Post
    Ill be honest, while all this sounds awesome, it sounds like a bunch of layers of abstraction for no reason other than to slow things down. If you are going through all that effort... why not just run the PC as is with all that stuff? No reason to pipe it over a web ui. Or even get a real tablet to do it if you want the portability.

    By all means, if I am missing the bigger picture please enlighten me. This sounds like a really cool project with a lot of awesome technology, but an absolutely unnecessary and convoluted way to display something.
    +1....converting every app to a video stream seems like a huge CPU burden and giant waste of resources just to get something in a web browser. You also will find the frame-buffer method doesn't work with hardware acceleration like openGL...so goodbye navit.

  6. #66
    FLAC sama's Avatar
    Join Date
    Feb 2006
    Location
    London, UK
    Posts
    1,375
    Quote Originally Posted by Bugbyte View Post
    Wow. Most of what you've been saying has gone right over my head, but that is wild. So, could I run, for example, LinuxICE and serve it up on the iPad through the browser? Would it work as if it were a touchscreen?
    Yes, TS events can easily be delegated to the virtual display, but there is an OpenGL limitation which I missed as per justchat's comment below. I'll look into that and see if there's any workarounds.

    Quote Originally Posted by malcom2073 View Post
    Ill be honest, while all this sounds awesome, it sounds like a bunch of layers of abstraction for no reason other than to slow things down. If you are going through all that effort... why not just run the PC as is with all that stuff? No reason to pipe it over a web ui. Or even get a real tablet to do it if you want the portability.

    By all means, if I am missing the bigger picture please enlighten me. This sounds like a really cool project with a lot of awesome technology, but an absolutely unnecessary and convoluted way to display something.
    The initial reason for cooking up this solution was to allow GPS navigation solutions to the web front end. If this is to be a good solution, it's not enough just to do media streaming, otherwise you may as well just use a DLNA server. The solution has to provide GPS, and possibly other apps that current front ends can just plug-in.

    Whilst this can put a lot of load on the server, as I mentioned, hardware is easy to expand given demands. I don't think you have high hardware requirements if you're only delegating one server-side app to a web front-end. Granted it's more than a typical front end since it has to do transcoding, but my old P4 2ghz does a great job of transcoding for my PS3 at home.

    Ultimately, this is still a project to provide a web-based front end that can be developed using HTML, JS and CSS.

    Quote Originally Posted by justchat_1 View Post
    +1....converting every app to a video stream seems like a huge CPU burden and giant waste of resources just to get something in a web browser. You also will find the frame-buffer method doesn't work with hardware acceleration like openGL...so goodbye navit.
    Agreed that it's not the most efficient but what if you could just throw your credit card at that problem? What does performance matter then?

    Good point re the OpenGL. I'll have a look and see what options/workarounds are available. Initial thoughts are a s/w based OpenGL can still be used. Not quite goodbye navit but certainly less of an experience.


    The way I did video + Flash when I did it with Velocity1, I had mplayer launch itself on top of the Flash front end in the correct space within the front end. In that way, no transcoding had to be done.

    This is still an option here if you just want to have one server and a screen from that server. It's only when you want to use a different client, that you have to transcode video, and proxy a virtual screen.

  7. #67
    North of the land of Hey Huns
    Auto Apps:loading...

    Join Date
    Jun 2004
    Location
    Westminster, MD
    Posts
    2,127
    Quote Originally Posted by sama View Post
    The initial reason for cooking up this solution was to allow GPS navigation solutions to the web front end. If this is to be a good solution, it's not enough just to do media streaming, otherwise you may as well just use a DLNA server. The solution has to provide GPS, and possibly other apps that current front ends can just plug-in.
    You've told me what you want to do, but the question is why? It seems like you have to build an entire carpc, and make it full of carpc software including its own custom software (see: frontend), and then on top of that you're piping a bunch of data to another device purely for display... but why? To prove that you can view carpc style data in a web browser? That sounds like... well... reinventing the wheel as a square.
    "stop with the REINSTALLS, what do you think we got some lame-o installer!!!" - mitchjs
    RevFE
    My Shop

  8. #68
    FLAC sama's Avatar
    Join Date
    Feb 2006
    Location
    London, UK
    Posts
    1,375
    As per the beginning of this thread:

    The topic is a conversation about the possibility of using user Sama's Velocity FE as the basis for a web based Front End. Velocity is open source and provides an architecture which separates the interface from the application. Currently, the interface is Flash based, but for iPad compatibility reasons, I was interested in an html5 based interface.

    This thread seems like a good place to document a discussion about what a web based front end would/should require.
    I won't give you why, I'll give you two!

    The First Why
    The reason I wrote Velocity in the first place, was to open up the front end arena to Flash developers. They tend to be the artistic type who see the world for what it does, as opposed to the scientific type that see the world for how it works. They know how to write far nicer interfaces as they care about the look and feel, as opposed to backend programmers that care about clock cycles and flip-flops!

    HTML5, JS and CSS3 have now allowed a webpage to achieve the same thing instead of Flash. There are LLOOAADDSS of web designers out there. Abstracting the underlying solution from them is to let them do what they do best. They don't care if it has to squeeze lemons and sing jolly balls to get it done, as long as it gets it done. Wasted CPU cycles are irrelevant to those that don't care about them.

    The solutions I've investigated and discussed are all focussed around decoupling the services and allowing web designers to create a front-end. That front-end can be used on any client, especially limited ones like an iPad or a phone.

    The Second Why
    There seems to be some demand from people on here that want tablet installs (see the quote above). You could argue that's a silly idea since they generally can't hook in to your steering wheels controls say. Fact is, there's that demand and this project is the supply.

  9. #69
    Newbie
    Join Date
    Jan 2010
    Location
    Indinapolis
    Posts
    24
    Quote Originally Posted by sama View Post
    Yes, TS events can easily be delegated to the virtual display, but there is an OpenGL limitation which I missed as per justchat's comment below. I'll look into that and see if there's any workarounds.



    The initial reason for cooking up this solution was to allow GPS navigation solutions to the web front end. If this is to be a good solution, it's not enough just to do media streaming, otherwise you may as well just use a DLNA server. The solution has to provide GPS, and possibly other apps that current front ends can just plug-in.

    Whilst this can put a lot of load on the server, as I mentioned, hardware is easy to expand given demands. I don't think you have high hardware requirements if you're only delegating one server-side app to a web front-end. Granted it's more than a typical front end since it has to do transcoding, but my old P4 2ghz does a great job of transcoding for my PS3 at home.

    Ultimately, this is still a project to provide a web-based front end that can be developed using HTML, JS and CSS.



    Agreed that it's not the most efficient but what if you could just throw your credit card at that problem? What does performance matter then?

    Good point re the OpenGL. I'll have a look and see what options/workarounds are available. Initial thoughts are a s/w based OpenGL can still be used. Not quite goodbye navit but certainly less of an experience.


    The way I did video + Flash when I did it with Velocity1, I had mplayer launch itself on top of the Flash front end in the correct space within the front end. In that way, no transcoding had to be done.

    This is still an option here if you just want to have one server and a screen from that server. It's only when you want to use a different client, that you have to transcode video, and proxy a virtual screen.
    How does navit store map data files? Canvas is GPU accelerated in newer browsers and web GL is there too. A pure javascript renderer may not be to far fetched and would open up a ton of possibilities with the internet readily available.

    With EE6 java did add push request/response to the system so the actual GPS position wouldn't require a pull (javascript timer).

    If I weren't moving this week I'd throw some prototype stuff together, I've got quite a bit of Java/Groovy/Grails experience.

    Maybe we could come up with a couple prototypes with similar functionality (forget about UI for the most part to begin with everyone could easily skin or create there own in html). For the prototype maybe have like
    • Audio / Media Library (
    • GPS / Navigation (may require some UI canvas)
    • OBD / Sensors
    • Example of system integration (e.g. reading something from dbus etc..)
    • Some sort of cloud / public web service example

  10. #70
    FLAC sama's Avatar
    Join Date
    Feb 2006
    Location
    London, UK
    Posts
    1,375
    Welcome to the discussion, would be great if you can help in prototyping/implementing this.

    Here's some thoughts:

    Audio / Media Library
    I'm not sure if you saw the source code above. I've hooked up DWR and delegated a File object's methods through a service. So you can listRoots, and list files etc. Should be easy to extend that a little to add cd etc. Though this'll only be enough for a file browser.

    As for a media library. Perhaps there's some web based media library that can just be included. I've just had a search around and haven't quite found one, but I did find this, which could prove useful.

    GPS / Navigation (may require some UI canvas)
    I would love to see canvas port of navit.

    OBD / Sensors
    This should be quite easy. An OS level driver and a delegate service that uses DWR's push (like EE6) and the front end can react.

    Example of system integration (e.g. reading something from dbus etc..)
    Same as above. Something generic perhaps.

    Some sort of cloud / public web service example
    I'm glad you touched on this. I thought it would be a bit too far fetched to start throwing that into the why's above as it's still a bit blue sky and early days as you'd need a pretty damn good wireless connection. I personally think that internet ubiquity is coming, but not for a few years yet. Still, a demo should be easy enough. In fact, there's no difference between the server being in the boot, or the server being on the cloud... just a little speed!

    ps nice blog!

Similar Threads

  1. How to: Change windows shell
    By IntellaWorks in forum WinNT Based
    Replies: 44
    Last Post: 04-12-2012, 07:29 PM
  2. EniCar the RR Clone
    By enitalp in forum Software & Software Development
    Replies: 296
    Last Post: 12-13-2008, 05:12 PM
  3. yet another Front End!
    By natedawgg in forum NASAir
    Replies: 50
    Last Post: 06-06-2008, 10:00 AM
  4. New front end
    By alienmanfc6 in forum Other Cool Front Ends
    Replies: 3
    Last Post: 03-30-2008, 08:57 PM
  5. Replies: 20
    Last Post: 11-11-2006, 10:07 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •