Shop OBEX P1 Docs P2 Docs Learn Events
OBEX for non-MIT licensed code - looking for somebody to create this — Parallax Forums

OBEX for non-MIT licensed code - looking for somebody to create this

Ken GraceyKen Gracey Posts: 7,407
edited 2011-09-22 14:48 in Propeller 1
Hey there,

We're received requests to upload non-MIT code in the existing OBEX (hereinafter OBEX1). Some developers want to use Creative Commons or their own form of license which makes code free for hobby use but under agreement for commercial use. Others want to submit code license-free. We thought about widening the scope of OBEX1 to include all licenses but this isn't too practical. First, nearly everywhere we describe OBEX1 it's "all MIT". We've also got concerns about mixing up licenses and putting customers in sticky situations.

The solution we came up with involves the creation of a second OBEX (hereinafter OBEX2) where developers could post any non-MIT code.

So here's what we're asking. We'd like to ask our forum members if you could identify some web-based systems we could customize for OBEX2. We're interested in identifying a code repository that has some of the basic functionality of OBEX1, like being able to upload files, videos and descriptions. Being able to categorize objects by type and processor (Propeller 1 or 2) would be necessary. A rating system would be a benefit, too. I'm not familiar with the possibilities but I imagine one of them involves Google or maybe even a Wiki. As users of OBEX1 I'm pretty sure you have a vision for the way you'd like OBEX2 to function.

There's another purpose of doing this. OBEX1 was initially developed when we couldn't find a web-based solution. It's a collection of custom code (Python?) and was developed by an outside contractor. Maintaining the code base is not easy or cost effective. We are considering porting the OBEX1 content to a new, more maintainable home. By identifying a solution for OBEX2 we are open to a better solution for OBEX1 emerging in the process.

I'm really not sure how this request will be received, but I'm hoping for the best. In short:

(a) Could you recommend some web-based systems that may meet our needs?
(b) Would anybody be interested in setting up a new OBEX2 and helping us administer it, but giving Parallax control but staying involved to assist us?

Thank you for any thought given to the topic.

Sincerely,

