Tool B4Xgoodies: a maintained library/class/code module/... inventory (last updated 2024-03-16)

The workbook (even when zipped) has grown over 512kb and can't be uploaded to the forum any longer; use
- the dropbox download link (the same one that's used by @inakigarm's B4J program - see post #25) instead:
https://www.dropbox.com/s/oib4glqqd4qcx8x/B4Xgoodies.xlsm?dl=1 (Note: this link was changed on 2022-07-24 after a Dropbox issue that lost the original one - thanks to @AnandGupta for raising the issue)
- and/or the online version that @AnandGupta created: https://www.b4x.com/android/forum/threads/b4xgoodies_from_walt61-online.110060/

Hi all,

I, like many others in the forum, wanted to know what the most recent versions are of the non-core libraries I'm using in my apps, without having to resort to manually checking these libraries' forum posts to check their versions. Eventually I took things a step further and thought I'd create an inventory of all the excellent stuff that's being provided by the community, in a sustainable and easily maintainable way (i.e. with minimal manual effort). Enter B4Agoodies, an Excel workbook.

The 'Info' worksheet provides a high-level explanation on what it does.

The inventory contains the following columns:
- B4what: the tool to which the entry relates
- Type: the type of object (presently: libraries, snippets, code modules, classes, icons, and the ominous 'other')
- Category: a categorisation for the object (feel free to suggest more appropriate values where needed)
- Name: the name of the object (e.g. library name)
- Author / owner: the forum nick of the creator or the current owner, if ownership has been transferred
- Latest version: a version number or date (if no number was available in the first post of the thread where the object is found; the date is then the latest update date for that first post)
- License: the license that applies to the object
- Description: guess :)
- Forum thread's (or other) URL: the webpage where the object is described and from which the most recent version data will be fetched from the first post

I intend to update this every week. I keep an eye on forum posts announcing new libraries and library updates, which will then be added. If you'd notice errors or objects that could/should be added, give me a shout.

EDIT 2022-07-24: these are direct download links to the published files:
- b4xgoodies.html: https://www.dropbox.com/s/4punyxbwek8oc8o/b4xgoodies.html?dl=0
- B4Xgoodies.xlsm: https://www.dropbox.com/s/oib4glqqd4qcx8x/B4Xgoodies.xlsm?dl=0
- version.txt: https://www.dropbox.com/s/3l09nngx9msi3ut/version.txt?dl=0

Last but perhaps not least: use worksheet 'My Projects' to list your own projects' .b4a files and, if desired/applicable, your Additional Libraries folder. Click the 'Check them' button and in worksheet 'My projects' libraries' you'll find an overview of the libraries used by your projects, these libraries' latest version according to the 'B4Agoodies' worksheet, and your version (if you specified a value for your Additional Libraries folder). In Excel, macros must be enabled for the workbook to make this work; you can examine the code in the VBA IDE (Alt-F11 takes you there).

Cheers,

walt61

Last updated: see thread title
New as of 2019-08-05: columns 'Att 1' to 'Att 5' with the URLs of the first 5 attachments from the first post of each thread
New as of 2017-10-24: column 'Tags from thread title'
See post #25 for @inakigarm's B4J program if you prefer not to use Excel/LibreOffice/... !
Also available online as a Google Sheet (thank you @AnandGupta ); see
 
Last edited:

fredo

Well-Known Member
Licensed User
Longtime User
03-06-_2016_19-35-59.jpg
 

inakigarm

Well-Known Member
Licensed User
Longtime User
. I also noticed one strange thing, possibly a panel that's in front of the 'Search' button? (See attached snip)
Yes, it seems that I forgot
B4X:
PNL.visible=false
at some point...;-)
 
Last edited:

inakigarm

Well-Known Member
Licensed User
Longtime User
Ok, version 3.2 attached, please inform about workarounds

