PureBasic OpenSource Projects

Developed or developing a new product in PureBasic? Tell the world about it.
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureBasic OpenSource Projects

Post by Denis »

ChrisR wrote:and now it's all good, I can start playing with it :D
Good news

I try with SDKs v8.1A and v10.0A and it compile.
A+
Denis
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PureBasic OpenSource Projects

Post by Tristano »

Allegory of the long spoons

When I think of long-term open source collaborative projects, I often recall the well-known allegory of the long spoons (every religion has its own variant).
A man spoke with the Lord about heaven and hell. The Lord said to the man, “Come, I will show you hell.”

They entered a room where a group of people sat around a huge pot of stew. Everyone was famished, desperate and starving. Each held a spoon that reached the pot, but each spoon had a handle so much longer than their own arm that it could not be used to get the stew into their own mouths. The suffering was terrible.

“Come, now I will show you heaven,” the Lord said after a while. They entered another room, identical to the first — the pot of stew, the group of people, the same long-handled spoons. But there everyone was happy and well-nourished. “I don’t understand,” said the man. “Why are they happy here when they were miserable in the other room and everything was the same?”

The Lord smiled, “Ah, it is simple,” he said. “Here they have learned to feed each other.”
We've probably all been through the programmer's Hell — where changes are published via Zip files on websites, soon destined to become dead links, and to integrate each others' changes to the code we had to spend sleepless night comparing the changed files against the original codebase, side-by-side (muttering unrepeatable swear words out of frustration).

The good news is that not all programmers are masochists (although it's a profession that's intrinsically always a bit masochist) so some people decided to turn their life to the better, and came up with version control systems (Git being just one of them, surely not the best one, but definitely the trendiest one), so we can enjoy a relatively "paradise-like" condition when it comes to integrate all the changes that different people do to the same code, and are able to blend them together without going totally bonkers.

In the end, programmers from both camps do the same thing (eat the same stew), the only difference is how they handle "the long spoons" of programming, i.e. whether in a collaborative manner or each one on his/her own. Think of Git (Mercurial, Bazaar, SVN, Fossil, ecc.) as the spoons of the allegory, for after all they are just tools (also, in GitHub we fork repositories, so the allegory holds up well enough, having now a spoon and a fork as well ;-)).

Allegories aside, collaborating with the right tools is a real time saver for everyone — for the independent contributors and the maintainers of the original code alike.

The only question we have to ask ourselves is if we see ourselves still programming in five years time. If the answer is yes, than it's worth cutting out an hour every day and dedicate it to learn how the cutting-edge collaborative tools work, for every minute we invest in learning them is going to save as hours in the future. Besides, some of these tools are like passports without which you can't enter the arenas where all major open source collaborations happen — in the past few years GitHub has managed to attract all the major open source players, from Mozilla to Google, Microsoft, nVidia, and countless others. The reason is just that when you play in the same team you like to live under the same roof, for communications and all sorts of exchanges become much easier.

Even discussing and planning technical matters becomes difficult without dedicated platforms (e.g. on a forum) — being able to create tags and associate each individual code change with a specific discussion thread is essential for keeping track of what needs to be done, what is being worked on and what was accomplished. Life is too short to have to sift through long forums threads trying to spot a comment you saw months before; we need tools that can provide us quick and up-to-date access to the information we need, and being able to relate that info to the actual state of the code, in real time and in a way that let's us know the real status of the project as of now.

Using GitHub Issues, Projects, the Dashboard and Wiki makes organization really tidy and smooth, allowing to organize work within time-framed schedules, and provide user-editable documentation. And the good news is that creating an account is absolutely free — and unless you are a corporation, you probably won't need to switch to a fee plan, not for open source projects.
The PureBASIC Archives: FOSS Resources:
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PureBasic OpenSource Projects

Post by Tristano »

@Shardik:
Shardik wrote:Unfortunately I am not familiar with GitHub pull requests. But perhaps someone with more knowledge than me might create a pull request for this and even define a checkbox in the editor pane of the preferences so that everybody is able to switch the indentation behaviour to his liking. These are the steps I have undertaken:
- Download the PureBasic IDE from GitHub as a zip file and unpack it
- Open PureBasicIDE/ScintillaHilightning.pb in your PB IDE
- Jump to procedure GetIndentContinuationPrefix()
- Comment out the 2nd line in the procedure (my preferred indentation was already in place but commented and unfortunately not chosable in the preferences):
The problem in integrating the changes you've carried out outside of a version-controlled workflow is that this demands a considerable amount of work from the repository maintainers.