Ken Gracey
«1

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2011-09-12 21:34
    Ken,

    check out http://opencores.org/projects

    open one of the tabs

    See if they will give you a copy of the software.

    Regards,

    Bill

    p.s.

    This may be the source code... http://www.coactivate.org/projects/opencore/project-home
  • rosco_pcrosco_pc Posts: 468
    edited 2011-09-12 22:29
    Why not go for one of the many "sourceforge" solution. It is maybe a bit more than you wanted. Here is one that seems flexible (everything is a module) and is a google code clone: http://www.indefero.net/
  • jazzedjazzed Posts: 11,803
    edited 2011-09-12 22:43
    I really like google code. It has a wiki, source browsing, change tracking, bug issue management, etc... People can even create a clone of the repository for managing their own change sets. People with no source control experience may not like it though.
    rosco_pc wrote: »
    Why not go for one of the many "sourceforge" solution. It is maybe a bit more th Here is one that seems flexible (everything is a module) and is a google code clone: http://www.indefero.net/
  • rosco_pcrosco_pc Posts: 468
    edited 2011-09-12 22:46
    I agree, but the tool I linked to also allows a normal upload/download way of working
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2011-09-12 23:08
    I'd prefer something akin to SourceForge as they seem to have the means to report bugs, accommodate further development via collaboration, and offer good version control. All these items have matured under the Unix/Linux side of computing where good communication is absolutely necessary. Many other solutions may just repacked older proven ways without understanding them.
  • smbakersmbaker Posts: 164
    edited 2011-09-12 23:09
    A few things that would be on my wish-list for a better OBEX:

    * Ability to browse source without downloading

    * Space for the author to include nicely formatted documentation (Wiki-like)

    * A version control system, so that changes could be tracked and viewed by end-users

    * It'd be really sweet if I could check out the entire OBEX with "svn checkout http://parallax.com/obex"

    * ... and then you could update the whole thing with "svn update"

    One option would be one of the Trac/Wiki/Subversion systems out there. I've generally only used those systems where a small number of authorized users could modify content; I don't know how well they scale in practice to many different users and the possible security implications (what happens when one user edit's another author's code?).

    Another option to subversion is git, although personally I hate git with a passion. It is growing on me though... slowly.

    EDIT: Trac is at http://trac.edgewall.org/ ... check out the source browser, in particular.

    EDIT2: These version control systems are often organized like big directory trees (with an additional dimension of history and branching). Categorizing things is just a matter of choosing an appropriate directory convention. For example /trunk/processor/category/objname (example: /trunk/propeller1/graphics/tv_text). As long as there's a firm foundation, a custom search system could be thrown together on top of it in something like python. If memory serves, these things are usually backed by a SQL database which is convenient for putting together queries. Wiki conventions could parallel the source tree conventions (example: Propeller1GraphicsTvText) and some custom glue could be written to link wiki pages to the appropriate places in the source code repository.
  • SRLMSRLM Posts: 5,045
    edited 2011-09-13 00:22
    For public names, I think OBEX1 and OBEX2 are bad choices: to the newcomer, OBEX2 implies that it is the second version of the "standard library" and so OBEX1 can safely be ignored. A non numerical name would be better IMHO. Perhaps "OpenOBEX".
  • Heater.Heater. Posts: 21,230
    edited 2011-09-13 00:33
    Except with some of the licensing terms mentioned that "OpenOBEX" might be more restrictive and closed that the OBEX.
  • BeanBean Posts: 8,129
    edited 2011-09-13 04:47
    Ken,
    I would prefer checkbox that would "Show non-MIT licensed object". Rather than a completely different OBEX.

    My delima is that I don't want a company using my code to make money with somthing that I have ethical issues with (things that kill people for instance).

    How about 3 or 4 "standard" type licenses then a "OTHER" category where the end user would have to read and understand the unique license for that object.

    Bean
  • SapiehaSapieha Posts: 2,964
    edited 2011-09-13 05:14
    Hi Ken

    I'm second to that Bean say

    Bean wrote: »
    Ken,
    I would prefer checkbox that would "Show non-MIT licensed object". Rather than a completely different OBEX.

    My delima is that I don't want a company using my code to make money that I have ethical issues with (things that kill people for instance).

    How about 3 or 4 "standard" type licenses then a "OTHER" category where the end user would have to read and understand the unique license for that object.

    Bean
  • potatoheadpotatohead Posts: 10,261
    edited 2011-09-13 05:59
    I'll third it.

    One OBEX, with license type selection on upload:

    1. "standard" Parallax MIT (what most will expect, as that is the state of things now)

    2. a list of "others"

    3. USER, see LICENSE.TXT file and contact info.

    On the download / search section, leave the standard checked, and users can check and uncheck that and others.

    I personally would not mind a source code management system. Google code is impressive. Source Forge is less so, though it's been around a while too.

    No matter what is done, simple package download needs to be a ready option. Many users will just go and get the code, park it somewhere, and then essentially "rip, mix, burn" to get their goals met, or learn stuff. They may return code too, and if they are the type to just rip, mix, burn, they are gonna want to upload a package, and we are gonna want to just take it, because having the code there is always better than not, even if it's messy, etc... doing the work to sort some stuff out is not always comparable to just authoring clean.

    From there, you get people who grok revision control systems. They can check in, out, etc... If revision control is a part of the system, then user accounts and such all need to be linked to repositories, with all that rolled up to search and packages of various kinds. There are reasons why there are online systems offering this. The reason is it not being insignificant to tie all that together nicely.

    Because of that, either adopt one, or host one locally, but don't build one is my vote.
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-09-13 06:13
    I also recommend google code as a repository. It allows issue tracking, and include a wiki. You can post the code as files (viewable) or as archives (zip download).

    I also recommend a single repository with a selection of license, as most folks don't care about license until immediately prior to release. (During development, we just want to get it working, after development, we can figure out if we want to rewrite something from scratch).

    If you do go the two separate repository route, PLEASE CHOOSE DESCRIPTIVE NAMES. OBEX1 and OBEX2 only have meaning to people that already know what they mean, and your target is NEW people, that don't already know what piece of code resides where. Resources are already hard enough to find, please don't add another layer of annoyance by choosing "marketing's idea of cute and clever" in your naming scheme.
  • Ken GraceyKen Gracey Posts: 7,407
    edited 2011-09-13 07:14
    If you do go the two separate repository route, PLEASE CHOOSE DESCRIPTIVE NAMES. OBEX1 and OBEX2 only have meaning to people that already know what they mean, and your target is NEW people, that don't already know what piece of code resides where. Resources are already hard enough to find, please don't add another layer of annoyance by choosing "marketing's idea of cute and clever" in your naming scheme.

    The names OBEX1 and OBEX2 are only for purposes of this thread; there is no intent to use them beyond here. I realize how quickly names become established and I prefer descriptive names as well (I dislike cute/clever marketing names that don't describe the product, concept, etc.). Funny thing is that the worse name we ever had for a product "SX52 Con Carne" came from one of our engineers, not a marketeer. Engineers can make silly marketing decisions too.

    Ken Gracey
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-09-13 07:55
    Ken,

    You're proposing that Parallax support an object exchange where your customers may have to negotiate with individual "contributors" for the right to use their software. Are you sure that this is in the best interests of Parallax Semiconductor and its would-be clients? On the one hand, such an exchange would appear to have Parallax's blessing, since you'd be hosting it; on the other hand, you have no control over the customer experience, once the negotiating begins. If that experience turns out to be bad for the customer, it could reflect badly on Parallax. The single MIT license approach has worked well, it's clean, and it leaves no quarter for conflict.

    The other downside I see is that, by making a non-free-for-commercial-use OBEX so readily available, the MIT-licensed OBEX may lose contributions from which it might otherwise have benefited by being the "only show in town."

    But if you choose to go down the proposed road, by all means, keep the two repositories separate. Call one the Object Exchange; the other, the Object Marketplace, for example. The latter would have to have a boldly-positioned disclaimer that absolves Parallax of any connection to, or responsibility for, your customers' dealings with its individual authors. I still don't see an advantage to Parallax by offering it, though.

    -Phil
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-09-13 08:21
    Ken Gracey wrote: »
    Funny thing is that the worse name we ever had for a product "SX52 Con Carne" came from one of our engineers, not a marketeer. Engineers can make silly marketing decisions too.

    Actually, this is a good example why "engineering" and "cute" generally do not go together well regardless who comes up with it. :)

    Thank you for consideration of this point.

    @Phil - Consider how Ebay has not control over the customer experience after the bidding is completed, however the buyers and sellers can be "rated". Bad customer experiences on ebay have not crippled their effectiveness. This is simply another paradigm to which we adapt.
  • BeanBean Posts: 8,129
    edited 2011-09-13 08:30
    Phil,
    I can see your point.

    But I would be highly upset if I posted a "proximity" object and found out that some company was making millions from it's use in anti-personal mines.
    With the MIT license, I have no way to keep them from using it for that purpose.
    Given the choice (or lack thereof) I would prefer to not publish anything, then to have my work be used for such a purpose.
    I know the above is an extreme example, but the point is, you have no control over how your code will be used.
    Some people might have similar concerns for things that kill animals, harm the environment or invade people's privacy.

    Bean
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-09-13 08:33
    prof_braino,

    The difference between Parallax and eBay in this context is that eBay's product is the auction service itself. It's not something they're using to entice customers to another line of products -- customers who might be put off from those products due to a bad auction experience. I might also mention that both eBay and its sister company PayPal are often put in the position of refereeing disputes between buyers and sellers. I'm sure that's not a position Parallax wants to be in.

    -Phil
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-09-13 08:45
    Bean,

    I appreciate your concern for how your creations might be used if you lose control over them. At some point you just have to let it go, though, confident in the knowledge that the good will outweigh the bad. How many jelly-bean CMOS logic chips do you think get used for nefarious purposes each year? For that matter, how many BASIC Stamps or SX chips? But that doesn't mean that TI or Parallax should scrutinize every sale -- many made at arm's length by distributors -- to try to weed out the bad guys. As much as I hate to say it, the kind of scrutiny you propose for your software dealings is the type of speedbump that could turn off a potential Propeller customer if encountered in a Parallax-sanctioned marketplace. And that's one reason why -- for Parallax's sake -- I'm less than enthusiastic about a paid object exchange.

    -Phil
  • RaymanRayman Posts: 14,999
    edited 2011-09-13 09:21
    I think this may be a good idea. I have a lot of stuff that I'm reluctant to post with MIT license. Creative Commons sounds pretty good though.

    BTW: I also have stuff that I don't put in OBEX, just because I'm lazy. This probably wouldn't help that issue though...
  • mindrobotsmindrobots Posts: 6,506
    edited 2011-09-13 12:18
    Upon reading both sides of this, I'm leaning toward the OBEX as it is with the MIT license for contributed objects. If someone wants to provide objects/code under different licensing, have better revision control, problem tracking or Wiki support, they can refer folks to where it is being hosted through the Forums. The only real change to OBEX might be better searching or key word support - sometimes it is hard to sift through all the "almost" objects looking for the one you need.

    Along the same lines, the Parallax Semiconductor Gold OBEX should have MIT licensed objects that are filtered and vetted to a GOLD standard. You should be able to go there and find the object to support the hardware you are looking to use or the app note you just read. Each object should be the preferred way Parallax intends the micro to be interfaced to a peripheral or a standard way for some function to be performed. From an FE's point of view, the potential time taken up when a customer says I've got IO_Serial_4plus from the OBEX and John Doe's Compass Object and most of Kye's SD card object and it doesn't work.....versus I hooked up A,B and C with these 2 objects from the Gold OBEX and I'm seeing this is invaluable. If an object is changed/fixed/retired/etc. it should be documented and traceable (sorry for the extra documentation/tracking work).
  • idbruceidbruce Posts: 6,197
    edited 2011-09-13 15:18
    @Ken
    Would anybody be interested in setting up a new OBEX2 and helping us administer it, but giving Parallax control but staying involved to assist us?

    Any monetary compensation involved with this project?

    I built a website many years ago that might provide you with a handy layout and a lot of fully functional HTML, JavaScript, and PERL code. I always figured that one day it would be my Phoenix. It was a pretty popular website until I lost my financial support and it went under.

    One main PERL script edits and maintains the entire directory. It can be a HUGE website or a single directory.

    Anyhow, the top scrolling box could provide main subject code areas, and the second scrolling area could provide available objects. By clicking a line in the second scrolling box, the object and all pertinent information would load below.

    Bruce

    EDIT: The website was actually called scrollables.com, as you can see from the image, this was over a decade ago. A google search proudly presents remnents from years gone past :)
    752 x 461 - 78K
  • Dave HeinDave Hein Posts: 6,347
    edited 2011-09-13 15:56
    I would go with Google code, as a few others have suggested. I think there is some open source code that could be ported to the Prop, but it can't be put in the OBEX because it has some other license that conflicts with the MIT license. This will become a bigger issue when the GCC tools become available for the Prop, and more C-based applications are ported to the Prop.
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-09-13 17:18
    Another thing about google code, the items appear on a google search without having to manually register the page with the search engine, or perform any page rank trickery.

    For any that have not seen this a zillion times here is the example for propforth.

    http://code.google.com/p/propforth/
  • RaymanRayman Posts: 14,999
    edited 2011-09-13 17:38
    [QUOTE=Dave Hein;1035598 This will become a bigger issue when the GCC tools become available for the Prop.[/QUOTE]

    I was wondering what the impetus for all this was, but now I think it's pretty clear when you bring up GCC...
    I imagine Parallax is facing a dilema with wanting to provide GCC and all the stuff that can go with, all incompatible with MIT license...
  • frank freedmanfrank freedman Posts: 1,983
    edited 2011-09-13 21:19
    Looks like mindrobots has said what I think as well. You are not going to protect anything by exposing it to public viewing. Also should you find something that looks like your code, well prove it. How substantially does it have to be to resemble your code to be identifiable let alone worth being actionable. Can you even afford it? Proabably not. And that is if the law applies in humongo asian country with a track record of making free use of IP.

    I don't totally agree with the position of having a "gold standard" way of doing a thing. Who would want that responsibility(determining what meets the standard)? Certainly no sane person. I would agree with coding standards, deliverables such as functional descriptions, BOMs, documentation, revision numbering and history tracking. These are things a real shop does to one extent or another.

    Parallax should stick with the mit license and let deviants do what they want to do outside of OBEX just to avoid being sucked into any of a number of legal entanglements that would otherwise cost valuable resources, primarily money and time. Just make the improvements requested by the membership and let the IP holders bear the responsibility of exposing or protecting their works. Parallax: this could well turn into a corporate tar baby.

    Just my own way of how I see it,
    Frank
  • bsnutbsnut Posts: 521
    edited 2011-09-14 02:10
    From reading this thread, I can see why Ken wants to get away from using an outside contractor to try to save money and have better over the cost. This is a smart move on Ken's part.

    But, Bruce's idea isn't a bad one if Parallax wants to handle it on there own. But, if Parallax takes is approach it will require a lot server space to handle what we forum members would like and already stated in this thread.

    I 'm going to cover some of the other concerns, such as Bean's. If, someone (I am one of them) don't want to use the MIT license sometimes. They have two choices
    1) Give the code your end user directly (Forum member PM, Forum member email)
    2) Not to post there code at all

    This will keep your code private and saves you headaches later on down the road.

    But, I agree with everybody else that the OBEX exchange for non-MIT code or any code should live on Google's servers. The one big advantage for Parallax is that, this Google service is free and its paid by adds and Parallax can always place add. This a small price to pay if they place a add on Google.
  • Heater.Heater. Posts: 21,230
    edited 2011-09-14 05:10
    Having an OBEX II jammed full of code under hundreds of different licenses, some well know others home made, is such big pain for anyone other than hobbyists that I wonder if it is worth doing at all. Even there it's a pain. If I want to use Propellers in my feline psychology research (FPR) experiments I have to check all the licenses on any objects I might pick up that they don't exclude causing stress to cats or other hindrances.

    Note: No cats are harmed in the pursuit of FPR.
  • BeanBean Posts: 8,129
    edited 2011-09-14 05:43
    I don't know about others, but in my mind there is a huge difference between a hobbiest using my code to do something I don't like (no big deal for me) and someone making money using my code to do something I don't like.

    I would be fine with a license that allows non-profit use, personal use, etc with no restrictions. ONLY restriction with for-profit uses. I'm even fine with a "must get permission with for-profit uses" (no money, you just need my "okay" to use my code in a for-profit use).

    I know this complicates things, but only for people making a profit. And if they are making a profit I don't see it as a big problem to get an "okay" from me.

    I am not trying to persuade Parallax to do anything. I'm just stating my feeling.

    Bean
  • Heater.Heater. Posts: 21,230
    edited 2011-09-14 09:58
    Bean,
    I am sympathetic to that view.
    I suspect though you might be disturbed to find out how well your code is working in my latest non-profit project, the Propeller Powered Baby Mulcher (PPBM).

    Note: No babies were harmed in the development of the PPBM. This idea is for illustrative purposes only.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-09-14 11:24
    Heater,

    PPBM -- LOL! If you weren't so far from here, I'd make you come clean the mouthful of coffee I sprayed on my keyboard as I read that! :)

    -Phil
Sign In or Register to comment.