PurePEDIA: An online collaborative project for PureBasic

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

PurePEDIA: An online collaborative project for PureBasic

Post by Tristano »

Hi everybody,

I've been working for a while on an idea: to create a collaborative project to collect resources and tutorial for PureBasic. The idea stemmed from the fact that I realize that there are tons of precious PB resources scattered all over the forums and the web, but often its difficoult to understand to which version of PB the code refers to.

I've thus started working on the idea by creating a static CMS that takes markdown files and compiles them into a website. The project is aimed to be collaborative, so everyone can contribute to it via Git and GitHub. Markdown formatting makes maintainance of the project very easy, and formatting/highligthing of the code is taken care automatically. Instead of resorting to CMS that require installation of various languages and dependencies (Python, Ruby, ecc.), I've opted for Hugo, which is a self-contained single executable file that takes care of serving, building (compiling) and deploying the whole project:

https://gohugo.io/

I'm almost though with the creation of a dedicated theme that can handle properly the different categories, PureBasic code highlighting and all that is needed.

Before announcing a project of this size, I wanted to first test if it was doable. And I've reached a stage in which I have a working prototype and feel I can announce that such a project can be done and could be launched somewhere around September.

Using Git for version control would allow to ensure that all the tutorials and code examples can be updated with each new release of PureBasic -- this being the main aim of the project: preserving all the cool resource that exist out there, by updating them through collaborative effort.

Of course, nothing would be added without due permissions or licensing.
As a starting point, we already have two books released under CC BY-NC-SA:

PureBasic - A Beginner's Guide -- by Gary Willoughby
http://www.purebasic.fr/english/viewtopic.php?t=37059

Programming 2D Scrolling Games Book -- by John P. Logsdon and Derlidio Siqueira
http://www.purebasic.fr/english/viewtop ... 14&t=58232

I will be contacting the authors to ask them if they agree to see their books included in the project. As a matter of fact, I'm struggling a bit with the issue of licensing. As posted here:
http://opensource.stackexchange.com/que ... rent-licen

I'm still trying to work out how to handle the project licensing. The issue is that I want the project to be a "container" of tutorials, examples, articles, books, guides, and whatever any users would like to contribute. I wish the container itself to be as open licensed as possible, but also to allow each contribution to be inserted according to the license that the authors sees best fit. Most of licensing conflicts arise when creating single code that merges different projects, with different licenses, into a single derivative work. In this case, each contribution would be preserved as an individual part, inserted into the context of the whole project -- a bit like a CD released with a computer magazine, containing lots of different software products.

So, I need some advice on the issue of licensing. My aim is to create a collaborative project that might benefit all the PureBasic community, without making anyone unhappy. So I'd like to ear opinions and advice on this idea, before embarking definitevely on it.

I think that this project could really provide a nice way to gather resources in an orderly manner, making it easy to find examples and tutorials that are always up to date with the latest version of PureBasic. The project is intended to be a browsable website online, via GitHub pages, and also a downloadable project viewable offline, via Hugo application (which also acts as a server).

Please, give me some feedback. The basic work has already reached an Alpha stage, and I could publish the project's skeleton on GitHub even shortly. By September we could have a decent first release with ordered sections and ready to accept contributions.

Tristano
The PureBASIC Archives: FOSS Resources:
User avatar
Lunasole
Addict
Addict
Posts: 1091
Joined: Mon Oct 26, 2015 2:55 am
Location: UA
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by Lunasole »

Code: Select all

I'm still trying to work out how to handle the project licensing. The issue is that I want the project to be a "container" of tutorials, examples, articles, books, guides, and whatever any users would like to contribute. I wish the container itself to be as open licensed as possible, but also to allow each contribution to be inserted according to the license that the authors sees best fit.
Hi. For simplicity it can be better to do as wikipedia and use GPL for everything. I don't think that many authors will not like idea to post some their guides or code examples under it (often open-source is assumed when sharing code to forum, just authors like me are too lazy to say something about licensing ^^), and if they not like, just don't post it.


But well man, don't think that I'm some chosen pessimist, but I think that licensing question is your lesser problem here.
There already were (and still are) similar attempts to collect all cool data about PB and store it centralized.
CodeArchiv tool, lot of typical tasks on RosettaCode and non-official PB forums, etc. (here is one started past year basing on github: http://www.purebasic.fr/english/viewtop ... =7&t=64273)
At last the built-in helpfile has more examples, and examples folder has lot of them too.

Looking at all this I can say that it is hard to find enough contributors to be active in long-term perspective, because Purebasic community is not so extra large like some C or C++. So it soon can become a burden, especially if going to check and update everything for every new PB version.
I like the idea to have centralized wiki containing all the cool stuff from forums, nicely structured and formatted, but don't see this possible to do for now (looking at myself -- from time to time I can write or post some article to that wiki like posting here on forum, but that is not enough, even if there will be 10 dudes doing the same. Much more ppl needed for it to be community-driven and not taking lot of time and efforts from every single contributor, and it looks hard to find enough)
"W̷i̷s̷h̷i̷n̷g o̷n a s̷t̷a̷r"
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by Tristano »

Dear @Lunasole,
Lunasole wrote:There already were (and still are) similar attempts to collect all cool data about PB and store it centralized.
CodeArchiv tool, lot of typical tasks on RosettaCode and non-official PB forums, etc. (here is one started past year basing on github: http://www.purebasic.fr/english/viewtop ... =7&t=64273)
thanks for this link, I hadn't come across it. Worth lookin at it.
Lunasole wrote:Looking at all this I can say that it is hard to find enough contributors to be active in long-term perspective, because Purebasic community is not so extra large like some C or C++. So it soon can become a burden, especially if going to check and update everything for every new PB version.
I like the idea to have centralized wiki containing all the cool stuff from forums, nicely structured and formatted, but don't see this possible to do for now (looking at myself -- from time to time I can write or post some article to that wiki like posting here on forum, but that is not enough, even if there will be 10 dudes doing the same. Much more ppl needed for it to be community-driven and not taking lot of time and efforts from every single contributor, and it looks hard to find enough)
Mhhh... This is something that I feared, but I wanted to hear PB "veteran's" opinion about it first. Indeed, without numbers such a project could become difficoult to maintain. I might have to rethink its aims...

All I've done so far is creating a template for Hugo aimed at handling a documentation website, with code-examples, ecc., and I've created a JS syntax definition for highlight.js, so that code examples can be nicely colored. So, the template is good to have, for whatever uses in the future.

I could aim to create a website with the 2 books (PureBasic - A Beginner's Guide, and Programming 2D Scrolling Games Book), and ensure they are both up to date with current PB version. This could be easier to maintain overall, and a good starting point. I could still leave the project open for further contributions.

Possibly, the hard part would be to maintain a large project with lots of contributions. I should start with those 2 books (which are undoubtedly 2 pillars of PB docs), and see what happens -- it would still be worth it, especially having all the source code neatly highlighted, it would make the reading experience easier. After that, the project could be opened for contributions, possibly guides and multi-part tutorials.

Sure, I've foreseen that updating the whole project at each PB updated would be hard. But I also though that having a project were all codes refer to (and/or work with) the same PB version would be worthwhile -- even if it wasn't the latest version. One of the major struggles I had to face while learning PB was searching for code examples, and finding lots of them without knowing which version of PB they refered to, thus trying them out only to discover they wouldn't work with current PB ver.

The idea is that using Git for version control would at least make it easier for someone else to take on the project when no longer updated. So even just republishing these 2 books as they are would be a good starting point. I also had a couple of long guides and tutorials in mind, which I would like to ask the authors if I could include them, in the future.

Going back to the licenses issue, I'm really struggling to find clear-cut answers regarding mixing different projects under an umbrella-project. Any idea on the issue, or where I could look for answers? I actually think that licensing is going to be the major problem here. In two months research and questioning around, I haven't found yet some clear guidelines regarding this specific project licenses case.

Thanks!
The PureBASIC Archives: FOSS Resources:
User avatar
blueznl
PureBasic Expert
PureBasic Expert
Posts: 6161
Joined: Sat May 17, 2003 11:31 am
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by blueznl »

Being notoriously slow in updates myself there's little I can add but to ask you: are you sure?

(Updates can take me years... seriously! Which is why I reply to messages already more than half a year old! See? Point proven! :lol: )
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8425
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: PurePEDIA: An online collaborative project for PureBasic

Post by netmaestro »

I know Kale (Gary Willoughby) doesn't care what you do with his book, not sure about the other one.
BERESHEIT
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by Tristano »

netmaestro wrote:I know Kale (Gary Willoughby) doesn't care what you do with his book, not sure about the other one.
I agree with you, from the announcement he posted on these forums about the book becoming Creative Commons, there was a clear intent to let the book maintainance go and leave to others the task of keeping it alive with updates. But the legal issue still remains, because of hosting on GitHub, and the fact that other projects with difference license would coexist in the same repo.

The whole legal aspects of open source licenses are quite foggy in many real case scenarios — one of them being creating mutiple pojects containers (like a CD/DVD collection). Some licenses where devised strictly with code in mind, other with documents; and when mixing books and code the line of distinction gets a bit blurred.

Anyhow, I've not given up on the PurePEDIA project, just set it aside for a while (I've decided to use AsciiDoc instead of markdown for reprinting the books, and am taking some time to dig into it); in the meantime I've launched «The PureBASIC Archives» project, which is a repo dedicated to gathering resources, links, reviews, ecc:

https://github.com/tajmone/purebasic-archives

I've also added the PDF and examples of the Programming 2D Scrolling Games Book — and soon will be adding the Beginners Guide too!

The PurePEDIA project might become the GitHub Pages website for this project, and the republishing/updating of these 2 books could become a sub-project of this one. Since GitHub offers also a Wiki for each repo (and website and wiki can be maintained in branches of the main project), I could keep it all in one place — which would make maintainance easier than having different repos scattered all over the place.
The PureBASIC Archives: FOSS Resources:
tastyraspberry
User
User
Posts: 39
Joined: Fri Sep 28, 2012 10:22 am

Re: PurePEDIA: An online collaborative project for PureBasic

Post by tastyraspberry »

Hi,

Just to throw my oar in... I am a big fan of this idea. I like the idea of an 'official' wiki. While programming another language we had a wiki and it was a great help and I wrote a few articles myself. It is a great place to go to see the 'current zeitgeist' of the how things are done in the language and it really prevents reinventing the wheel every time you want to do something that should be stock-standard programming. Just for example, I've been trying to find decent procedures for walking a treeview, I ended up coding them myself. I know they are simple and I *know* they are out there somewhere in the forum and the archives and I suspect the next post will be a link to the best way! BUT, it is quite difficult to find, or rather, *I* find it quite difficult to find and you never really know if you have done it the *best* way.

The example wiki we used is https://bb4w.wikispaces.com/ (I know another Basic is here just as an example). It is quite neat and easily navigated.

However, my only warning is that when we started the wiki it was free and now it cost £100 a year to keep going apparently.. they hike up the prices once they had you trapped. So, buyer beware is my only caveat.

I would be against anything too specialised, I don't use GitHub but isn't it quite difficult to use apparently (I open myself here to mirth I know, but I have never used it... ).

I hope I haven't trod on any toes etc. I like this idea.

Yours, expecting next post to be treeview walking procedures!

Michael
IdeasVacuum
Always Here
Always Here
Posts: 6425
Joined: Fri Oct 23, 2009 2:33 am
Location: Wales, UK
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by IdeasVacuum »

Another good source for PB Users is Ray Siegl's WinApi library:
http://www.rsbasic.de/winapi-library
IdeasVacuum
If it sounds simple, you have not grasped the complexity.
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PurePEDIA: An online collaborative project for PureBasic

Post by Tristano »

Hi @tastyraspberry and @IdeasVacuum,
IdeasVacuum wrote:Another good source for PB Users is Ray Siegl's WinApi library:
http://www.rsbasic.de/winapi-library
Thanks for the link! I've bookmarked it.
tastyraspberry wrote: Just to throw my oar in... I am a big fan of this idea. I like the idea of an 'official' wiki.
Surely, nothing «official» in mind, rather an open container from which people could take and give.
At the moment, I've been working more on the "repo" aspect of the project — ie: the GitHub repo offering various resources organized in folders.
Some tutorials are on the way (you can preview them in the dev-tutorials branch), and I've chosen to use AsciiDoc to format them — which allows easily to convert to a number of formats: HTML, ePub, Kindle, Doc, PDF, CHM, and others… And of course, they can be also used in a Website or Wiki with little or no modification (there some AsciiDoc static site builders).

But since GitHub also offers a website and a Wiki for each project, I hope that soon I'll be working on them as well. Basically, the original idea of PurePEDIA was that of a website, but on second thoughts I decided that a collection of documents, tutorials and their code examples could be a better starting point — also, more practical because it centers on a repo which can be dowloaded locally, and doesn't exclude the creation of a website.

The main consideration that I've matured (especially from reading this thread) is that its not worh having to many different scattered projects, but rather a centralized place in which to gather code, tutorials, the website and the wiki. I have accepted the fact that its going to be a loooooong task, requiring patience and growing slowly … But still, its worth it. It's more about putting order in all my notes that I take when I work on projects, and then ordering them and publish them in the repo, to share them with others.

Maybe contributors will join in time and contribute (I now see quite a few new PureBasic repos on GitHub), or maybe not. But at least my efforts won't be lost with some website shutting down due to lack of maintainance — at least Git grants me this continuity in time.
tastyraspberry wrote: However, my only warning is that when we started the wiki it was free and now it cost £100 a year to keep going apparently.. they hike up the prices once they had you trapped. So, buyer beware is my only caveat.
Well, that is exactly an example of what I'm talking about. You should reclaim your work, and prevent it from being lost. All it takes you is to attach a FOSS license to your texts and code, and either publish it somewere yourself, or hand it over to someone willing to.

Really, life is to short to waste it Googling around for answers. Most languages today have well organized API documentation websites, auto-generated as the language gets updated; they have ReadTheDocs, Wikis, and known pools of resources — but most of all, they've learned the basic lesson that the more a language survives the test of time, the more risk there is that chaos creeps in from the cracks of lack of method. And this is what we experience today, when a good deal of time is lost in trying to understand if the PB code we are looking at is compatible with our current version (or even belonging to the same major release of the lang!).

But most of all ... is the lack of licensing which makes all this great pieces of code unusable. Unless published code contains an explicit license that allows its reuse, then one has to assume its there only to be read (and even reading it has implications on its copyright if you are coding something of the same nature yourself)
tastyraspberry wrote: I would be against anything too specialised, I don't use GitHub but isn't it quite difficult to use apparently (I open myself here to mirth I know, but I have never used it... ).
Actually GitHub (the website/service) makes things easier (in respect to Git, the tool): editing a Wiki can be done on its website, through the browser. Downloading a repo can be down on GitHub with a simple click, linking to a zip archive — without having to use Git to clone it (via CLI or via a GUI Tool).

But, yes ... it is a rather specialized tool. But this has more upsides than downsides, as it enforces good standards (which are likely to be around for many years) and a sound method of approaching collaboration. And, most of all, its a users environment were licensing is taken seriously, so most repos (but not all) will have a clear license upfront.

But going back to the project I'm venturing in ... I guess is one of those things that if it manages to grow in time it eventually reaches a critical point were it draws enough attention to gain following, otherwise its just destined to remain a small island in the huge ocean of the Internet. Time will tell...
The PureBASIC Archives: FOSS Resources:
Post Reply