Since your work is disconnected from project history, it's difficult to reconstructs all the changes (snapshots) of the code that occurred since you've edited on top of a specific snapshot.
With Git, probably integrating these changes would have been a matter of a plain and simple rebase operation, but without it it would require manually replaying all the changes that occurred upstream (in the main project) over your code (which most likely will break things, if done in a single bulky operation, without insights into the single steps), and then it would require attempting a three-way merge which, again, is unlikely to work out of the box because of the state of disconnection of your code to the project.

Just imagine when files and folders get renamed and moved around. Without Git, which is able to track how, when and where those changes occurred in the timeline, it might become too difficult to harmonize the two divergent codes.

Then imagine if twenty, fifty or even a hundred contributors were to hand over code changes this way ... the situation would soon become untenable, and all of the (little and precious) time that maintainers can dedicate to the open source side of the project would end up devoured by these "assisted integrations". The problem in open source is always time, which is the currency we donate to projects. There's always a shortage of time, and a never-ending pile of things to do. The more contributors there are, the more time becomes essential to be able to coordinate all efforts.

Unfortunately (or fortunately, depending on the angle you look at it), open source collaboration demands putting the needs of the community first, which implies having to abide to some tedious standards and best-practices for the good of group (call it "tyranny of the majority" if you like). The point is, strategy ultimately pays in the long term (even if sometimes this means sacrificing the individual for the sake of the group).

Fortunately, open source projects are usually (but not always, nor necessarily) based on good will and determination to help each other, so no one is going to be left behind if he strives to join the flow of the project.

So, probably your code is still possible to integrate into the project, but will be harder to do so. It would be less harder if you tried to use Git, and ask for help when you get stuck, for at least the code would never become disconnected from the original project.
The PureBASIC Archives: FOSS Resources:
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

Re: PureBasic OpenSource Projects

Post by Tristano »

PB Open Source Wiki: Now Openly Editable
kenmo wrote:I would like to see all these technical details and tips in a common place, rather than buried in this announcement thread, if that's OK with everyone else.
The maintainers of the PureBasic Open Source Projects have now unlocked the project Wiki for public editing:

https://github.com/fantaisie-software/purebasic/wiki

Anyone with a GitHub account can edit existing pages and create new ones — no need for Git, just the browser.

Wiki pages are in markdown syntax, which is similar in principle to the BBCode syntax used here on the Forums (but simpler) and the GitHub WebUI provides all the formatting tools to simplify editing.

The obvious advantages of using the Wiki instead of the Forum are:
  • Users can edit the same page over and over, instead of keeping appending comments and ratifications to an ever-growing thread.
  • The Wiki is dedicated to the IDE, therefore knowledge is centralized instead of being spread thin among other topics.
  • Being part of GitHub, the Wiki offers some level of interconnection with the project codebase, it's development and the rest of GitHub and its projects.
As much as I do understand how important the PB Forum is to its users, being a comfort zone were a well established community regularly gathers and feels at home, I do invite you to consider that centralizing all the efforts toward the open source parts of PureBasic into its main project is something that is going to greatly help those who participate to its development (including those who help with the Wiki and the documentation) by keeping all the relevant bits and pieces under one roof (instead of spreading thin all over the place and across multiple platforms).

With the release of the IDE sources on GitHub, we (as a long standing community) are confronted with new elements, and we're suddenly seeing parts of PureBasic becoming accessible outside the comfort zone of these Forums. Nothing feels like home, and to the PB online community these Forums will always be their true home, and nothing will change that.

I understand that asking users of these forums to discuss elsewhere the very language and tools around which these Forums and its community were built might sound outrageous — who would ever exchange celebrating festivities at home with consuming them in a super market? Because, let's face it, that's what GitHub is to us compared to the PB Forums: a huge, vast melting pot of developers where single individuals and big corporations coexist side by side. Compared to these Forums, which have a strong identity, a well established history and its own way of doing things, moving to GitHub can only sound alienating and somehow diluting our identity.

My opinion is that it should be clear that there is no "move" taking place, simply some parts of PureBasic have been open sourced and the choice was made to follow the main stream of modern development, instead of keeping it confined to the private niche. Since that project is likely to attract lots of different contributors in the course of time, and being by nature a core project to the whole PB community, I fully understand this choice, for setting up a collaborative project capable of handling cooperation the way GitHub (as a services) empowers you to, is hardly achievable without a massive tech-infrastructure. Besides, like it or not, GitHub has gradually become the central reference for open source in the past years (so much so that it even absorbed Google Code).

