|
 |
|
08-29-2008, 12:35 PM
|
#16
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
Quote: Originally Posted by 2k1Toaster 
IPS is just talking between apps basically. That is the point of a COM object. RoadRunner uses it, that is what all the plugins are. So does almost every app today. Talking over a network can be done with sockets if you wanted too.
And dbus is the same correct? I dont know the terms but the ideas mostly since self taught. And yes dbus is on windows: http://sourceforge.net/projects/windbus if that is infact what you are talking about.
When was the last time you saw the flying multi-coloured window logo? 1995?
COM is not the same as dbus: http://dbus.freedesktop.org/doc/dbus...tml#components
A closer comparison would be to compare dbus to .NET's WCF. While I believe that WCF is a bit more elegant, the main issue is the lack of system utilities and apps that expose an interface. With DBus, I can get info from a number of different system components from networkmanager to the x server (compiz also) to the hardware abstraction layer itself. It's nice that way.
When I wrote the above wiki page, I made a lot of assumptions based on what my current knowledge of window's frontends. Do RR plugins actually run out of process?
NeonDev, this is the kind of discussion that i was hoping to have. There are obvious ups and downs to implementing plugins over IPC vs implementing a traditional plugin model. nGhost does both for a number of reasons. For a good reason why IPC can be important, consider the following:
User X has a multi-carpc system. One for the front, and one for the back for his kids. He wants the front to have ultimate control over everything, but the rear PC is a little more powerful and has more disk space because his kids want to play video games. Because of the large disk space in the rear PC, he stores all his media there.
Now, using a traditional plugin model, how would you enable control of the second PC? There are probably several different ways to do this, IPC over a network seems to be an elegant solution in this case. (given, you could create a traditional plugin that does the network communication...)
nGhost accomplishes this by exposing every command it can perform through it's IPC API. The front pc is simply told to connect to the nGhost instance running in the back, and a special screen allows the front pc to control the playback or anything else of the back pc.
The flexibility of system design and system configuration greatly increases. You can have a headless server act as the main playback device with slim client touchscreens throughout the car all being able to control playback. Or you can have the DB on one machine, the file share on another, the gps/obdII logger on one (there are a number of reasons why you would want a dedicated real-time logging machine separate from media playback and other things...), and the wifi and GUI on another all being able to share the information across the network. Some of these examples are probably not practical, but i hope you see my point. The beauty is nGhost get's all this flexibility for free just by exposing control through it's IPC API.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
08-29-2008, 12:58 PM
|
#17
|
|
Variable Bitrate
Join Date: Feb 2008
Posts: 431
|
IPC over IP is certainly a necessary function for multi computer setups. Does any windows front end support multi system or even multi display setups?
is there any benefit for single PC systems considering that is all most of us have/want?
|
|
|
08-29-2008, 01:19 PM
|
#18
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
Quote: Originally Posted by NeonDev 
IPC over IP is certainly a necessary function for multi computer setups. Does any windows front end support multi system or even multi display setups?
is there any benefit for single PC systems considering that is all most of us have/want?
Oh, I forgot to mention, plugins that use the IPC interface are language agnostic. I'm writing a wifi plugin for nghost (which is written in c++) in c#. nGhost comes with a command line IPC translator called nghost-cmd written in python. There is a traffic plugin written in perl.
The interface allows plugins to be written in whatever language is most productive for the particular purpose of the plugin. This is a benefit for systems on one machine and multi-machines because it allows for rapid plugin development because of the benefits you gain from the language of your choice.
Of course, you don't get the nice fancy connection abilities that are a part of libnghost's framework, but implementing a socket connection to nghost in most 4th gen languages is just as easy as what the framework provides.
To answer an earlier question, yes the framework includes graphical interface methods. This of course can't be used by plugins written in languages that can't use c++, but in that case, the plugin can just use nGhost itself to provide a gui with the plugin creates using some methods which are exposed through the IPC API.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
Last edited by kev000; 08-29-2008 at 01:21 PM.
|
|
|
08-29-2008, 01:22 PM
|
#19
|
|
Fusion Brain Creator
Join Date: Mar 2006
Location: Colorado, but Canadian!
Posts: 8,862
|
Quote: Originally Posted by NeonDev 
IPC over IP is certainly a necessary function for multi computer setups. Does any windows front end support multi system or even multi display setups?
is there any benefit for single PC systems considering that is all most of us have/want?
Nobody has implemented it that I know of, but it is possible to do easily. And I think every main frontend supports 1pc -> multiple monitors (control or display only)
And like your last sentence, nobody is going to run 3 or 4 carPC's. Even the kids and dad will use 1 PC almost always. Cost and ease of implementation.
So I can see this being beneficial in Home Automation, but those apps already do networking interfaces so again, not so much new. Maybe in how, but not in end result.
|
|
|
08-29-2008, 01:25 PM
|
#20
|
|
Fusion Brain Creator
Join Date: Mar 2006
Location: Colorado, but Canadian!
Posts: 8,862
|
Quote: Originally Posted by kev000 
Oh, I forgot to mention, plugins that use the IPC interface are language agnostic. I'm writing a wifi plugin for nghost (which is written in c++) in c#. nGhost comes with a command line IPC translator called nghost-cmd written in python. There is a traffic plugin written in perl.
The interface allows plugins to be written in whatever language is most productive for the particular purpose of the plugin. This is a benefit for systems on one machine and multi-machines because it allows for rapid plugin development because of the benefits you gain from the language of your choice.
Of course, you don't get the nice fancy connection abilities that are a part of libnghost's framework, but implementing a socket connection to nghost in most 4th gen languages is just as easy as what the framework provides.
To answer an earlier question, yes the framework includes graphical interface methods. This of course can't be used by plugins written in languages that can't use c++, but in that case, the plugin can just use nGhost itself to provide a gui with the plugin creates using some methods which are exposed through the IPC API.
RR is written in VB... Plugins have been written in VB, VB.NET, C#, C++, and I think someone had a java something for recording video, but never finished it.
|
|
|
08-29-2008, 01:50 PM
|
#21
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
Quote: Originally Posted by 2k1Toaster 
Nobody has implemented it that I know of, but it is possible to do easily. And I think every main frontend supports 1pc -> multiple monitors (control or display only)
And like your last sentence, nobody is going to run 3 or 4 carPC's. Even the kids and dad will use 1 PC almost always. Cost and ease of implementation.
So I can see this being beneficial in Home Automation, but those apps already do networking interfaces so again, not so much new. Maybe in how, but not in end result.
Thinking about it more, I can see at least two cases where you would want 2 pc's:
1) for the uber audio-file guy: machine 1 would be a headless system running a real-time OS (linux of course). machine 2 would do nav, obdII logging, gui stuff game playing and everything else.
2) for the uber engine modding guy: machine 1 would do data-critical real-time logging of engine sensors, etc. machine 2 would do everything else.
Most people will probably never use it, but is it because they don't have the need, or is it because that there is not underlying software infrastructure that allows it? Whatever the answer, I think the concept is cool
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
|
|
|
08-29-2008, 02:14 PM
|
#22
|
|
Super Moderator & Wal-Mart Greeter
Join Date: Sep 2003
Location: New Mexico, USA
Posts: 3,394
|
I have often thought of the same thing. I have/am seriously considered/ing doing a dual PC setup in my car. My reasons are a little different though. I've noticed my EPIA 800 can play music for almost 3 hours with the car off, and the battery still has enough juice to crank and start the car. It is however slow as hell using it for anything else. But back when I had my P4 system, I got maybe 45 minutes to an hour before I had to start it up otherwise the battery would be too weak to crank. So I've been trying to dream up a way to have an ultra low power system as well as a nice fast beefy system for just that purpose. Maybe someday...
__________________
Tidder
Try RevFE
The best frontend I've ever used, period.
Best Quote EVER!!
Quote: Originally Posted by bramlet 
I try to search but I usually only find posts where people ask questions and darquepervert tells them to search.
|
|
|
08-29-2008, 03:12 PM
|
#23
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
Quote: Originally Posted by Tidder 
I have often thought of the same thing. I have/am seriously considered/ing doing a dual PC setup in my car. My reasons are a little different though. I've noticed my EPIA 800 can play music for almost 3 hours with the car off, and the battery still has enough juice to crank and start the car. It is however slow as hell using it for anything else. But back when I had my P4 system, I got maybe 45 minutes to an hour before I had to start it up otherwise the battery would be too weak to crank. So I've been trying to dream up a way to have an ultra low power system as well as a nice fast beefy system for just that purpose. Maybe someday...
That's a good point. You could have a super low powered embedded system running nghost that acts as the audio player which is on all the time. Then a full carpc that connects to it for everything else.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
08-29-2008, 10:44 PM
|
#24
|
|
Admin. Don't bug or I'll byte.
Join Date: Sep 2004
Location: Corning, NY
Posts: 6,143
|
I realize that the architecture of nGhost is completely different, but everytime I look at the demos, it does less stuff than RR. What is so unique about it?
Aside from the architectural elegance of nGhost, what is it that is so innovative? I think RR is incredibly innovative from a functionality standpoint.
I should point out that I'm not criticizing, just asking. Help me to understand.
|
|
|
08-30-2008, 12:56 AM
|
#25
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
Quote: Originally Posted by Bugbyte 
I realize that the architecture of nGhost is completely different, but everytime I look at the demos, it does less stuff than RR. What is so unique about it?
Aside from the architectural elegance of nGhost, what is it that is so innovative? I think RR is incredibly innovative from a functionality standpoint.
I should point out that I'm not criticizing, just asking. Help me to understand.
you are 100% correct in your observation. RR implements more features than nGhost does. Bear in mind RR is one of the oldest frontends in existence (possibly the oldest with a sizable following?). The nGhost 2 series is almost a month old now. It's superior in every way architecturally than ng1, but that's not saying much... The idea is, with a good solid core of functionality, additional features will be easy to add. With an innovative core, in theory, you can get more innovative features.
Also, I'm a firm believer that architecture attracts developers. We are a small bunch right now, but growing. The more devs, the faster we will catch up with RR. Then, the world  !
Right now, nGhost has one feature that will really set it a part, it integrates better with your OS. It is your mobile desktop.
In the end, when each has equal features (without regard to who implements what better...), the choice will amount to this: "with which can I build the leanest, fastest, and most useful system." At that point, there will only be one choice: nGhost.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 12:10 AM.
| |