Skip to content

tajmone/purebasic-archives

Repository files navigation

The PureBASIC Archives

A collection of PureBASIC resources.

PROJECT TEMPORARILY FROZEN — The PureBASIC Archives project is currently being redesigned to become a fully browsable HTML project (both online, through GitHub Pages, as well as locally). The new version will be powered by Butler — a static, flat-file content management system (written entirely in PureBASIC) that relies on PP, pandoc and Highlight to generate HTML documentation from pandoc-markdown source files.

Until the new version is ready for release, the PureBASIC Archives will not be updated, and no pull requests will be accepted (currently, all the markdown contents are being ported to the new system) — except for some sections (eg: /syntax-highlighting/) which are crucial to the upcoming version and are being actively updated to make the transition possible.

ESTIMATED RELEASE DATE: December 2017/January 2018 (optimistically).

ONLINE ALPHA TESTS PREVIEWING

An early access Alpha version is now publicly available in a temporary GitHub repository:

Here are some HTML Live preview links of what the revamped documentation website will look like (still WIP drafts):

You’re welcome to participate to the alpha testing and development via GitHub issues or by contacting me via email (tajmone at gmail dot com).

DIRECT DOWNLOAD – You can download a full copy of The PB-Archives without using Git:

or you may download selected resources as Zip archives from the “Download Links” section.



Vanity URLs


Introduction

The PB-Archives is a threefold project consisting of:

  1. PureBASIC Archives repository
  2. PureBASIC Archives Wiki
  3. PureBASIC Archives website

The project was started by Tristano Ajmone (@tajmone) in October 2016. The goal of the project is to create a collaborative centralized place for gathering and sharing PureBASIC-related resources: code examples and snippets, libraries, tutorials, books, and links — anything that can simplify a programmer’s life by either being herein archived or linked/reviewed.

PureBASIC Archives Repository

The Git repository is the core of the PB-Archives project: resources of various types are herein stored, organized into categories through folders structure. Documents and tutorials are stored in the repository both in source format (Markdown or AsciiDoc) and in distribution format (HTML, doc, PDF, ecc.).

By cloning the repo, the end user downloads a copy of all of the project’s reosurces, which then become locally available at all times and extremely easy to update and maintain through Git. Hopefully, this should also encourage users to contribute their own resources to the project.

The idea of creating this repo dawned on me when I realized that in the course of time, while working on various PureBASIC projects, I’ve been cumulating lots of resources and notes – mostly buried within each project’s working folders. At the end of each project – when the dev-frenzy cools down – I always try to reorganize my collected notes and resources in a systematic way, so next time I’ll need them they’ll be at my fingertips (without having to sift through all my past projects just because I forgot where I saved them). Well, this project is something along these lines, but on a collaborative scale.

I hope that developers can benefit from having a pool of resources to fish from, and that they might contribute back by sharing their own findings too. It only takes a handful of PureBASIC developers to quickly populate a project like this one.

The Wiki

The GitHub-hosted Wiki associated to the PureBASIC Archives repo is intended as an online reference for PureBASIC – ie: not for tutorials, reviews of third party tools, ecc., but as place where one can quickly find tech specs, FAQs, cross-platform setup and development guidelines, and any answers relating to PureBASIC as a language and application. Tips and tricks might be mentioned therein, as well as links to external resources that are pertinent to the subject matter of a given Wiki entry, but any full-fledged article/tutorial should go inside the repo and linked from the Wiki.

Possibly, in the future, html standalone snaphsots of the Wiki might be included in the PureBASIC Archives repo, for offline reading — that is, if the Wiki ever reaches an interesting size and richness of contents.

PureBASIC Archives Website

Right now, it’s just a single-page website, created with GitHub’s Automatic Page Generator and freely hosted on GitHub Pages. When the documents and tutorials of PB-Archives’ repo and wiki will reach a mature stage, I’m planning to make it a full-fledged and well organized portal – but this is a long-term project, unlikely to happen soon.

For the time being, a single presentation-page is all the website can offer.

Quick Links

Developers’ Resources

  • Win Registry Module by Thomas Schulz «ts-soft» (Windows only). Adds procedures for handling Windows’ registry read/write and delete operations.
  • GoScintilla by Stephen Rodriguez (updated to PB 5.x): source-code helpers which wrap a lot of the Scintilla API in order to simplify use of Scintilla within applications.
  • PBHGEN v5.42 by Henry de Jongh: PB-IDE Tool that generates header files (*.pbi) for your source code (automatically creates Declare staments for your procedures).
  • fasm resources folder.

Tutorials

Miscillaneous Utilities

  • pandoc2bbcode by lilydjwg (依云) and Tristano Ajmone: a script for converting documents to PureBASIC Forums’ BBCode from over 20 input formats (including markdown, html, ODT and docx). Useful for writing elegantly formatted posts on PB forums using Markdown, or to quickly convert existing documents to BBCode.
  • PureBASIC Syntax Highlighting: resources for publishing neatly formatted source code examples.

Download Links

These links allow you to download specific isolated resources by creating a Zip archive copy of their folder (via @KinoLien’s GitZip). The Zipped files will be as in the latest version of the master branch.

Resources Organization