- Adjust width of "important" columns (Description,etc)
- Added Author/owner Combo box
- Check for new version updates of XLSM on shared folder (@walt61 take in account that the link must be always the same (or maybe we have to change the info.txt to include xlsm shared link)
- When clicking on Description, an external Browser opens with the Library/Tutorial Post at B4X.com

The code isn't very tidy, I'll try to do best next time .. ;-)

P.D: Sorry, version 3.2b attached (forgotten to point to the correct links and not to the debug links)
 

Attachments

  • B4XGoodiesv3.2-b.zip
    345.3 KB · Views: 537
Last edited:

fredo

Well-Known Member
Licensed User
Longtime User
Seems to be a helpful additional source of up to date information.
Those who are reading the forums on a daily basis have a clear picture of the relevant classes and libraries. But if you only take a look every once in a while then you loose track and miss a lot (even if the library update subscription is active).
Would it be possible to add a column "LastEditDate" (for the lib or class) to the next lists? "Latest Version" is the relevant information for the item, but sometimes it would help me to find entries based on their age.
fredo

I'm using the B4X-Goodies now a few weeks and are highly delighted. The condensed list of helpful clues is a real timesaver (the B4X-forum search is helpful in most cases but I miss the possibility to find also the most recent informations).

Especially in conjunction with inakigarm's JavaApp above it's now very easy to have the most recent data on hand and find relevant "B4X community contents" ordered in a timely manner.

Wish:
If I may ask one more wish I think it would be helpful to have the possibility of filtering by "ContentTheme".

The columns "Category" and "B4What" and the search in "description" are good for browsing, but what if I need Information on a topic, where the keyword is not mentioned in the columns.

Example:
If I need an timely ordered overlook of all relevant threads for the DevTheme "Material Design" I have to look for "MD" or "Material" or "Design" or "..." one after another and have several hits but not all at once. But this is necessary to avoid this typical problem: "I've found a solution, codesnippet or library and worked with it only to find out a few days later that the information I used was outdated and there is a more actual way to follow."​

Suggestion:
A column for "DevTags" to summarize the important big topics.
The column may contain one ore more DevTags:
#MDSGN for Material Design
#FIBAS for Firebase
#RASP for Raspberry
#ARDU for Arduiono
#GEO for Geographics
#MQTT for the special messaging transport protocol
#IOT for Internet of Things
#...​

Of course it would be best, if a few more people would help to insert those DevTags in a collaborative way.
 

walt61

Active Member
Licensed User
Longtime User
Hmmm I see what you mean, but maintaining this would take significant additional effort. I also thought that one person's tags might not be another's, but that could of course be solved by defining a limited set of them, as you proposed. That said, if someone would consider a new tag useful, it would mean going through the 1100+ (and growing) entries to apply the new tag to the appropriate entries - meaning significant additional effort reiterated.

Another option would be that somehow the forum posts themselves would be tagged so that I could pick up the tags when scraping the posts, but that would mean that the authors would have to consistently tag them, and I can imagine that not everybody would be interested in doing so (especially for existing threads). (Not to mention that this would be freeform text, unless the forum software would support tagging, etc etc)

So I thought, how can we meet in the middle? And want to suggest this approach which is fully automated, apart from defining the tags' keywords (see below):
1. Add a new column to the worksheet with a thread's first post's contents (text only, no attachment/images/...)
2. Add another new column with the tags
3. Add a worksheet (in the published version, this would be for information only; in my 'generator', it would be used) that contains the tags and the phrases/keywords that would be used to decide that a post is related to the tag; this list could easily be maintained/updated/added to
4. When updating the data, I would then look in the Name, Description, and (new) 'First Post' contents to find the relevant tags to put in the new column mentioned in (2)

Searching for tags could then easily be done with Excel's autofilter, and if @inakigarm would be willing to enhance the B4J version, all angles would be covered.

How does that sound?
 

fredo

Well-Known Member
Licensed User
Longtime User
...Another option would be that somehow the forum posts themselves would be tagged so that I could pick up the tags when scraping the posts, but that would mean that the authors would have to consistently tag them....

