BeShare

for Haiku and BeOS

(Download links at the bottom of the page)

Beshare is the venerable file-sharing and chat app, originally for BeOS, but equally fine for Haiku. This 3.00 version has a couple of added features over the last BeOS-only release.

Files on this site (download below):

	BeShare_3.00.zip    — user files and docs
	BeShare_3.00_src.zip — complete source files
	BeShare_3.01.zip    — Haiku PM version of the user files
	
Also, for more details on BeShare itself there's:
	The BeShare Handbook
	

With the demise of BeBits and HaikuWare, and with barriers still apparently in the way of a generally usable repository, we seem to need a convenient way of distributing apps and stuff to Haiku users. If people were aware of it and used it, BeShare could be a part of the solution. It has the advantage over a website of not having a "single-point-of-failure"; you do have to be connected to a muscle server, but there are several of those.

Over the years I’ve seldom used it, because the web sites were much more convenient for locating what one wanted, but with them gone BeShare could become a useful community.

When I use it, though, I find I’m faced with a long list of files, with no idea of what most of them are! It struck me that it would be nice if whoever posts the files could tag them with some sort of short description, so that a prospective downloader could have some idea of what he was getting.

This was the main impulse for doing some coding, but when I started looking at it, I realized that icon handling wasn’t the greatest, either. Only icons that belong to MIME types already on the viewer’s machine are shown. Any custom icon associated with the file itself is not displayed in the list. As most apps, at least, have their individual icons, this was a bit of a limitation.

So I’ve added code that handles both the above concerns. A provider can tag their files with a ‘BeShare:Info’ attribute string, and a viewer can bring up that information in a window. Any mini-icon or vector-icon in the attributes of a file will also be added to the information sent to the MUSCLE server, and will be shown in the viewer’s list. This does mean that a bit more space is used up by such entries on the server, but I don’t think this should be excessive.

I also found one ancient bug that may have been causing occasional confusion over the years. If a file being downloaded had an attribute that was a BMessage, the sending BeShare would either truncate the attributes or—1 in 12 times—crash! (The crash was when the flattened message was an exact multiple of 12 bytes…) Guess what the first file I chose at random for testing (because it has a nice icon) had as an attribute… (:-/) Ah, the sense of humour of the Gods of Code… Now fixed, of course.

The base source I used for the revision was v2.28—with associated MUSCLE 3.20, slighty tweaked for Haiku compatibility also—, specifically because I needed for it to run under BeOS as well as Haiku. My machine that spends the most time connected to the net is still my trusty old Be Developer’s machine, so BeShare has to run on that. I see no advantage for BeShare in later MUSCLE versions—it seems to be flawless on the older one. And it connects just fine to muscled 6.02 on my Raspberry Pi.

I bumped the version to “v3.00”, not because of any startling advance (:-)), but because others have used 2,30 and 2.31 for Haiku-only versions [that apparently don't entirely work! (:-))], so any 2.nn numbering would likely conflict.

As the original placing of shared/downloads folders is not suitable when BeShare is installed from an .hpkg (its folder is read-only), a separate version 3.01 puts these in /boot/home/BeShare. (This version works just as well in pre-PM Haiku if you would prefer to use it there, too. It is identical to 3.00 aside from the folder placement.) It is downloadable below -- at the moment as a conventional zip file. An hpkg should be available at some point.

The sources are packaged separately here from the user files, because I needed to include the slightly updated MUSCLE sources as well, increasing the bulk considerably. (The minor source changes for 3.01 are not here yet.)

I haven’t internationalized the ‘Information’ button, because to do so I’d have to add a string to the set of every supported language, and I don’t feel competent for that. I’m hoping that the English word is understandable to most. Similarly, because I can’t really update them, I’ve left all the alternative-language docs out. If anyone else wants to take all that on…

Adding the Information tag:

‘BeShare:Info’ is just a normal string attribute, so you can just use the ‘addattr’ command to tag a file, but this becomes cumbersome, especially if the text is more than one line. So I’ve included a little xicon script ‘AddInfo’ that will open a StyledEdit window to enter/edit the tag for any file you drag onto the script icon. The script currently in the package uses command options that only exist in Haiku, so it won’t work in BeOS; a BeOS-adjusted version can be downloaded separately below. Of course you need xicon installed to run it. Perhaps a little app might be written for this job eventually.



"The BeShare Handbook" (link)

If you want lots more information(!) about using BeShare, I've put together The BeShare Handbook, that delves deeper into topics not much documented. The above link is an online version, or you can download your own HTML copy (the StyledEdit version is discontinued — hope you don't mind...):
"The BeShare Handbook" (zipped HTML 14kB)
'reStructuredText' Master for the above (14kB) — if you want to edit it yourself...
PDF version of "The BeShare Handbook" (480kB) — if you actually want to print a copy.

Downloads:

BeShare 3.00 (Haiku/BeOS) (1.25MB zip)
Sources for BeShare 3.00 and MUSCLE 3.20 (1.98MB zip)
AddInfo xicon script — BeOS version (not yet in package above) (973 bytes zip)
BeShare 3.01 (For Haiku PM) (1.25MB zip)

                                Pete Goodeve
                                Berkeley, California

                e-mail: pete@GoodeveCa.NET
                         pete.goodeve@computer.org