The Archives project is divided into folders according to categories:

  • /asm/ — x86 Assembly (FASM and Yasm) resources.
  • /books/ — books on PureBASIC programming.
  • /libs/ – 3rd party PureBASIC libraries, modules, wrappers, ecc.
  • /os-linux/ — PureBASIC for Linux resources.
  • /os-mac/ — PureBASIC for macOS resources.
  • /os-win/ — PureBASIC for Windows resources.
  • /pb-development/ – resources for developing in PureBASIC.
  • /syntax-highlighting/ — publishing PureBASIC source code in colored syntax.
  • /text-editors/ — PureBASIC syntax support in text editors.
  • /tools/ — any PureBASIC related tools that don’t quite fit anywhere else.
  • /tutorials/ — PureBASIC learning tutorials.

Some folders contain material specific to this repo’s developement and maintainance:

Developement Branches

Some resources might require long-term work before being ready for inclusion in the main branch of the repo — eg: porting code from PB v4, translating documents, porting text to Markdown or Asciidoc (from HTML, Doc, or PDF), and so on.

For this purpose, some developement branches have been created to host different kind of works-in-progress (WIP):

You might consider peeking into the dev-branches to get a preview of what is coming next and — why not?! — join the work.

License

This is a collection of various resources, and each resource comes with its own license. Please read carefully the licenses terms on a per-resource basis before incorporating them into your projects.

This repo acts as a «general container» through compartmentalization: hosting each resource under its own folder, governed by its own license terms. PureBASIC Archives provides a license-neutral structure for organizing into categories the various resources it hosts. In this respect, it resembles the CD-Roms with collections of software tools which are distributed with computer magazines — except that PureBASIC Archives is freely accesible to all.

Nothing has been incorporated here that would prevent cloning this repository.

Third Party Resources Licensing Terms

Licenses are placed (or linked/mentioned) in the main folder of each resource and sub-project, and the license terms should cover all files in that folder and sufolders. Further details and exceptions shall be indicated in the README file within the resource folder and/or in its parent folder.

«PureBASIC Archives» Overall License Terms

As for the project in itself — ie: this repo as a «container», its structural organization, and my personal contributions in terms of documentations (README markdown and html files) and project-related resources (scripts, templates, stylesheets, ecc) — its to be considered as released into the public domain according to the Unlicense terms (see: Unlicense.org), unless otherwise specified — since it wouldn’t be feasible to add a public-domain license to every single document file, I’ll instead ensure that a licence file will be provided where required (like third party tutorials and documents).

The choice of the Unlicense public-domain terms for the overall project ensures flexibility in contributing and forking, and should prevent licenses conflicts.

Contributing

If you’ve found these archives helpful in finding resources for learning and working with PureBASIC, consider helping the project grow by contributing your own resources, or adding links to external resources, writing reviews or tutorials.

Before submitting pull requests, please read the CONTRIBUTING.md file.

Ideas, proposals, and corrections can be discussed by opening an Issue:

About PureBASIC

PureBASIC is a commercial programming language and IDE published by Fantaisie Software (France):

PureBasic is a native 32-bit and 64-bit programming language based on established BASIC rules. The key features of PureBasic are portability (Windows, Linux and MacOS X are currently supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike. We have put a lot of effort into its realization to produce a fast, reliable system friendly language.

In spite of its beginner-friendly syntax, the possibilities are endless with PureBasic’s advanced features such as pointers, structures, procedures, dynamically linked lists and much more. Experienced coders will have no problem gaining access to any of the legal OS structures or API objects and PureBasic even allows inline ASM.

Interviews With PureBASIC Developers

Some interviews by André Beer (PureArea.net) with Frédéric Laboureur (aka @Fred and «AlphaSND»), founder of Fantaisie Software and main developer of PureBASIC, and with Timo Harter (@freak), 2nd main PureBASIC programmer:

More Collections on GitHub

Some links to other GitHub repos acting as containers for PureBASIC code.

FOSS Collections

NOTE: The statement “LICENSE file is a [LICENSE-NAME] template” means that the author chose a license during repo creation, but did not fill-in its fields (author and project name, date, ecc). Even if the author’s intentions are clear, a blank license template might not be an effective license.

  • blendman/Purebasic – “Some purebasic codes, under GPL.”
  • aziascreations/Random-PureBasic-Projects – “A collection of random PureBasic projects”. LICENSE file is a GNU GPL template.
  • IndigoFuzz/PureBasicLibrary – “Purebasic Code Library: The purpose of this library is to provide a useful repository of code for the PureBasic programming language.” LICENSE file is a GNU GPL template.

Non-FOSS Collections

In absence of explicit licensing terms, their contents should be considered copyrighted and for viewing purposes only.

PureBasic CodeArchiv (Rebirth)

This project deserves a special mention. It seems to be a WIP to recreate an updated version of the historical PureBasic CodeArchiv, hosted at PureArea.net:

PureBasic CodeArchiv contains a wealth of resources for PureBASIC version 3 and 4. Its license terms are:

Design and compilation of the PureBasic CodeArchive is (c) 2003-2007 by Andre Beer and exclusive component of the www.PureArea.net PureBasic support site. You may use the codes published on this site without restrictions for your own projects, however a publication of this code archive on other web pages, CDRom etc., require the express consent of the author. The copyright of the individual codes lies at the respective authors.

Useful Links

External links where you can find more PureBASIC resources.

Acknowledgements

Repo History

A record of the milestones of this repository history (reverse order).