Sounds great so far.

I don't know how Erel would think about this, but I can imagine, that there could be a good chance if we present a plausible concept.

For the Xenforo post tagging there are addons available (maybe this one?) but to keep the quality up it might be a good idea to restrict the the possibility to tag a post depending on the credibility of the community members.
 
Last edited:

walt61

Active Member
Licensed User
Longtime User
How about the existing posts? I honestly can't imagine a lot of people being enthusiastic to revisit their old posts to apply tags and assume that for new posts tagging will be overlooked by a significant part of the population. It's manual work and not enforced at 'input time', not to mention that the tags would be rather static and introducing a new one would require revisiting existing posts yet again. If the majority of the community would be interested, this could stand a chance, but frankly I doubt that - it's a bit utopian, I'm afraid :) Still, I'm willing to put in the effort as described above!
 

DroidLyon

Member
Licensed User
Longtime User
Hi Walt61

Just a quick thanks for the effort you have put in to creating and maintaining this spreadsheet. It's been invaluable to me :)

I've lost count of the number of times it has helped me find what I was looking for (over a forum search), and in addition it's also been of remarkable use in finding "unknown unknowns" - things that I would never have known existed in B4a.

Also can far easily find additional work from authors who you have found useful and who don't have "personal pages".

It's a quick way of finding out or checking latest versions especially when authors update libs in later posts and not in first post of a thread.

If I was Erel, I'd place this as a sticky under maybe Tutorials & Examples. It is the best reflection of the state and breadth of B4a and best way to find out what is where in my opinion!

The only thing I would consider adding is some sort of "status" column to indicate whether the library is still supported or still in BETA, or superseded by improved versions etc. It obviously a pain sometimes when you find a lib and you reach the 18th page of forum posts to realise a library has a significant issue or the author doesn't support it anymore or the author hasn't been seen for years ..
But of course it's only a suggestion as I realise this would be time consuming, needs thought on how to implement, and potentially controversial ...

Anyway please keep up the great work !

D
 

walt61

Active Member
Licensed User
Longtime User
Hi @DroidLyon ,

Happy to hear it's useful for you too!

Actually, to have an indication about whether or not a library/class/... is still being updated, the 'Latest version's date' column was introduced (as @fredo suggested in post #6). It doesn't provide 100% guarantee that the object hasn't been deprecated, but I'm afraid it will have to do. The list (which, as you probably noticed) now contains close to 2500 rows and unless there would be a structured means of flagging an object as obsolete etc, I guess I'd have to read all the new posts, every week. I already have a job that keeps me busy :)

Basically I check the first post to see if it has been modified, and if it has, I do manually check its contents to look for changes and then update the row as appropriate. In other words, if 'Latest version's date' is recent, it (usually) means that the original poster has changed the first post and/or the object itself; I guess that's the best I can do (unless you volunteer to... - nah, you have a life too I bet :)).

Cheers,

W
 

DroidLyon

Member
Licensed User
Longtime User
Hi Walt

Thanks for replying :)

Sorry must have skimmed over post #6 but yes when looking a categoryI do look at latest version as an indicator of possible usefulness and then dive in but still end up "wasting" loads of time looking at other options just in case ..

The thought of looking through 2500 rows fills me with joyous anticipation :eek: but on this occasion due to prior life commitments I'll have to give it a miss I'm afraid !

But notwithstanding this, there are issues for B4x. For e.g. Periklis koutsogiannis has some nice bits of work still on the sheet but he doesn't appear to have been on line for at least a year. And where would we be without Andrew Grahams Libs - who said in 2016 "I no longer do Android because Google's privacy intrusions have totally alienated me from ever having anything to do with their eco-system, and I don't/won't ever do iOS" !
And when the great Informix understandably says "Please note that I stopped providing support for this class because UltimateListView is a better solution and I don't have enough time for both" - [Class] CheckList (but has still fortunately continued and I use clschklist in a number of mine..)

