LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 10-25-2011, 12:52 PM   #91
theNbomr
LQ 5k Club
 
Registered: Aug 2005
Distribution: OpenSuse, Fedora, Redhat, Debian
Posts: 5,399
Blog Entries: 2

Rep: Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908

I am not a lawyer, but as I understand it, the use and distribution of existing GPL'd code in certain ways may require you to provide source code if your product is uses the GPL'd code. That's the whole premise of Free Open Source Software (FOSS). It wouldn't really be fair to leverage your product upon the work of others, and then deny everyone else access to your material, would it?

--- rod.
 
Click here to see the post LQ members have rated as the most helpful post in this thread.
Old 10-25-2011, 02:50 PM   #92
Proud
Senior Member
 
Registered: Dec 2002
Location: England
Distribution: Used to use Mandrake/Mandriva
Posts: 2,794

Rep: Reputation: 116Reputation: 116
I think I'm right in saying if you supply devices with GNU/Linux on them, you have to give a copy of the GPLd code or a mechanism for your customers to obtain it (URL, freepost address to send a self-addressed letter for a CD to be sent to, etc). You get a copy of the GPL and a mention of such a mechanism with common things like wifi routers these days.

Your code need only be GPL if it's directly derived from GPL'd code, you can have a closed-source app on a FOSS stack, it's just that as we've hinted, it's not in the spirit of sharing so others can stand on the shoulders of giants as you have done to get to that point.
The only tricky legal case is you can't make a hardware device use GPL'd (specifically v3 or 'v2-or-newer claused') firmware/software but then use checksums or some DRM/code signing mechanism to bar other software from running on that hardware without your consent/using your signing key. Again the spirit of FOSS is to share (free-as-in-libre), so no loophole/weaseling with giving the code out but preventing new binaries derived from it from being used.

The idea is you're assumed to be the best producer of this product, so you're the one people will sign support contracts with, and take bug & feature feedback & effort to. So you can still charge for your product and be the main support company as long as you're the best in the marketplace (so it's still pro-capitalism), see RedHat and their rise to prominence & financial success (specifically in 'these economic times') via supporting an otherwise-free-as-in-money linux distro.

Last edited by Proud; 10-25-2011 at 02:53 PM.
 
Old 10-25-2011, 11:35 PM   #93
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
So if I distribute a computer with ubuntu on it and use java to write my own software I will have to distribute the source? Why use those items if it ruins my business? I can't distribute my device's embedded code as what would I have left? Sounds like the thinking of go into debt to get out of debt of the idiots in charge
 
Old 10-26-2011, 02:56 AM   #94
Nominal Animal
Senior Member
 
Registered: Dec 2010
Location: Finland
Distribution: Xubuntu, CentOS, LFS
Posts: 1,723
Blog Entries: 3

