Revenge of the mutant MIME types |
- version 0.1.0 -
About
This application checks all your volumes for illegal (not registered types / illegal characters) MIME
types. All these are listed in a window from there you can take further steps. This tool is not
intended for beginners -- it's for developers. So if you look puzzled if you hear words like 'file type'
or 'application signature' you should perhaps give this folder a nice place in your trash can. Thank you
for listening!
Developers are really encouraged to read the section about MIME types!!
Download and Installation
Just put the folder whereever you want and start the application. Be sure to read the Legal Stuff first!
Compiled for PR2. New versions can be found here or
on BeWare.
Usage
Hmm, documention comes later -- perhaps?! ;-) Is it needed anyway?.
Motivation to do this application
After using the FileTypes preference panel I recogniced that there were very much MIME types
that are not correct. To find those files with the wrong types more easily I did this program. So we
can easily find out misbehaving applications and beg the authors to do things right. Only this way
BeOS applications can interact with others BeOS applications and with others in the non-BeOS
space without problems. Support of standards is important (better a bad as no standard ;-)
Btw, I'm not the MIME guru itself. I just tried to get through the MIME stuff as good as I can.
Documentation about MIME types is unfortunately not very nice written and most stuff refers to
mails (that's why it is called 'Multipurpose Internet Mail Extensions' ;-) So if you know things better
please let me know!
About MIME types
MIME types for BeOS developers in short
-
MIME types have the following form: media-type/subtype
-
There are registered and unregistered subtypes. Unregistered subtypes begin with an 'x-'.
For example: application/x-vnd.Be-bookmark
The use of 'x-' top-level types is strongly discouraged! Use subtypes in the application space
instead!
-
At the moment there are only six top-level media-types registered (so don't use your own ones!):
application |
Used for discrete data which do not fit in any of the other categories, and particularly for
data to be processed by some type of application program. This is information which
must be processed by an application before it is viewable or usable by a user.
|
audio |
Used for audio data.
|
image |
Used for images.
|
model |
Used for 3d model data.
|
text |
Used for material which is principally textual in form. Either without formatting commands
or are to some extent readable even without a software that interprets them.
|
video |
Used for files that contain a time-varying-picture image, possibly with color and
coordinated sound.
|
multipart and message |
These two composite top-level media-types types are not really important for our
subject -- file types).
|
-
Subtypes should follow the following convention: 'tree.subtree...type'.
IETF tree |
Subtypes without an '.' in it are in the IETF tree, which intended for types of
general interest to the Internet Community.
|
vendor tree |
The there is the vendor tree: Vendor-defined types should use the current 3-plus level
'vnd.provider.type' naming scheme (e.g. 'vnd.bigcompany.funnypictures').
|
vanity tree |
Personal or vanity tree: for media types created experimentally or as part of products that
are not distributed. They should start with 'prs.'.
|
-
MIME types are case insensitive. I didn't found anything about allowed characters sofar (accept
in the BeBook). So I think allowed are all 7bit ASCII characters except /\<>@,;:"()[]?= and
SPACE (Please mail me if you know better!).
I would suggest to use '-' instead of '_' as a space replacement (looks nicer).
What to do?
-
Check for existing MIME types for common data formats!
-
Ask the author to use correct types if you find wrong ones (a mail with some friendly words...;-)
-
Use legal unregistered types and register your own types! The following form one will fit for most purposes:
application/x-vnd.provider.type-of-file |
Hey Be!
-
On the PR2 release there are lots of incorrect types (in brackets are the 'correct' MIME
types -- at least as far I could find out. As they are unregistered types, they are not really
correct types, only commonly used types. We should put up a page with these types so that
at least all applications use the same ones):
[980113-031113]
image/pnm | (image/x-portable-anymap) |
image/pbm | (image/x-portable-bitmap) |
image/pgm | (image/x-portable-graymap) |
image/ppm | (image/x-portable-pixmap) |
image/xbm | (image/x-xbitmap) |
image/pcx | (image/x-pcx) |
image/targa | (image/x-targa) |
audio/wav | (audio/x-wav) |
audio/aiff | (audio/x-aiff) |
audio/aifc | (audio/x-aifc) |
audio/midi | (audio/x-midi) |
audio/riff | (audio/x-riff) |
application/compress | (application/x-compress) |
application/gzip | (application/x-gzip) |
application/tar | (application/x-tar) |
application/uuencode | (application/x-uuencode) |
-
Types build from those old 4-byte creators like this 'application/x-vnd.Be-IWLD' are not really nice. Why
not use 'application/x-vnd.be.iconworld' instead?
[980113-031753]
-
Types like 'application/x-be-executable' and 'application/x-be-resource' are correct but should
be better follow the tree scheme mentioned above: 'application/x-vnd.be.executable' and
'application/x-vnd.be.resource', ...
[980113-032417]
Btw, same for Metrowerks: e.g. 'application/x-cw-project' should be
'application/x-vnd.mw.cw-project'. Even better: register them!
-
Fundamental types like 'application/x-be-executable' should be registered soon!
('application/vnd.be.executable')
[980113-032417]
-
The HFS filesystem makes two errors when it creates MIME types from 4-byte MacOS
file types in the following way: 'application/x-MacOS-GIFf'
[980113-032700]
-
There is no translation from Mac types to 'real' types. The example above should result
in 'image/gif'! Otherwise no Be application could really make use of these files.
-
There is no error checking. E.g. undefined types are set to the 4-byte code '????' which results
in 'application/x-MacOS-????'. -- As the BeBook says, '?' is not allowed!
-
Perhaps it would be nice to give add-ons and libs own MIME types instead of
'application/x-be-executable'. So something like 'application/vnd.be.add-on' and
'application/vnd.be.library' would be fine.
[980113-032921]
MIME related links
Author
Any constructive critics, ideas,... are welcome.
Legal Stuff
By using this application package the user agrees that the author will not be liable for any damage
caused by using this software directly or indirectly!
There is no warranty for this software.
Use it entirely at your own risk!
This software can be distributed freely as long as no files are changed, added or removed and as long as it is not sold commercially.
Todo
- popup menu entry for conversion of selected file
- checking of single (selectable) volumes
- copying of list to clipboard
- better error display
- better documentation
- open folder if item is double clicked
- parsing routine to enable NetPositive downloading of registered media types
- autoconversion
- ...
History
v0.1.0 (1998-02-04):
- first public release
- documentation now in HTML
- popup menus on list items (open folder, call filetypes app,...)
- Help menu
v0.0.4 (1997-12-13):
- registered media types now read dynamically from iana ftp server html's (-> easy updating)
- icons are displayed
- checks now illegal characters
- supported types are now checked
- application signatures are checked
- changed mime type to 'application/x-vnd.hoern.revenge-of-the-mutant-mime-types'
- improved list saving
- displays now number of mime types subentries
- selection of items displays now errors
- first time written a documentation
v0.0.3: (1997-12-08)
- changed mime type to 'application/x-vnd.hoern-revenge.of.the.mutant.mime.types'. Let's see if all apps can scope with long mime types :-)
- changed app name
- added new media type 'model/'
- removed a little bug with "Check/Stop checking" menu entry
- added "List" menu
- added saving of displayed list
- undefined types now displayed as '<file type missing>'
v0.0.1: (1997-12-06)
- first 'public' release to some beta testers
Top of page