Re: App blueprint, advice please!
Hi Michael Thanks for the signals and slots tip, that's great. As for NI: rant My experience is limited and quite dated(8-9 years) but it is my understanding that in order to distribute free (as in beer) Labview code the recipient must have Labview loaded. It is possible to generate an executable that will run without Labview loaded but a small license fee must be paid back to NI. In addition I believe this executable code generation option is at an additional premium to the base Labview. Indeed some of the instruments I want to control have their own NI drivers already. This however has not displaced the native software that shipped with the instruments originally. I believe only an open source model will provide enough empowerment to tempt lab operators away. I started with Linux back in 2004 but it is only in the past year that I have started posting to lists. I have been completely awestruck at the responses to my questions, both here and on other lists. With so many talented people like you answering my questions without expectation of compensation, how can a company like NI compete in terms of customer service, I am saving up for this project. I would rather spend 2K sponsoring my open source comrades then those punks at NI /rant Okay I am back now, Have a great day-Patrick Michael L Torrie wrote: Patrick wrote: Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc Seems to me that the lingua franca of this kind of scientific instrument control and data collection is LabView. Most institutions already have site license for this software. LabView is ideal for several reasons: - Works with most GPIB cards, indeed most interface cards come with labview drivers - Easy graphical environment. Lets you chain things together (in a similar manner to bash, actually), but it's all within the program, rather than kludging together non-integrated programs. Plus it's all in-process. No external spawning things needed, which is expensive. - Royalty free code. You can sell you vi programs or give them away, or whatever. They aren't compiled, but can be obfuscated, or not. So you could sell labview code that people could modify. On the other hand, there's no reason why you couldn't use GTK and, say, Python to do similar things provided that you have drivers for the GPIB boards, and have a well-defined interface that you can use to easily build modules that you can string together. Certainly I don't believe C is the appropriate language to do any gluing. I would recommend python. Data collection modules that need to be close to the hardware can be done in C, but the rest could easily be done in python. If you defined a protocol for modules to communicate with each other, then you can very easily string modules together, hooking data out buses on one module (object) with the data in on another module. The GTK signals and slots mechanism would make this quite easy to do, all in-process. Michael It's a terrible over simplification but hopefully illustrates the idea. I only have a few hundred dollars to put towards this now but hopefully by the later half of 2008 it will be a few thousand. Please feedback with any thoughts you might have on this whole process. Thanks-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
Patrick wrote: Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc Seems to me that the lingua franca of this kind of scientific instrument control and data collection is LabView. Most institutions already have site license for this software. LabView is ideal for several reasons: - Works with most GPIB cards, indeed most interface cards come with labview drivers - Easy graphical environment. Lets you chain things together (in a similar manner to bash, actually), but it's all within the program, rather than kludging together non-integrated programs. Plus it's all in-process. No external spawning things needed, which is expensive. - Royalty free code. You can sell you vi programs or give them away, or whatever. They aren't compiled, but can be obfuscated, or not. So you could sell labview code that people could modify. On the other hand, there's no reason why you couldn't use GTK and, say, Python to do similar things provided that you have drivers for the GPIB boards, and have a well-defined interface that you can use to easily build modules that you can string together. Certainly I don't believe C is the appropriate language to do any gluing. I would recommend python. Data collection modules that need to be close to the hardware can be done in C, but the rest could easily be done in python. If you defined a protocol for modules to communicate with each other, then you can very easily string modules together, hooking data out buses on one module (object) with the data in on another module. The GTK signals and slots mechanism would make this quite easy to do, all in-process. Michael It's a terrible over simplification but hopefully illustrates the idea. I only have a few hundred dollars to put towards this now but hopefully by the later half of 2008 it will be a few thousand. Please feedback with any thoughts you might have on this whole process. Thanks-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list -- Michael Torrie Assistant CSR, System Administrator Chemistry and Biochemistry Department Brigham Young University Provo, UT 84602 +1.801.422.5771 ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
App blueprint, advice please!
Thanks yet again to all for your help with this thread! and special thanks to John, Nicola, Dan, Gian, Lance and Reed for yesterdays posts. This is awesome! I was inspired by Göran's advice to promote selling code not software. I had an idea for the project name yesterday so I registered a couple of domain names. code-read-dot-org (code-red, as in I read the code, get it??) In the next 4-6 weeks I hope to upload diagrams of the proposed infrastructure and I would like to create a login page were I can post information to those who are interested in this project. Information such as competitors screenshots. I thought the login might be wise as I am not sure of the legality of openly posting this material. I will layout the technical challenges to this project, source code I have already collected and a proposal for a business outline. Thanks so much, this project has taken a quantum leap forward in a few days-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Sun, 16 Dec 2007 16:21:02 -0500 Patrick [EMAIL PROTECTED] wrote: I have wanted to learn Ruby for a while now, I could definitely do that. Nicola was saying that my Bash idea might be a problem because of the spawn time involved with bash. Whether you can or cannot live with certain spawn delays of course depends only on how frequent those spawns occur. Is Ruby pretty fast spawning these secondary programs? Is the Ruby shell a true system shell? I am just wondering if I could still access ftp, netcat, ssh ect.. You can call external programs without hassle from any compiled or interpreted language I'm aware of with a single system() function call. So there's no need to contrive some artificial division between system shell, interpreted language or script. --D. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Dec 16, 2007 9:21 PM, Patrick [EMAIL PROTECTED] wrote: I don't need much convincing that the whole Bash as a nervous system + (Python/C/Ruby etc) as the muscle is a dumb idea! I did something slightly similar (quite) a few years ago to control a large painting scanner. The program had to control a large robot, a lighting and filter system and a camera, be easy to modify and be usable by non-experts. I did a simple GUI in C++/Motif (shows how long ago this was) with large buttons for Start Scan and so on. Each button launched a bash script, and each bash script used a set of low-level programs written in C to drive different parts of the hardware. It worked reasonably well. As I recall, the issues with the design were: 1) difficulties transferring data between the GUI and bash at script start and stop time 2) bash's lack of complex data structures and arithmetic 3) progress feedback from a running bash script was ugly 4) cancelling a running script (and leaving the hardware in a sane state) was ugly 5) performance ... was fine, actually, but I can imagine applications where it might not be If I had to do it again I think I'd do the whole thing in Python (except the very low-level hardware control). It ought to fix these problems. John ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
Thanks to Dan and John for your last posts and thanks to all. I am really delighted with the response to my question! So it looks like the I could use Bash to spawn other programs but it is likely problematic and no one actually recommends it as a first option. So as Dan was saying, I can launch other programs written in other languages from system() function calls. So I could link lots of them together regardless of language they are written in and if I really needed to I could still access Bash commands like ssh, netcat right? I think both Python and Ruby can be extended with C without using a system call. Is there anything wrong with calling them from system calls instead? Thanks again Göran! I read up on Ruby last night for a couple of hours. I am sure I can pick this up. Python is the only language I can actually work at a reasonable pace in. I am just learning C. Is there a reason you chose Ruby over Python? If I am already using Python, do you think I need to switch languages to achieve my goal? And thanks for the tip, I want to sell code not software! I am going to save this entire thread somewhere safe. I hope one day I can compensate or somehow return the favor to all involved. THANKS!!!-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Mon, 17 Dec 2007 08:52:11 -0500 Patrick [EMAIL PROTECTED] wrote: So as Dan was saying, I can launch other programs written in other languages from system() function calls. So I could link lots of them together regardless of language they are written in and if I really needed to I could still access Bash commands like ssh, netcat right? Those aren't bash commands -- they are other programs! All those things that you seem to think of as part of bash (cp, ls, rm, ftp, ssh, nc, tar, sed, gzip etc.) are in fact all external programs. The difference between shell languages and other languages is that shells typically interpret all commands as external programs to be started, with the exception of the few truly builtin commands (see the section BUILTIN COMMANDS) in the bash man page. So to start another program from bash, just write it on a single line. To start another program from C or Perl, just wrap it into a system() function call. Ruby and Python will have similar functions, but I don't know them. --D. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Sat, 2007-12-15 at 21:27 -0500, Patrick wrote: Sorry for the long email but I really could use some help. I sell used lab instruments to people doing great work researching cures. The closed source programs to control and process data from these instruments often cost 20K. The people providing the software really abuse their legal positions. Writing an open source replacement has become an obsession for me. I want to build an App to control dozens or even hundreds of instruments using different ports/buses (GPIB, Serial, Parallel etc) and I want to do some fairly complex data processing after. Then I want to be able to save the data in a database and/or in numerous formats. Once you have the python modules to do the IO with the devices, you can use those python modules from Glom, to put everything in a database. You can then write another python script for a button in Glom that exports to whatever other extra file format you want. That at least saves you from having to do much database or UI coding. You should be able to test this idea quite easily once you can do python-based IO with at least one of these devices. The problem is, I am not qualified for all this, I am a part time, self taught programmer. I will need to pay others to bring this to fruition. I figure the best way to solve a complex problem is to break it down into smaller parts. I was thinking about writing small GTK/Python, GTK/C programs that can read from standard input and write to standard output. I was thinking that I could write customized BASH scripts for people to connect these small programs into a cohesive App. When others get involved they could simply do the same and write more custom BASH commands, indeed in their language of choice. I think using Bash as the App nervous system and Python/C as the muscle would make sense but I have never seen such an App, which makes me think it is probably a stupid idea. I have been going around in circles for about a year now and still do not have a line of code to show for myself. This project may take many years. Any feedback on my blueprint would be really appreciated-Patrick -- [EMAIL PROTECTED] www.murrayc.com www.openismus.com ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
App blueprint, advice please!
Thanks Murray!, Dank U Neils, Grazie Nicola! Thanks Michael! Glom, Comedi, NTD and Michaels tips are all great pieces to the puzzle. I really appreciate your feedback. If someone is moderating this list please let me know if I have traveled to far away from GTK but I was just wondering about a few things: There is an intense need for this in labs. My business is still a bit unstable but I have proven to myself that I can sell things and that I can recognize markets. We could write an open source App and still provide for our families, there is money in this. We would be solving a huge set of problems afflicting scientists everywhere. I am confident that I would have no trouble finding sponsors or customers. I am not sure which open source strategy would be best, having an open download link like Ubuntu or charging for each copy like Redhat. I am able to break down the biggest barrier to entry for this project and that is the cost of the actual equipment and the native software to run it, which would set someone else back tens or even hundreds of thousands. I would like to get others involved but I am not sure what would be the best way to offer compensation. All of the OEM vendors control each others equipment so I don't see how they would be in a position to sue but there is some liability potential here and even a frivolous lawsuit could hurt. I am not concerned about myself. I have done some research and I don't see how anyone could take legal action if I did not mention their company names. I plan on explaining the devices that can be controlled visually with drawings and even in event that something did happen I can structure the organization to reduce liability. However perhaps it would be best to pay others on a bounty basis and keep them clear of all of this rather then include them in the credits of the project. Do you think this could work? With so many aspects to this does anyone think that using Bash would be useful? For example if we designed all the smaller programs to read and write from/to standard input and output, they could be interlinked with other Bash commands such as ftp, netcat, ssh, mailx and so on.. Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc It's a terrible over simplification but hopefully illustrates the idea. I only have a few hundred dollars to put towards this now but hopefully by the later half of 2008 it will be a few thousand. Please feedback with any thoughts you might have on this whole process. Thanks-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Sun, 16 Dec 2007 12:47:44 -0500 Patrick [EMAIL PROTECTED] wrote: With so many aspects to this does anyone think that using Bash would be useful? For example if we designed all the smaller programs to read and write from/to standard input and output, they could be interlinked with other Bash commands such as ftp, netcat, ssh, mailx and so on.. Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc It's a terrible over simplification but hopefully illustrates the idea. I got the idea but I don't think the Bourne shell (bash) would be a particular wise choice to implement it, owing to weird programming paradigms and an almost complete absence of arithmetics. I'm a big fan of C (and shell scripting as well), but it seems that Python has been gaining lots of popularity in the past years. --D. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Sun, Dec 16, 2007 at 08:57:01PM +0100, Dan H wrote: On Sun, 16 Dec 2007 12:47:44 -0500 Patrick [EMAIL PROTECTED] wrote: With so many aspects to this does anyone think that using Bash would be useful? For example if we designed all the smaller programs to read and write from/to standard input and output, they could be interlinked with other Bash commands such as ftp, netcat, ssh, mailx and so on.. Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc It's a terrible over simplification but hopefully illustrates the idea. I got the idea but I don't think the Bourne shell (bash) would be a particular wise choice to implement it, owing to weird programming paradigms and an almost complete absence of arithmetics. I'm a big fan of C (and shell scripting as well), but it seems that Python has been gaining lots of popularity in the past years. Hello! Or you could do as us and implement control in Ruby. Ruby of Python is quite as good. Then you have a modern scripting language to do control with. And now for wom Gtk promotion. We have been developing a SCADA system in Gtk, C and Ruby with a SQL database as central storage. http://www.freescada.com A tip for you is to be in the buissines of selling source code. We have had quite a success with this. Most of our competitors have closed code and the customers are locked in. Since we provide our customers with souce code they can expand the application and for them selves check the quality. In this way we have developed an application for the swedish defence. http://www.raditex.se/~gh/bilder/RadarBildPulser.png -- Göran Hasse Göran Hasseemail: [EMAIL PROTECTED] Tel: 08-6949270 Raditex AB http://www.raditex.se Planiavägen 15, 1tr Mob: 070-5530148 131 34 NACKA, SWEDEN OrgNr: 556240-0589 VAT: SE556240058901 -- ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
- Original Message From: Niels Heirbaut [EMAIL PROTECTED] To: gtk-app-devel-list@gnome.org Sent: Sunday, December 16, 2007 2:32:04 AM Subject: Re: App blueprint, advice please! On Dec 16, 2007 3:27 AM, Patrick [EMAIL PROTECTED] wrote: [snip] I want to build an App to control dozens or even hundreds of instruments using different ports/buses (GPIB, Serial, Parallel etc) and I want to do some fairly complex data processing after. Then I want to be able to save the data in a database and/or in numerous formats. [snip] There is an open source project called Comedi that might at least provide the drivers for the data acquisition equipment. Have a look at http://www.comedi.org/. --- I used the comedi drivers to write code for the Diamond dmm32at card. But, there were a couple of other cards that I wrote the drivers by hand, and the interface code was written in bash. These were all PC/104 cards. One was called Pearl, and was just a set of 16 switches, either open or closed. You couldn't even tell whether a switch was open or closed, so I had to keep state information. You got the state from the /proc interface. Anyway, comedi is easy, but depending on the board, it may be overkill. I also write one for the Sensoray model 518. It was a lot of sensors, current loops, thermocouples, things like that. I wrote it by hand, also. I'm not sure if comedi would have been too much or not. Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
Thanks! Sorry for being so dense but just to double check, do you spawn C and Python programs form the main App written in Ruby? I have wanted to learn Ruby for a while now, I could definitely do that. Nicola was saying that my Bash idea might be a problem because of the spawn time involved with bash. Is Ruby pretty fast spawning these secondary programs? Is the Ruby shell a true system shell? I am just wondering if I could still access ftp, netcat, ssh ect.. Thanks for your time. And thank you Dan and Nicola too. I don't need much convincing that the whole Bash as a nervous system + (Python/C/Ruby etc) as the muscle is a dumb idea!-Patrick G Hasse wrote: On Sun, Dec 16, 2007 at 08:57:01PM +0100, Dan H wrote: On Sun, 16 Dec 2007 12:47:44 -0500 Patrick [EMAIL PROTECTED] wrote: With so many aspects to this does anyone think that using Bash would be useful? For example if we designed all the smaller programs to read and write from/to standard input and output, they could be interlinked with other Bash commands such as ftp, netcat, ssh, mailx and so on.. Lets say a customer had a detector and a pump to pump a sample through it. We could write a Bash script that works something like this: -icon launches Bash script -sends variable 2 to pump command to pump 2 ml per minute -pump command sends signal to serial port or GPIB bus, etc -bash sends variable 230 to set the detector to wavelength 230 nm -bash autozeros detector -launches plot command -after that launches data process command -then launches database storage command - emails whoever, turns your coffee maker on or whateveretc..etc It's a terrible over simplification but hopefully illustrates the idea. I got the idea but I don't think the Bourne shell (bash) would be a particular wise choice to implement it, owing to weird programming paradigms and an almost complete absence of arithmetics. I'm a big fan of C (and shell scripting as well), but it seems that Python has been gaining lots of popularity in the past years. Hello! Or you could do as us and implement control in Ruby. Ruby of Python is quite as good. Then you have a modern scripting language to do control with. And now for wom Gtk promotion. We have been developing a SCADA system in Gtk, C and Ruby with a SQL database as central storage. http://www.freescada.com A tip for you is to be in the buissines of selling source code. We have had quite a success with this. Most of our competitors have closed code and the customers are locked in. Since we provide our customers with souce code they can expand the application and for them selves check the quality. In this way we have developed an application for the swedish defence. http://www.raditex.se/~gh/bilder/RadarBildPulser.png ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
App blueprint, advice please!
Sorry for the long email but I really could use some help. I sell used lab instruments to people doing great work researching cures. The closed source programs to control and process data from these instruments often cost 20K. The people providing the software really abuse their legal positions. Writing an open source replacement has become an obsession for me. I want to build an App to control dozens or even hundreds of instruments using different ports/buses (GPIB, Serial, Parallel etc) and I want to do some fairly complex data processing after. Then I want to be able to save the data in a database and/or in numerous formats. The problem is, I am not qualified for all this, I am a part time, self taught programmer. I will need to pay others to bring this to fruition. I figure the best way to solve a complex problem is to break it down into smaller parts. I was thinking about writing small GTK/Python, GTK/C programs that can read from standard input and write to standard output. I was thinking that I could write customized BASH scripts for people to connect these small programs into a cohesive App. When others get involved they could simply do the same and write more custom BASH commands, indeed in their language of choice. I think using Bash as the App nervous system and Python/C as the muscle would make sense but I have never seen such an App, which makes me think it is probably a stupid idea. I have been going around in circles for about a year now and still do not have a line of code to show for myself. This project may take many years. Any feedback on my blueprint would be really appreciated-Patrick ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Sat, 2007-12-15 at 21:27 -0500, Patrick wrote: Sorry for the long email but I really could use some help. I sell used lab instruments to people doing great work researching cures. The closed source programs to control and process data from these instruments often cost 20K. The people providing the software really abuse their legal positions. Writing an open source replacement has become an obsession for me. I want to build an App to control dozens or even hundreds of instruments using different ports/buses (GPIB, Serial, Parallel etc) and I want to do some fairly complex data processing after. Then I want to be able to save the data in a database and/or in numerous formats. Wow I recently (2 years ago) built a similar project on a work-for-hire gig... I used GPIB, Digital I/O, signal generators and processors. I'd be happy to give you some pointers. Email me off list and we can discuss it. mike -- Michael R. Head [EMAIL PROTECTED] http://picasaweb.google.com/demiri.head.wedding ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: App blueprint, advice please!
On Dec 16, 2007 3:27 AM, Patrick [EMAIL PROTECTED] wrote: [snip] I want to build an App to control dozens or even hundreds of instruments using different ports/buses (GPIB, Serial, Parallel etc) and I want to do some fairly complex data processing after. Then I want to be able to save the data in a database and/or in numerous formats. [snip] There is an open source project called Comedi that might at least provide the drivers for the data acquisition equipment. Have a look at http://www.comedi.org/. Regards, Niels Heirbaut ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list