Rep: Reputation: 948Reputation: 948Reputation: 948Reputation: 948Reputation: 948Reputation: 948Reputation: 948Reputation: 948
Quote:
Originally Posted by schmitta View Post
Let me explain once again what I am doing. I invented a device that controls misting in plant propagation using cuttings. Snip This opens the the field of buyers to the onese and twoses of buyers with small systems. (the wholesale people would buy 40 devices or more). The small systems cannot afford to buy a seperate PC running linux and since IBM's name was on the original PC they and everyone following them (MS) got 80% of the pc market.
Consider this:
  • An ARM-based, Linux-compatible single board computer with Ethernet.
    For example, look at SAM9G45-X, which seems to cost about 70 USD. Or maybe Samsung S3C2240 with a 7" touch-TFT for about 160 USD.
  • Minimal Linux stack, based on Debian, Ångström, or Linux From Scratch (for ARM processors).
  • An USB-to-RS485 dongle.
    I'd personally consider using Teensy++ USB microcontroller and one or more RS485 driver chips, for easier cabling. Of course, this is not off-the-shelf stuff, so it needs a bit of thought first. Teensies are cheap, work as any USB HID device, and can be programmed directly using nothing but an USB cable. The largest model also has 8192 bytes of RAM, which means you should be able to handle messages in the Teensy, and only transfer completed messages (and error signals) between the host and the Teensy. To compile C for it, gcc-avr works very well.
  • A power supply (2A @ 12 VDC regulated, maybe 3A if using multiple RS485 chips).
  • A microSD card (for OS on SAM9G45) and one or more SD cards for data/logging.
  • A plastic water-resistant chassis (100mm x 100mm x 30mm ≃ 4"x4"x1.2" or larger) with silicone gaskets.
    (Anodized aluminium would be even better, especially if used in a greenhouse.)
The parts should be obtained for well under 200 USD, probably for about 150 USD. Most of the software stack would be open-source, i.e. you'd need to provide their sources (say on a CD, DVD, an USB stick, or on a web page). Obviously you'd only need a minimal OS -- say, Apache plus your own software.

Personally, I'd write your own software in C and Python, in two parts: One part would be a management daemon written in GNU C, which receives control messages using a local datagram socket, and basically maintains the control schedule and logging. This part could be closed source, since it would not be a derivative of anything; no legal or moral requirement to open-source it.

The other would be the web frontend, written in Python. This should (for business reasons) be open source. Adapting the web frontend for individual customers' needs is a key business point. Consider, for example, having each individual sensor and setting visible over the nursery floorplan in a general view, with details, logs and control for each sensor (group) only one click away. Not only does it make it much easier for non-tech-savvy users to use it, but it also means it will suit the customer needs much better -- making them aware of how much they could save money by using your system. You are unlikely to get any real market share with generic off-the-shelf products, but having something that does suit exactly the customers needs will sell even in bad economic times.

You should be able to source the server hardware for about 200 USD each, maybe 250 to 300 including assembly and testing, if completely outsourced. This does not include your sensors and control devices or their cabling. With the touch TFT, and a good water-resistant anodized aluminium chassis -- at less than 20 watts passive cooling is enough -- you could even put the server inside the nursery/greenhouse; a local control interface that would work even without any ethernet connections. (I'd guess some customers would prefer local control, with only remote monitoring, no remote control. Some plants are just too expensive to risk outside tampering.)

I fail to see why you would ever even consider using the Windows platform for something like this.

On the software side, any relational database is way overkill for this.. but you and others seem so keen on using one, I won't waste your time harping about that.
 
Old 10-26-2011, 04:22 AM   #95
Proud
Senior Member
 
Registered: Dec 2002
Location: England
Distribution: Used to use Mandrake/Mandriva
Posts: 2,794

Rep: Reputation: 116Reputation: 116
Quote:
Originally Posted by schmitta View Post
So if I distribute a computer with ubuntu on it and use java to write my own software I will have to distribute the source? Why use those items if it ruins my business? I can't distribute my device's embedded code as what would I have left? Sounds like the thinking of go into debt to get out of debt of the idiots in charge
If your embedded code isn't derived from something under an open source licence, no you don't have to give that code out.

If you're using ubuntu and Java, for that software you're bound by the licences of those pieces of software, as you should have read before accepting/using copies of them (else you have a copy without a right, and are in violation of copyright). GPL's pretty easy to follow, if you distribute the code or derived work (compiled programs or source) you can't keep your modifications of it to yourself, you have to supply the code. For ubuntu you'd just give a link to their website, technically ensuring the version you use is still provided.
For Java, it's the same if you're using a GPL version, but if you're using the Sun official JVM etc, they have a different licence which you might need to read (again millions of systems & people/companies comply, it's not hard to, it's just not a free-for-all public domain thing).

Being as it is easy to comply with GPL/similar FOSS licences, and your product would not be anywhere near as quick & easy to bring to market without using them, it is simply a suggestion that you too give back to the community and put your independant work under something like the GPL, but there's no obligation if you didn't directly derive your drivers/deamons/etc from already FOSS licenced code.

As for ruining your business case, the idea is that you have the most experience with actually taking your software, putting it on sufficient, cost-effective hardware, and then supporting it should there be flaws or desired new features. With this advantage, the threat of rivals leapfrogging you is minimal, and again using FOSS any improvements would be available to you for use on all your systems after you buy just 1 instance of theirs, so they can't maintain an advantage like that. Again, RedHat are now huge & worth billions iirc, and their market is against Microsoft, IBM, Sun, etc. They're successful not because they hoard their source, but because they're the most efficient to sign a support contract with for the FOSS software they deal with. Most people won't need support anyway, so you end up with a lot of customers buying the initial product and/or support and then not needing your resources or becoming a rival.

Again, you can still charge whatever you want to for the product (it doesn't have to be free-as-in-beer by any means), you could even take a generic PC with pure GPLd code on it (imagine just slapping a linux distro on it) and charge the earth/as much as the hardware + a Windows 7 licence, it's just that people would be mad to pay loads for your copy when they can create the same for far less by going back to your supplier of the GPLd stuff and getting a copy from them (probably for free, perhaps not, but still taking the theoretical profit margin back for themselves in exchange for the effort of doing so, and then they can try to sell the same/slightly cheaper rival 'product' as you were. Quickly the system favours money going towards those offering real benefit, and everything else is nominal).

Last edited by Proud; 10-26-2011 at 04:35 AM.
 
Old 10-26-2011, 03:22 PM   #96
aspire1
Member
 
Registered: Dec 2008
Distribution: Ubuntu
Posts: 62

Rep: Reputation: 23
For what it's worth and it may not be relevant to what you're doing...anyway.

I recently had to devise a way of connecting an Arduino connected via usb/serial to network. I used a java program accessing the serial port. I delegated
responsibility for syncing read/writes and providing data to the arduino. Arduino sent a handshake to the java program when it wanted to send data
and Arduino sent a handshake to the java program when it was available to receive data. I cached the data sent from the Arduino in the java program
using a map so any clients that connected didn't have to directly read from the Arduino. The Arduino would constantly update the data in the java program
map.

Clients connected via sockets to the java program. I used apache and Php to pass through client connections ( inefficient under lots of connections
but it meant I could use Apaches security features). No reason why browsers couldn't connect directly to the java program though.
The requests to write would be forwarded to the java program which would queue them and send them down the usb/serial to the Arduino.

The model may be of use or not.
 
Old 10-26-2011, 09:34 PM   #97
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
Those licences state that if you improve linux or java you need to open source it but not if it has nothing to do with java or linux.
 
Old 10-27-2011, 02:09 AM   #98
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
Aspire1 -- in your java io did you use javax.comm or RXTX?
 
Old 10-27-2011, 03:10 AM   #99
aspire1
Member
 
Registered: Dec 2008
Distribution: Ubuntu
Posts: 62

Rep: Reputation: 23
I used RXTX.
 
Old 11-01-2011, 03:17 PM   #100
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
To nominal Animal - The reason to use windows is that the user most likely has windows on a PC already so he would not have to buy another PC with linux on it. Those people would be small users. For large users then yes a PC with linux on it would be appropriate as they have the money to buy it.
 
Old 11-01-2011, 03:19 PM   #101
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
Acording to GPL would I have to supply my code written in java as open source or just java and linux itself?
 
Old 11-01-2011, 04:27 PM   #102
Proud
Senior Member
 
Registered: Dec 2002
Location: England
Distribution: Used to use Mandrake/Mandriva
Posts: 2,794

Rep: Reputation: 116Reputation: 116
Just Java & GNU/Linux, unless you built your code upon something already GPLed. I think you can also just link to their downloads online as that's a reasonably reliable source. Double-check your Java JRE/JDK is actually GPL though, the official one from Sun isn't iirc.

Basically code from scratch you own the copyright and can licence however you like (including different licences, you don't have to just pick one).
But if you get code from someone else, the creator holds the copyright and you need a licence to have a copy.
Usually businesses are selling you a licence for this copy when you buy the disc/download. Free Open Source Software is usually also free-as-in-beer but any which way you legally recieve a copy of the binaries(buy or just take), it'll be with a copy of the GPL/licence and also a copy of the source or a method to get it.

So if you started your code using a file that had a GPL header in it/copy in a text file next to it, you're bound for that file's derivatives. Else you're not, usually because you started your code file from scratch and it's all yours to do with as you wish.

I hope that made things clear rather than confusing. The GPL and other FOSS licences are small and really worth a read, especially if you're using GNU/Linux and already agreed to it when you clicked through your distro/Developer Kit's download page/installer.

Last edited by Proud; 11-01-2011 at 04:31 PM.
 
Old 11-09-2011, 02:42 PM   #103
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
I downloaded Eclipse for java to Ubuntu. I unpacked the file but eclipse cannot see the java 6 that came with ubuntu so the application cannot execute. How do I get eclipse to be able to execute on java's jre . Not that the eclipse application must remain in the same folder as the rest of its software to be able to access it. Thanks. Alvin...
 
Old 11-10-2011, 05:21 AM   #104
Proud
Senior Member
 
Registered: Dec 2002
Location: England
Distribution: Used to use Mandrake/Mandriva
Posts: 2,794

Rep: Reputation: 116Reputation: 116
Can you get to this screen http://img35.imageshack.us/img35/562...talledjre2.png ?
If not, ensure you've correctly installed your JDK (not just JRE) and updated any environmental variables including PATH and CLASSPATH as per the Sun documentation.
 
Old 11-12-2011, 11:44 PM   #105
schmitta
Member
 
Registered: May 2011
Location: Blacksburg VA
Distribution: UBUNTU, LXLE
Posts: 352

Original Poster
Rep: Reputation: Disabled
To Proud -- I did not realize you were in England - just saw that. When I displayed the url it looked like it was for windows. I did not update class or classpath. Orical(?) now has java. I need to find the documentation. I tried apt-? -install jdk or something like that and it found java6 on the disk. unfortunately I don't know enough linux to know what to do - I have a book and will continue with this learning experance.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Enterprise LAMP Summit & Big LAMP Camp LXer Syndicated Linux News 0 09-21-2009 01:51 AM
LXer: LAMP vs. LAMP Rematch LXer Syndicated Linux News 0 11-08-2006 03:03 AM
A program for FC4 to communicate with a Windows Hyperterminal Program at other end vhasun Linux - Software 2 05-19-2006 02:54 PM
My C Chat Program is unable to communicate. mcp_achindra Programming 1 03-20-2004 10:04 AM
program to communicate directly with ethernet sabby Programming 4 12-18-2002 11:37 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 04:28 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration