This article was written in 2010.
Hopefully, a news item will have led you here. The question you're probably asking: “Will this ever work?”
That’s a fair question, given the number of hopeful projects that don’t progress beyond mere fanciful ideas. We’ve not released any code yet; only designs. Like every originator of a project idea, we’re excited by its possibilities, and soberly aware of the amount of work that needs to be done to make Coded Raw a reality. Even more sobering is the amount of non-technical work that is needed to gain the confidence of anyone who needs to be ‘on board’ for Coded Raw, even in a technically perfect state, to be truly successful in its objectives.
In writing this, I use the word "we" in an ambiguous scientific sense: the project is just one person with what he (me) thinks is a very good idea that could solve a lot of problems. The problems we address are real, and will become more of a headache as the years tick by. In the introduction, we highlighted the worry that some users of digital cameras are likely to lose the ability to read their raw images within a decade, because there will be no current software that can decipher the proprietary file formats that exist in the field. Historians might thank us for this, possibly posthumously if we’re thinking really far ahead.
All the above ("we" being "me", and the question of "Will this ever work?") leads to one point: given the enormity of the task, and its technical detail, we think it would be unrealistic to believe that we could do this alone. So we’ll need help. The biggest and cleverest contribution that anyone could make would be the method loader: the bit of API code that is able to locate and execute a block of code embedded in the image file. That would take us most of the way towards the ‘proof of concept’ demo that would give the project momentum.
So in the spirit of encouraging collaboration, we’ve set up a public project [edit: we’ll do this properly soon: github, SourceForge, or similar]. We encourage you to examine the proposition, evaluate whether it’s worth pursuing, and give us your feedback. We’re not necessarily looking for praise and publicity; critical devil’s advocacy is just as valuable.
In particular, we’ll be maintaining a list of current priorities and sticking points (here), which is where we feel the most help will be needed.
If you don’t have anything technical to offer, but believe in the ethics and principles of the project, then feel free to spread the word!
The SourceForge project has an option to donate. We consider this the secondary means of support, after technical assistance; i.e. we’re not vigorously rattling the hat in your direction until we encounter significant interest or costs, but any donations would be gratefully received, either as acknowledgement of a good idea, to cover the small personal costs of project development, or to cover the future costs of making this project much bigger.
Yes, we’re hoping to make this happen. Consider the project launch to be pushing the snowball off the mountaintop: the first step. If there are enough similary-minded developers out there, this could be a significant project. Given all the ideals and benefits that we hope we have explained well, we believe it is very worthwhile. If Coded Raw were to gain critical mass and be adopted by major players in various relevant industries, I would personally be very interested in buying into products that use its technology, and I would be reassured that we’ll have saved some of our valuable history.
We could have ended this blog entry with that nice self-important statement about “our valuable history”, but we just had to enthuse a little bit more...
In researching this project, we came up with very little material that was directly relevant, so the first exciting aspect is that it seems to be unique (go on, feel free to tell us about something that already exists; it will be helpful!)
We’re also excited that it seems a very simple idea in principle. Conventionally, a file contains just data, or a program along with its resources. We’re accustomed to sending data files, and installing program files.With Coded Raw, we use object orientation, and apply its model to data files. What we don’t see today is the distribution of a data file that contains the program that can understand the data and present it in a standard way (unless you count self-extracting archives, which are a limited form of this type of processing). By embedding decoding methods within a data file, Coded Raw effectively turns the server model on its head (or inside out), and the file (rather than the application) provides the decoding service. Applications will use the Coded Raw interface and protocols to ask the data file about its contents.
We’re excited that this methodology may have utility beyond simple images. Because we’re using executable code within the decoder methods, we can output anyhting we like, from any encoded data (or no data at all). We’ve listed some examples to whet your appetite for a Coded Raw future.
John Valentine, 24th March 2010.