So, I plead my case for joining the new Wiki on GitHub, sharing your valuable information on how to handle configuration and compilation errors, and dependencies issues.
From the GitHub side, we can't just copy and paste useful contents from this Forum — the terms and conditions of GitHub are very strict about licensing and copyright issues, and usage of third party contents is tightly regulated. If any volunteers are willing to resume the discussions on this Forum regarding setup and compilation problems, and post a resume on the Wiki, providing a link back to the full discussion on the PB Forum, that would really help.
The PureBASIC Archives: FOSS Resources:
User avatar
RSBasic
Moderator
Moderator
Posts: 1218
Joined: Thu Dec 31, 2009 11:05 pm
Location: Gernsbach (Germany)
Contact:

Re: PureBasic OpenSource Projects

Post by RSBasic »

Image
Image
Image
User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: PureBasic OpenSource Projects

Post by HeX0R »

Shardik wrote:or better change it to

Code: Select all

  Procedure.s GetIndentContinuationPrefix(Previous$)
    ; Use this for a simple "block mode" indentation
    ProcedureReturn GetIndentPrefix(Previous$) + Space(TabLength)
TabLength is defined in PureBasicIDE/Common.pb as Global and contains the number of spaces used when pressing the <Tab> key. So the indentation with spaces will be correct independant of your chosen setting for your preferred tab key spaces. The commented default above will always indent with 4 spaces.
I didn't get my hands on the IDE Source Code (yet?), but wouldn't that fool all the people who are using REAL tabs?
User avatar
idle
Always Here
Always Here
Posts: 5042
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: PureBasic OpenSource Projects

Post by idle »

still no joy on Linux x64 it results in gtk-3 being linked in with gtk-2., The only way I could get it to build was to copy the files from
purebasic/subsystems/gtk2/purelibraries into purbasic/purelibraries overwriting them .
Windows 11, Manjaro, Raspberry Pi OS
Image
User avatar
deseven
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Jan 12, 2011 3:48 pm
Location: Serbia
Contact:

Re: PureBasic OpenSource Projects

Post by deseven »

Thanks! This is truly a step in the right direction!

Dark mode for macOS is finally possible (not in any way final, i'll make a pull request if i'll manage to finish it):
Image

UPD: PR as promised
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8425
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: PureBasic OpenSource Projects

Post by netmaestro »

Fantaisie Software and its creator have no equal anywhere. A truly amazing company and registered users are fortunate indeed.
BERESHEIT
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5342
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: PureBasic OpenSource Projects

Post by Kwai chang caine »

Great master wrote:Fantaisie Software and its creator have no equal anywhere. A truly amazing company and registered users are fortunate indeed.
Yes it's sure 8)
But a part of fortunate, is also to have generous members like you and numerous others, who always ready to help with your amazing knowledge, without reclaim something in exchange 8)
Since the long time that i have the chance to be into this familly forum, even if i'm french....i not watch the frog with same eye now :wink: :lol:

The wonderful team, his incredible family and the fastest and most knowledgeable forum I know, is the main key to the power of PB 8)
Since i know you all, i'm so proud, ...... 8)

With all the masters of my PB love temple, Image
Kwaï chang cain the little grasshopper, can say now and at everybody


Image
ImageThe happiness is a road...
Not a destination
User avatar
captain_skank
Enthusiast
Enthusiast
Posts: 636
Joined: Fri Oct 06, 2006 3:57 pm
Location: England

Re: PureBasic OpenSource Projects

Post by captain_skank »

Bloody hell KWAI - nearly spat me tea out all over the monitors :mrgreen:
User avatar
Josh
Addict
Addict
Posts: 1183
Joined: Sat Feb 13, 2010 3:45 pm

Re: PureBasic OpenSource Projects

Post by Josh »

I don't even want to know what Leonardo DiCaprio does with KCC during these kinds of movements :mrgreen:
sorry for my bad english
User avatar
Fangbeast
PureBasic Protozoa
PureBasic Protozoa
Posts: 4747
Joined: Fri Apr 25, 2003 3:08 pm
Location: Not Sydney!!! (Bad water, no goats)

Re: PureBasic OpenSource Projects

Post by Fangbeast »

Oh hell no!! I just spat coffee, biscuits and yoghurt out both eye sockets. KCC!!!!!!
Amateur Radio, D-STAR/VK3HAF
User avatar
idle
Always Here
Always Here
Posts: 5042
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: PureBasic OpenSource Projects

Post by idle »

KCC feels lucky, and Decaprio can be heard saying, wang dang sweet pootang! :lol:
https://www.youtube.com/watch?v=ZTVDHnwlz5k
Windows 11, Manjaro, Raspberry Pi OS
Image
#NULL
Addict
Addict
Posts: 1440
Joined: Thu Aug 30, 2007 11:54 pm
Location: right here

Re: PureBasic OpenSource Projects

Post by #NULL »

Josh wrote:I don't even want to know what Leonardo DiCaprio does with KCC during these kinds of movements :mrgreen:
I guess he has a plugin in development.
Post Reply