On reflection and to avoid any issues I think relying on the community driven Old libraries archive sub forum to indicate whether libraries are no longer maintained or supported is the safest way to go as I think these need to have Erels ok(?) to move and in which I think, apart for the latest few in this sub, I think you have already removed from the sheet?

And ideally I think it would be useful to us all, (perhaps controversially?), if all library authors (who make huge contributions to B4a I might add) hand over their source to Erel (except maybe chargeable ones) and if there is any doubt over a libraries upkeep (from the community, or author(Like how Don Manfred removed Datepicker dialog recently) , Erel can then decide whether to keep or consign to the old archives trashcan, and if its worthwhile keeping perhaps take over the maintainance if author goes AWOL?

Anyway life calls !. BTW If you do need any help on this sheet Walt feel free to call :)

D
 

walt61

Active Member
Licensed User
Longtime User
Hey D,

I've been mucking about with something and may have at least an additional indicator. I need to see what the output will be, which I'll have sometime early next week (when I do my weekly run). Stay tuned, it won't be the 200% perfect solution but at least - if it works out - it will provide some more insight (cliffhanger time :D). Stay tuned, I'll be back !

Have a good one,

Walt

P.S.: I made a note to check if the content from the 'old libraries' sub-forum is already excluded, I'm not sure at the moment
 

walt61

Active Member
Licensed User
Longtime User
Alas... I thought I'd check via the member pages for the month in which members were last on the forum, to help getting an impression of whether or not a contribution might still be supported.

Unfortunately, for about 30% of the objects I can't fetch that information as it depends on whether or not a member made their profile public :(

Ideas welcome, as long as they don't mean 'go read/check it all manually' (I might get rude :eek:) and they won't require heavy additional access to the forums as I wouldn't want to a) hurt them and b) consequently be banned :)
 

Cableguy

Expert
Licensed User
Longtime User
you could consider asking EREL for it, I mean, He's the admin, so he should be able to list users by last date online...
 

DroidLyon

Member
Licensed User
Longtime User
Hi Walt

Shame your idea couldn't work :(

Incidentally if you had got something working how would you have portrayed it in the spreadsheet?

(I had imagined for example that we'd could have a colour coding system(or number rating allowing filtering or both) to indicate status. e.g
Blue -anything by Erel, or any code handed over to Erel or any class still clearly in use with out any recognised forum indicated faults.
Green - libs with no known faults and are clearly supported and or well used/core libs, (scroll2d, reflections etc), most classes (as you can then modify and fix yourself)
Yellow, beta releases, current items with possible issues unanswered forum queries
may be depreciated but still usable
yellow current libs with potential issues or unresvoled issues, or beta mature beta Bob valentines table class
pink - has unresolved issues , author support unlikely
red - major issues, author no longer a member or been off line for ? years, should be binned or moved to old libs
white/blank those that have not been "scored" by us or forum yet

And I suppose if started, could leave all white except for Erel stuff, and we do as and when with help from others, but your call entirely.

Incidentally from a grand total 2474, I unscientifically tried ordering on reverse date to more easily see potentially archivable stuff and then filtered out Erel leaving only 1973 items. Filtering out several names such as Don Manfred (who does archive old stuff) and then several others including Johan, Klaus, and a list of about 40 authors who appear current or core contributors, whittling it down to 837 !, and then after removing snippets, tutorials and others got it down to 459 :rolleyes:. I could then have removed all those created in last year, and removed others names but ran out of time...

However this showed why only looking at things individually will do ..
The top (bottom?) of the list was MTWs Clipboard library of Jan 2011. Doesn't appear to be any significant issues and might still be an entirely usable product but MTW, although a a licensed member has not been seen online since May 2014. So would I risk using this code if not in Erels possession ( or he could support). Probably not

Obviously throughout all the development world, we continually have to make judgement calls on risk of using various products and libs and hopefully at some point in B4x we'll improve the way we can avoid redundant libs and code without negatively affecting B4A and it's community in anyway :)
 
Top