Posted
by
CmdrTaco
from the from-the-research-center-that-brought-us-everything-else dept.
Sandeep writes " PARC announces a new software architecture , named Obje, to establish a device-independent networking system. Essentially, it allows two devices to teach each other how to talk amongst themselves. It does this by sending actual code over the network."
This discussion has been archived.
No new comments can be posted.
Simply enough, you don't trust the other end, and all code is run in a sandbox. If the code does anything strange the session is terminated, if the other system (or peripheral) hands you strange code too many times you just stop listening. I don't think it's really necessary to send code, it would be just as well to send a list of capabilities (shades of my HVAC discussion) and then the sytem decides what you are based on your capabilities and treats you accordingly.
and then the sytem decides what you are based on your capabilities and treats you accordingly.
This assumes that the system already knows about all possible capabilities and that it knows how to talk to everyone else.
I think the idea is that devices teach each other of their existence. It would be like if I bought a USB device (say a camera) that Windows didn't support, the camera would be able to bootstrap Windows with some drivers from its own firmware. The only thing that has to be prearanged is a protocol for this transaction. I don't need to maintain an extensive driver library for this to work.
Except the amiga had the entire driver for the hardware in adapter ROM (except in cards where the driver had to be installed via software, of course, and loaded during the boot process, or referenced from your mountlist or devslist.) This was possible (for the people who don't know enough to miss it) because everything was a user-level process, including filesystem drivers, and hardware drivers. Hence you had a process perhaps called scsi.device and a process called FastFileSystem, and so on. Very slick, ve
It would be like if I bought a USB device (say a camera) that Windows didn't support, the camera would be able to bootstrap Windows with some drivers from its own firmware.
I've been saying for years "Flash ram is cheap, put some in every device to contain a BASIC device driver. The real driver can then be loaded to deliver the total package."
This all started years ago when Intel, in their infinite wisdom, started packaging the drivers for their cards with tons and tons of crap, so that I had to download a 9M file just to get a 10K driver file! Uh, schmucks, that won't fit on a floppy, and if I can't get on the network to download it, I have waste a fucking CD to get your driver!
For some reason, it amazes me how few people actually do any thinking.
I've been saying for years "Flash ram is cheap, put some in every device to contain a BASIC device driver. The real driver can then be loaded to deliver the total package."
Please oh please tell me that you capitalized "basic" for emphasis, and you don't mean a device driver written in BASIC. *cower*
This is what Open Firmware does for basic boot devices, and if we extended OF to peripherals, we wouldn't have this problem - Except instead of BASIC, which is a basically (h0 h0) functional but uninteresting language, it uses FORTH. FORTH is more efficient than BASIC and as such makes a better language for BIOS operations on systems with little CPU power, like old 16MHz SPARCstations. Open Firmware is a standard now and is used by Apple and Sun. This is the reason why Sun consoles have traditionally been s
What portion of detecting whether code sent to you over the network is doing something 'strange', do you find simple?
I hate it when people preface comments with "Simply enough" or "Obviously". It automatically makes anyone who doesn't understand what the person is talking about, feel stupid.
Or I could be implying that with a little additional thought, they'd find the answer. It doesn't make them stupid, it means they're thinking along different lines.
There are numerous methods for detecting when code is trying to do things it's not allowed to do. Many of them are built into some of our favorite operating systems already. Other features which are just coming to PCs, like execution protection, will make this even easier.
I find that the categorization I use most often when I meet new people these days is how they respond to 'feeling stupid.' A person can either get frustrated and walk off in a huff, or feel motivated to learn more. I get the sense you are currently in the first category; you will not only be smarter, but probably lead a more fulfilling life, if you manage to move into the second.
What they're talking about here is getting data to/from a device whose capabilities are not precisely known. Therefore I assume that the interface speaks mostly in abstracts. The driver you write (which is basically going to have to run in a sandbox of some sort; if it uses a simple enough (actually, complex enough, and high-level) language there simply won't be any way to do harm (outside of consuming resources, which can be solved by simply not allocating them to you past a certain point) within the constraints of the language in the first place.
Essentially your interface will have a way for something to connect to it and get data from it or put data on it. I assume in general the code sent is meant to be a driver of some sort and it will carry out a protocol, whereas all the OS has to do is shovel it some data, or get some data from it. The API will be analogous to SCSI which basically has only a few commands which are used for everything; the driver (which will run in the sandbox) is the interface between the drive's electronics and the SCSI bus. The difference is that it's in software and the driver has to run on the server. Why this is so much better than just picking a standard and following it, I'm not sure, but then I didn't RTFA. In theory it will allow you to use arbitrary capabilities of a device, but on the other hand you're still going to need an application that knows what to do with the data. I can think of several ways to handle it otherwise, all of them bad, and none of them which would work reliably. Then again, these guys know more than I do, which is why they get paid the big bucks, and I don't:)
Perl supports "tainting" of data, so you don't do accidentally anything stupid with information that isn't secure. (Including exec'ing it.)
I imagine this would be a similar set up.
Or it could be done inside a virtual machine ala JVM, with a stream output to the part of the device that actually uses whatever the communication is intended to transmit in the end.
With Java you can do this. Just run the code in a sandbox. Alternatively you can use some trusted third party and signatures. Or you can do both (authenticate other party and allow verified and validated code to do whatever it is authorized to do). The JINI architecture works along these lines (although it seems rather dead nowadays). It can be very secure if you set it up properly.
And then I remembered a previous slashdot story pointing to an article about various 1337 virus writers and I remembered that they were all so proud that they used VB.
3. xerox will let this wither away in the lab just like all those other great parc ideas and we won't see it for another decade when someone with the actual common sense to build and sell the damn thing happens to get a peek at it through the window.
this is the most likely result. i blame it on the fact that the xerox corporate culture has been so built on the "copier" mentality that they can't recognize the value of an original.
I'm not sure as to the use of this for general computing, but I can see the virtue of this for things like TV Set Top Boxes, which routinely download applications/middleware/OSes from the broadcast stream/cable.
If you trust the source and the network is secure, what's the problem? It's as safe as running an exe on your windows box...
Jini was/is a great idea. Plug in a printer, it uploads it's driver to the computer. Put it on a network, any computer that connects to it automatically gets the driver.
Sounds kind of like what Apple is doing with Rendezvous. uPnP should die a quick death.
Boy that sends me back. I can still remember the octal you needed to enter on the front panel of our Nova to boot it. I miss the days of floppies big enough to use for place mats and paper tape.
I'm sort of bummed that all the stuff I knew about the seven layers of networking is going to be moot eventually, but all the studying of virii and attacks will become more useful.
you meen the OSI theoretical 7 layer model that IIRC no one had got working past 6 layers..
mind you it was many moons ago when i was last requested to becoem infomed on the 7 layer model, NT 4 was moving in on novel and id just herd of a new apprently working version of windows comeing out around 2000..
There is nothing wrong with generated code if you trust the sender. Plus if the code sent over the network is executed in a sandbox/jvm it shouldnt be incredibly risky (obviously a lot of potential for DoS attacks).
Code can be a very concise way to express an algorithm.
The problem is you're permitting coding of your network interface... even assuming your "sandbox" holds up, it would seem there's ample room for a denial of service.
Keep in mind I have only SkimmedTFA... This seems like it would be useful for forming ad hoc networks, for example in a disaster or emergency scenario. But for frequent daily use, it seems like it might be a particularly vulnerable protocol.
Are the benefits of high quality and reliable communication in a disaster/terrorism situation worth the potential risks of insecurity in that situation?
... what article were you reading? The article doesn't talk at *all* about letting devices communicate independantly and learn to talk to each other.
It provides a `standard` that `allows` such communications to, in theory, take place. It does it by removing some of the intelligence apps currently have to have in order to talk, so long as you adhere to the standard. But it's not like they're inventing new protocols here.
If TCP/IP is a vast highway to transfer information, Obje is a new kind of tire.
More likely, it'd be used in some of the more mission-critical heterogenius networks, where you can't afford any outage for any length of time.
Such networks would likely be physically private networks, or otherwise on a secure LAN. Nobody puts mission-critical stuff over an unsecure, fragile backbone such as the Internet. Well, other than the US Government.
if you're sending code over the network in order to communicate, why have a traditional network at all? Why not just synchronize all the files between all the machines, or just have terminals? It seems like a mistake to send code for anything as a part of initiating network communication. PC 1: "here's how to hack me." PC 2: "OK! sending hack." PC 1: "thanks! Now I'm hosed." PC 2: "no prob. see you in hell! ha ha ha!"
If code is instruction for a computer, why not send instruction over the network? As opposed to pure data ("Here's a packet of info"), it makes sense to send "I'm here and I'm a device of type X. When Y happens, send me Z." If the code is limited in its abilities, and isn't just run arbitrarily, the network itself can contain much logic. Devices could then use the network is much more logical and efficient ways.
The propogation of code is worrisome, but I'm also unsure of the legal implications of allowing your code to accept the code and restrictions of others by automatically allowing it to run.
This may be a neat new way to logically propogate code, but once all the kinks are worked out it seems like it simply opens new doors for lawyers to battle out THEIR logic.
The next innovation from PARC will thus be a legal document analyzer. This analyzer will verify compatibility between licenses of varying devices and/or their network code. Once a collision is found, it will automatically report the offense to Microsoft's DRM Security Office and to the RIAA. They, in turn, will sue everybody, after patenting and copyrighting all possible forms of the alleged legal violation and the services related thereto.
Of course, when a new device receives the network code from Obje, i
by Anonymous Coward writes:
on Tuesday March 02, 2004 @10:46AM (#8440761)
what is wrong with the existing protocol specs and RFCs? As it is, we have enough security problems even with a meticulous protocol specification. So making it more arbitrary will help? I doubt that, unless we are just willing to concede that security is a hopeless quest.
Q. What does an equipment manufacturer or service provider need to do to Obje-enable a device, service, or product line? A. Please contact us for co-development and licensing information.
Seriously though. I don't think this was made by someone with just a shoestring budget and a desire to help computer-kind. Not that they're doing their work for the wrong reasons, but if this project cost them a lot of money, offering it for free in an Open Source fashion is going to mean.. they're out of a lot of money.
Just a thought, thought it's probably not the most popular one on the block.
> offering it for free in an Open Source > fashion is going to mean.. they're out of a > lot of money.
Hm, maybe, but if they're hoping to spread a new standard for communicating between devices, publishing it so folks can implement/analyze/understand it might be a better way to go.
To me it's as if they're saying "we've invented something very nifty, please give us some money and we'll show it to you". It's just hard to make a compelling argument that way. Or maybe I'm missing some point in their
Oh, I know what you mean, I had kind of a similar thought when I read the end of the article, but my point remains the same. For understanding the idea, it's great for "the community" to get a hold of the code, but that's ignoring the fact that this is a company, and a company that researches for a living. (Keep in mind this post isn't designed to shoot you down or anything, more of a clarification of my own points.) These people do research on stuff exactly like this, and the reason that this story was act
> 1: Research > 2: Open Source your results > 3: No profit!
standard_method invokes 3-Steps-To-Profit! tcopeland counters with Obligatory-Simpsons!
The problem, I think, is that it might be revolutionary... or maybe it's not. It's hard to tell, since I can't read much about it other than meta-interfaces. It'd be fine if they have a closed-source implementation or some such... but not even knowing what the public interfaces are makes it hard to get a handle on it.
Typical geek complaint: "Oh poor PARC, they lost the war by not selling what they did in a meaningful way! If only they had championed the PC, we wouldn't have M$ today."
So, PARC does something about this, and we still hate them. How do you expect CS researches to make money if they don't charge for their work? Maybe you can create really good knock-offs and implementations of standards using the promise of some vague support contracts to entice companies and the spare hours of out-of-work coders, but
How do you expect CS researches to make money if they don't charge for their work? Maybe you can create really good knock-offs and implementations of standards using the promise of some vague support contracts to entice companies and the spare hours of out-of-work coders, but when will that actually create something?
Charging for your work and restricting access to your code are two entirely different things. I don't know about you, but as a software developer I am worth much more to my boss than simply my
Charging for your work and restricting access to your code are two entirely different things. I don't know about you, but as a software developer I am worth much more to my boss than simply my code.
If your boss needs to keep you around in order to use the software, it's obviously not that good. Good software should, for the most part, be able run given easy to understand instructions, and be easy to maintain by any competent programmer. I'm not against giving away source code by any means, but when peo
Did you contact them? How do you know it is not an open standard?
This is a work in progress. API's may change. Protocols and all the fiddly bits underneath may not be set well enough for even a draft standard.
Licensing may be as simple as PARC requiring some information about your anticipated use of the protocols. Do not immediately jump to the conclusion that there is something fishy going on.
Now, it may be that there IS something fishy going on, but I haven't seen it yet. Remember, PARC has been the so
The Obje platform works with all standards, including those that have not yet been defined. It requires no central coordination, pre-configuring, or special set-up, and can be easily used by people with no technical expertise.
It provides users a way to combine devices to build simple solutions for hundreds of problems - easily assembling their particular applications from available devices and services. It offers manufacturers a simple, fast, and timely solution to the increasing requirement to connect products.
The Obje platform works with devices of all kinds - including cell phones, computers, personal digital assistants (PDAs), printers, set-top boxes, bar-code scanners, video displays, and others - from any manufacturer.
It works with everything, everywhere - because rather than being some kind of new l33t tech, or even a new technical standard, it's a self-described "meta standard".
In that respect, it reminds me a lot of Microsoft's DNA (Distributed Network Architecture), which I'm not sure anyone remembers. I only do because I built the Mid-Atlantic DNA labs, having worked for one of their Premiere Partners. Basically DNA wasn't new tech of any kind so much as a way of thinking and realignment of existing technologies. Instead of coming up with something really neat and whizbang to sell, Microsoft instead tried selling the process of how to think about how to get work done. Instead of creating apps that are live in the net, say, add a layer of firewalling and some abstraction between the user and the app itself, centralize all of your data in searchable SQL databases, and do other really common stuff!
And they charged people for it, too.:) Obje reminds me of this - standards about standards about actual work.
Almost everyone knows that if it can be protected, it can be cracked. There could be horrible implications to this, just imagine sending actual code across a network. It will take some "1337" hacker just a couple of hours to crack the system wide open. And if he/she can send raw code to tell the network how its going to work, and tell the devices connected to it how they work. he/she could essentially control them a lot easier than todays more "traditional" methods.
So from what I've read in the article, this looks to be Plug'n'play as it was meant to be:
Devices which use simple initial aggreed upon standard to extend their various servcies to each other without all the protocols having to be aggreed upon ahead of time, just a few simple initial protocols which are used to communicate and extend the other protocols and services between the devices. If this is applied correctly by the industry, it could change computing a lot, opening more complex systems to users with less experience and requiring less support resources. I'll be watching this closely.
So what you're saying is that it's essentially like OpenFirmware for networks? That's a case in which adapters installed into a system have their own code...
All Obje devices or services, called components, implement and make use of one or more of the meta-interfaces. Together, the Obje meta-interfaces allow components to extend one another to accept new data transfer protocols, media formats, CODECs, content types, discovery protocols, physical network transports, and user interfaces. An Obje component, or client application written against the framework, automatically acquires the above dimensions of extensibility, allowing it to interoperate with new peers on the network without rewriting and without explicit software updates.
To wit:
data transfer protocols: Are you on TCP/IP, or UDP, or Appletalk, or what? Let me adapt.
media formats: What type of streaming content is that, exactly? Let me adapt.
CODECs: You're using Divx/MPEG-4? I don't have it, send it to me as part of the framework package.
content types: I can't support that MIME type. Teach me, via the framework, how to handle it.
discovery protocols: I didn't come with the latest wireless discovery standard; hello, access-point that's Obje enabled, please teach me how to access you... in the meantime, I'll talk to you using my own special discovery protocol.
and etc.
All of these things can already be done and are being done and have been done and were done years ago; Obje seems like a unification of all those efforts, moving towards a central platform-independant standard for how devices learn to do new tricks. Much as when you're surfing the net now and your browser auto-learns how to play new types of Media because a website can push you the players, except extended to higher (and lower) order functions as well, because PARC seems to be betting on awesomely small future computers that will have to be able to handle a very wide range of user functions.
I'ts been tried to an extent. USB and BlueTooth were supposed to work by providing a few standard interfaces making drivers standard. It seems to work somewhat. Windows has some very broken USB handaling try getting a serial dongle to work and you will find it asks for a disk often enough that disk most often contains the same dll as the system allready had for serial over USB, pretty much so it can say belkin usb to serial cable rather than generic usb to serial cable. IDE seems to be the only reliable
Apple Computers CEO Steve Jobs has been sighted spending large amounts of time in the Palo Alto area. When questioned Steve replied "Oh I've been doing some research for new products."
OK, I read the headline and could practically see the red lights circling into view and hear the alarm bells ringing. It's a really really obvious way of making life even more difficult!
However, I do have to remember that this is PARC we're talking about. They've got a pretty good track record of innovation. At very least I think they should be given a bit of rope. Hopefully they won't hang themselves with it!
Of course, I find it hard to see how this simplifies or improves computing and networking in any way, and it rips SO hard through the OSI models that it could be pretty damaging in that respect too.
Glad to see PARC is using the idea of mobile code from Jini. The Jini Community has been doing this for over 5 years now. And it's not just for devices. Quite a few companies have used it as a platform for enterprise computing - in many ways it even competes with J2EE/EJB in this area.
Jini is a great Service Oriented Architecture (SOA) that is VERY secure yet still involves mobile code rather than just RPC calls.
It is a Java-based solution, but is opening up to other languages through the Surrogate Architecture [jini.org]...
Anyway, if we get excited about something new from PARC, we should investigate a fairly mature technology that it is built on top of.
If you think Obje is cool, check out RIO [jini.org]. Not just dynamic networking and mobile code, but dynamic provisioning and Quality of Service...
Well, I never claimed that Sun "invented" mobile code with Jini, just that the ideas espoused by Obje have been done before and are currently available for anyone to download from www.jini.org [jini.org].
So, seriously, what other past implementations of this have there been? I am really curious.
As for your cracks about the real problem being a Java-based implementation, I will take it you are one of those "if it ain't GPL it ain't free" zealots. So please, provide links to the C++ version of a Jini-lik
It seems like this offers a way of embedding the device's driver. - Just having the driver doesn't bypass any other security mechanisms already in place. Depending upon how it's used, it may not open any new security holes. Being able to just plugin the latest printer and have it work without installing any drivers is not a Bad Thing.
If Microsoft had "innovated" this we'ld be seeing printers being distributed with Windows binaries drivers in firmware, that only Windows machines could make use of. Coming from Parc, it will be available for multiple platforms but unfortuantely they're not making this an open standard.
<Paranoid Speculation>: Microsoft will copy the idea, but their standard will only communicate with Windows (and it's mobile derivatives) and give it away to hardware vendors. Free stuff from MS that will make your device truly PnP for 95% of computer users is an eash choice.</Paranoid Speculation>
More power to the network !!! Wunderbar ! What the active networks community has been trying to solicit for all these (well, not all that many) years.
Of course most fashionably cynical geeks obviously have strong opinions about "new" technologies (e.g. MDA etc. etc.) because they know everything that there is to know... right ?
I once read an article in Spectrum or something about degrees of ignorance (about not knowing something, or not even knowing that one doesn't even know and stuff) well all these meta-models are a little difficult to digest if you've spent the last 40 of the 50 or so yeas of the computer age reinventing and relabeling technologies over and over again and patting each other on the back.
Dammit, GUIs (ala windowing intfcs) haven't changed in 40 years, basic networking hasn't changed in 30 years... simply because un-insightful programmers heavily dependent on psuedo-geeky-techno-jargon-crap feeding idiots hype up brain dead hacks as "bleeding edge technology" (ever notice how happy we feel relabeling or re-"inventing" design patterns ?)
So of course, the lesser mortals who compare malicious viruses to mobile code, obviously don't appreciate the nuances of responsible meta-models. I think PARC has a good thing going. I wish them luck...hopefully Steve Jobs and/or Bill Gates will productize this one too:-)... and shame on you non-abstract thinking pseudo-geeks...
lets hope the underlying VM interpreter (or whatever) is shared source of some kind.
otherwise can you imagine the random problems you are going to get when one of the devices has a problem with different VM implementation. Or security issues on individual VMs?
It took a good while to get the various flavours of Java VMs to all work pretty much the same, the same would be true here.
This sounds very much like PARC wants to teach machines how to interact more on "human" terms than on strict "computer" terms.
The most useful systems of tomorrow can't simply assume that peripherals/devices conform to their world view in order to work together. Instead, they must spend some time up front talking, listening, communicating, then eventually, cooperating.
Heading in this direction will prevent a technological monoculture from appearing, which wedges itself into a hole dug from its own presuppositions. Instead, I think this would foster a hardware equivalent of Open Source, where anyone who knew how to talk the fundamental protocol could build something interesting and introduce it into a system.
Of course, that's a pretty far-off idea, but I think it is worth pursuing.
when the first round of this tech is widely adopted and hacked. Something about it sounds just too good to be true... and you know that adage - it generally is. It'll definitely be too good for the first hacker to figure it out.
Forget about the implications to security and usability, what I want to know is how do you pronounce 'Obje'. I want to start mentioning it in conversations with PHBs to see how fast they can butcher the name and how fast before they start demanding it be installed on every computer.
This sounds a lot like the main idea in the book "Beyond Contact" - rather than try to send aliens little pictures coded in radio (like a lot of reverse-SETI ideas) send them a description of a VM followed by lots of little programs.
One thing this could solve would be keeping the details of the driver for a new device closed-source. That way a manufacturer could supply hardware and a built-in driver for use in Linux without having to open up the architecture to their competition.
This assumes that its not trivial to extract the details from the Obje code, of course.
If two sides can communicate well enough to teach eachother a third language, wouldn't they be able to communicate, period?
And if you need to install software on either end so they can go through this teaching process, isn't it easier to just install a TCP/IP stack on both ends?
The Obje platform works with all standards, including those that have not yet been defined. It requires no central coordination, pre-configuring, or special set-up, and can be easily used by people with no technical expertise.
So, it's omniscient as well as omnipotent ? Singularity is here !
I checked out the whitepaper, it reads like an executive summary. The whitepaper acknowledges existing discovery mechanisms and proposes an elementary solution using meta-interfaces. Well duh I knew that yesterday. Where's the code, dude? Seems like one has to enter into some sort of licensing arrangement to even find out if they really have something that works.
Don't get me wrong, there is some super talented people on the team - but I can't buy what I can't see. And this is precisely why I love GPL.
Jini is related to Obje not only in semantics but the same dudes (atleast Keith Edwards [xerox.com]) worked on Jini. I used Jini since its inception only to find out that:
- like Java, its spec is controlled by Sun which is good 'cause there a single controlling entity and the bad is that no device manufacturer gives a rat's ass about what Sun thinks about device discovery and service negotiation.
Not surprisingly, people have been working on this for many years. In particular, DAML [cmu.edu] is about. Sure, DAML work is being done in the framework of software agents on the web, but it's the same problem: having services that don't know about each other ahead of time figure out for themselves how to talk to each other. Furthermore, the technologies that have been developed as part of the work on the semantic web already seem considerably more sophisticated than the "Obje" framework.
by Anonymous Coward writes:
on Tuesday March 02, 2004 @10:50AM (#8440805)
Q. How is the Obje interoperability platform different from UPnP? Jini? A. The key difference between the Obje technology and other approaches to interoperability is that Obje does not require prior agreement on domain specific interfaces--the protocols, encodings, and standards used to communicate with specific types of devices. Other technologies, including UPnP, Jini, HAVi and Bluetooth, each define specialized interfaces for each new type of device: Bluetooth defines "profiles" for phones, headsets and printers; Jini defines APIs for printers and cameras; the UPnP consortium defines interfaces for audio/visual devices, scanners and home appliances; HAVi defines APIs for DVD and CD players, printers, cameras and TVs.
The problem with such approaches is that software must be recoded to address each specific type of device that it is expected to work with. For example, an application written to use UPnP media servers will not be able to use UPnP scanners (much less devices implemented under other standards) without re-implementation.
With Obje, devices and applications are written once, against a small, fixed set of meta-interfaces, which allow them to acquire any needed communication capabilities at runtime. These meta-interfaces abstract the protocols and communication standards used by specific devices so that, at runtime, a device can provide its communication specifics to the entity that wants to use it, with no reprogramming of existing services. This allows users and manufacturers to "recombine" devices and services at will, without waiting for slow-moving standards bodies. This ability is unique to Obje.
I think you're being a bit generous to them - it sounds like they're willfully misrepresenting JINI.
I think they'll suffer from the same "a priori knowledge" problem that JINI does - sure you can find a service (even one of a type you didn't know about when you were compiled) and get a little program that lets you interact with that service (talk to it, call its functions, turn parts of it on or off, etc) but the trick is to know what that stuff _means_ (I think the AI boys would say "lacks a shared ontolo
I remember being in the middle of all the Jini buzz a few years ago. I remember talking to some of the Jini designers, asking them for the API's I should use when talking to a distributed file storage service. I was under the impression (still am, actually) that such a service would be one of the first to be defined. It's easy enough, should just be a few interfaces. Could be designed in an hour.
Now, what was the reply? Something in the lines of: "it is not our job to define the standard API's. That's up to the community". Well, at that time I concluded that Jini would never succeed. And, it seems, Obje is falling into the same trap.
Protocols are needed. Regardless of wether they are defined in terms of binary data, XML schemas, or Java interfaces. You need them to be able to know what you are saying to the other party, and what it is trying to tell you.
I had some really neat ideas actually. I wanted to use stuff like distributed file storage. But there was no way I'd be writing my own interfaces that no one else would use. So, in the end, I didn't care much for Jini and apparently it was the right choice.
As far as I can tell, there is no difference between Obje and Jini, the designers are going to fall into the exact same trap. I would love it if someone showed me why Obje would succeed where Jini did not.
By the way, there were a lot of other things that sucked about Jini, but that had more to do with the crappy implementation than the actual concept.
One day I could walk in to my kitchen to discover that my kettle has become fed up with boiling water so it has explained the principle to the toaster which, due to limited processing ability has offloaded 'toasting' to the fridge.
Now, in order to cook breakfast, I fill the toaster with water and stick a filled coffee filter on top, put a couple of slices of white bread in the fridge, take some now-precooked sausages from the fridge and place them in the washing machine to keep warm, use my C
In related news.. (Score:5, Funny)
Parent should be "Insightful," not "Funny" (Score:4, Insightful)
Re:Parent should be "Insightful," not "Funny" (Score:5, Insightful)
Re:Parent should be "Insightful," not "Funny" (Score:5, Interesting)
This assumes that the system already knows about all possible capabilities and that it knows how to talk to everyone else.
I think the idea is that devices teach each other of their existence. It would be like if I bought a USB device (say a camera) that Windows didn't support, the camera would be able to bootstrap Windows with some drivers from its own firmware. The only thing that has to be prearanged is a protocol for this transaction. I don't need to maintain an extensive driver library for this to work.
Extensive Driver Libraries (Score:3, Informative)
Reference the Amiga Computer and its use of Autoconfig, before windows attempted their version with "plug and pray."
God, I miss that machine.
Re:Extensive Driver Libraries (Score:3, Informative)
Re:Parent should be "Insightful," not "Funny" (Score:4, Insightful)
I've been saying for years "Flash ram is cheap, put some in every device to contain a BASIC device driver. The real driver can then be loaded to deliver the total package."
This all started years ago when Intel, in their infinite wisdom, started packaging the drivers for their cards with tons and tons of crap, so that I had to download a 9M file just to get a 10K driver file! Uh, schmucks, that won't fit on a floppy, and if I can't get on the network to download it, I have waste a fucking CD to get your driver!
For some reason, it amazes me how few people actually do any thinking.
Re:Parent should be "Insightful," not "Funny" (Score:3, Funny)
Please oh please tell me that you capitalized "basic" for emphasis, and you don't mean a device driver written in BASIC. *cower*
Re:Parent should be "Insightful," not "Funny" (Score:3, Informative)
Re:Parent should be "Insightful," not "Funny" (Score:5, Interesting)
Re:Parent should be "Insightful," not "Funny" (Score:2)
There are numerous methods for detecting when code is trying to do things it's not allowed to do. Many of them are built into some of our favorite operating systems already. Other features which are just coming to PCs, like execution protection, will make this even easier.
Re:Parent should be "Insightful," not "Funny" (Score:2)
Re:Parent should be "Insightful," not "Funny" (Score:2)
So, if you're a spammer or a virus writer, it does an X-Files and reprograms an SDI-era space-based laser cannon to blast your computer to pieces...?
Hmmm. You've still got the problem that you should never hit reply to a spam mail.
Re:Parent should be "Insightful," not "Funny" (Score:4, Insightful)
The applet/sandbox has proven far more secure than scripting languages and even applications like the browsers themselves.
Re:Parent should be "Insightful," not "Funny" (Score:4, Insightful)
Essentially your interface will have a way for something to connect to it and get data from it or put data on it. I assume in general the code sent is meant to be a driver of some sort and it will carry out a protocol, whereas all the OS has to do is shovel it some data, or get some data from it. The API will be analogous to SCSI which basically has only a few commands which are used for everything; the driver (which will run in the sandbox) is the interface between the drive's electronics and the SCSI bus. The difference is that it's in software and the driver has to run on the server. Why this is so much better than just picking a standard and following it, I'm not sure, but then I didn't RTFA. In theory it will allow you to use arbitrary capabilities of a device, but on the other hand you're still going to need an application that knows what to do with the data. I can think of several ways to handle it otherwise, all of them bad, and none of them which would work reliably. Then again, these guys know more than I do, which is why they get paid the big bucks, and I don't :)
Re:Parent should be "Insightful," not "Funny" (Score:4, Interesting)
I imagine this would be a similar set up.
Or it could be done inside a virtual machine ala JVM, with a stream output to the part of the device that actually uses whatever the communication is intended to transmit in the end.
Re:Parent should be "Insightful," not "Funny" (Score:5, Interesting)
Re:Parent should be "Insightful," not "Funny" (Score:3, Interesting)
'Cuz it's not. Not even close
Re:In related news.. (Score:2)
That was my reaction to.
And then I remembered a previous slashdot story pointing to an article about various 1337 virus writers and I remembered that they were all so proud that they used VB.
Only two possible outcomes. (Score:5, Funny)
. . . or the machines will become sentient and use us (along with a form of fusion) as a plentiful power source.
Damn.
-Peter
Re:Only two possible outcomes. (Score:5, Interesting)
Re:Only two possible outcomes. (Score:5, Insightful)
you forgot the third option:
3. xerox will let this wither away in the lab just like all those other great parc ideas and we won't see it for another decade when someone with the actual common sense to build and sell the damn thing happens to get a peek at it through the window.
this is the most likely result. i blame it on the fact that the xerox corporate culture has been so built on the "copier" mentality that they can't recognize the value of an original.
Re:Only two possible outcomes. (Score:2)
If you trust the source and the network is secure, what's the problem? It's as safe as running an exe on your windows box...
Sorry (Score:4, Funny)
RTFA before replying - oh wait, you can't - (Score:4, Informative)
Thanks, Google!
Sun already tried this (Score:4, Informative)
Re:Sun already tried this (Score:5, Informative)
Sounds kind of like what Apple is doing with Rendezvous. uPnP should die a quick death.
Re:Sun already tried this (Score:2)
Boy that sends me back. I can still remember the octal you needed to enter on the front panel of our Nova to boot it. I miss the days of floppies big enough to use for place mats and paper tape.
Re:Sun already tried this (Score:2)
Re:Sun already tried this (Score:3, Interesting)
On the contrary, a sign of a great idea is that even if the market doesn't accept it at first, it keeps on returning until its time has come.
Re:Sun already tried this (Score:3, Interesting)
Excuse me (Score:3, Funny)
Who would've expected that?
Atleast we know they can't patent it. (Score:4, Funny)
Not enough info .... (Score:2)
Re:Not enough info .... (Score:2, Funny)
that IIRC no one had got working past 6 layers..
mind you it was many moons ago when i was last
requested to becoem infomed on the 7 layer model,
NT 4 was moving in on novel and id just herd of
a new apprently working version of windows comeing out around 2000..
so most of what i lernt back then was moot
Whats wrong with generated code? (Score:4, Interesting)
Code can be a very concise way to express an algorithm.
Re:Whats wrong with generated code? (Score:5, Funny)
And to think that all this time, I was expressing my algorithms in pictograms!
Re:Whats wrong with generated code? (Score:4, Funny)
Yeah, pretty much everyone seems to use UML these days...
Re:Whats wrong with generated code? (Score:2, Insightful)
dsojourner
Re:Whats wrong with generated code? (Score:3, Funny)
Damnit, you're right! Now what the hell am I going to do with all this Turing machine tape!?
First thoughts... (Score:5, Insightful)
Are the benefits of high quality and reliable communication in a disaster/terrorism situation worth the potential risks of insecurity in that situation?
Re:First thoughts... (Score:3, Interesting)
It provides a `standard` that `allows` such communications to, in theory, take place. It does it by removing some of the intelligence apps currently have to have in order to talk, so long as you adhere to the standard. But it's not like they're inventing new protocols here.
If TCP/IP is a vast highway to transfer information, Obje is a new kind of tire.
Re:First thoughts... (Score:3, Insightful)
Such networks would likely be physically private networks, or otherwise on a secure LAN. Nobody puts mission-critical stuff over an unsecure, fragile backbone such as the Internet. Well, other than the US Government.
Why even have a network? (Score:5, Funny)
PC 1: "here's how to hack me."
PC 2: "OK! sending hack."
PC 1: "thanks! Now I'm hosed."
PC 2: "no prob. see you in hell! ha ha ha!"
Re:Why even have a network? (Score:4, Interesting)
DMCA and other viruses (Score:5, Interesting)
This may be a neat new way to logically propogate code, but once all the kinks are worked out it seems like it simply opens new doors for lawyers to battle out THEIR logic.
Brrrr
Re:DMCA and other viruses (Score:2)
No problem if all the code is GPL'd...
Re:DMCA and other viruses (Score:2, Funny)
Of course, when a new device receives the network code from Obje, i
that's stupid (Score:4, Insightful)
Prior art (Score:3, Funny)
Bah-brah (Score:4, Funny)
What happens if one of them starts to get a little verklempt?
How to use it? (Score:5, Insightful)
So, not an open standard. Well, back to SOAP...
Re:How to use it? (Score:2, Insightful)
Seriously though. I don't think this was made by someone with just a shoestring budget and a desire to help computer-kind. Not that they're doing their work for the wrong reasons, but if this project cost them a lot of money, offering it for free in an Open Source fashion is going to mean.. they're out of a lot of money.
Just a thought, thought it's probably not the most popular one on the block.
Re:How to use it? (Score:2)
> fashion is going to mean.. they're out of a
> lot of money.
Hm, maybe, but if they're hoping to spread a new standard for communicating between devices, publishing it so folks can implement/analyze/understand it might be a better way to go.
To me it's as if they're saying "we've invented something very nifty, please give us some money and we'll show it to you". It's just hard to make a compelling argument that way. Or maybe I'm missing some point in their
Re:How to use it? (Score:2, Interesting)
Re:How to use it? (Score:2)
> 2: Open Source your results
> 3: No profit!
standard_method invokes 3-Steps-To-Profit! tcopeland counters with Obligatory-Simpsons!
The problem, I think, is that it might be revolutionary... or maybe it's not. It's hard to tell, since I can't read much about it other than meta-interfaces. It'd be fine if they have a closed-source implementation or some such... but not even knowing what the public interfaces are makes it hard to get a handle on it.
I guess it's the broad, sweeping n
Re:How to use it? (Score:2)
So, PARC does something about this, and we still hate them. How do you expect CS researches to make money if they don't charge for their work? Maybe you can create really good knock-offs and implementations of standards using the promise of some vague support contracts to entice companies and the spare hours of out-of-work coders, but
Re:How to use it? (Score:3, Insightful)
Charging for your work and restricting access to your code are two entirely different things. I don't know about you, but as a software developer I am worth much more to my boss than simply my
Re:How to use it? (Score:2)
That is a bizzare statement (Score:3, Insightful)
If your boss needs to keep you around in order to use the software, it's obviously not that good. Good software should, for the most part, be able run given easy to understand instructions, and be easy to maintain by any competent programmer. I'm not against giving away source code by any means, but when peo
Re:How to use it? (Score:2)
This is a work in progress. API's may change. Protocols and all the fiddly bits underneath may not be set well enough for even a draft standard.
Licensing may be as simple as PARC requiring some information about your anticipated use of the protocols. Do not immediately jump to the conclusion that there is something fishy going on.
Now, it may be that there IS something fishy going on, but I haven't seen it yet. Remember, PARC has been the so
Sounds safe to me - pwned (Score:4, Interesting)
Nothin' to worry about here!
I "can'tse" any way this could develop into a security hole bigger than the goatse guy's famous anus.
This reverses years of tradition -- Microsoft is supposed to steal its "innovations" from from PARC, not the other way around.
And doesn't this sound like what goes way too wrong in Vernor Vinge's A Fire Upon the Deep, or an Iain Banks novel?
heh - The infinite IS possible with Obje (Score:5, Insightful)
The Obje platform works with all standards, including those that have not yet been defined. It requires no central coordination, pre-configuring, or special set-up, and can be easily used by people with no technical expertise.
It provides users a way to combine devices to build simple solutions for hundreds of problems - easily assembling their particular applications from available devices and services. It offers manufacturers a simple, fast, and timely solution to the increasing requirement to connect products.
The Obje platform works with devices of all kinds - including cell phones, computers, personal digital assistants (PDAs), printers, set-top boxes, bar-code scanners, video displays, and others - from any manufacturer.
It works with everything, everywhere - because rather than being some kind of new l33t tech, or even a new technical standard, it's a self-described "meta standard".
In that respect, it reminds me a lot of Microsoft's DNA (Distributed Network Architecture), which I'm not sure anyone remembers. I only do because I built the Mid-Atlantic DNA labs, having worked for one of their Premiere Partners. Basically DNA wasn't new tech of any kind so much as a way of thinking and realignment of existing technologies. Instead of coming up with something really neat and whizbang to sell, Microsoft instead tried selling the process of how to think about how to get work done. Instead of creating apps that are live in the net, say, add a layer of firewalling and some abstraction between the user and the app itself, centralize all of your data in searchable SQL databases, and do other really common stuff!
And they charged people for it, too.
Re:heh - The infinite IS possible with Obje (Score:2, Funny)
Could be horribly insecure (Score:3, Interesting)
Parc = Real PnP (Score:5, Interesting)
Devices which use simple initial aggreed upon standard to extend their various servcies to each other without all the protocols having to be aggreed upon ahead of time, just a few simple initial protocols which are used to communicate and extend the other protocols and services between the devices. If this is applied correctly by the industry, it could change computing a lot, opening more complex systems to users with less experience and requiring less support resources. I'll be watching this closely.
Re:Parc = Real PnP (Score:2)
Re:Parc = Real PnP (Score:2)
PnP + Windows Update + ... (Score:5, Informative)
All Obje devices or services, called components, implement and make use of one or more of the meta-interfaces. Together, the Obje meta-interfaces allow components to extend one another to accept new data transfer protocols, media formats, CODECs, content types, discovery protocols, physical network transports, and user interfaces. An Obje component, or client application written against the framework, automatically acquires the above dimensions of extensibility, allowing it to interoperate with new peers on the network without rewriting and without explicit software updates.
To wit:
data transfer protocols: Are you on TCP/IP, or UDP, or Appletalk, or what? Let me adapt.
media formats: What type of streaming content is that, exactly? Let me adapt.
CODECs: You're using Divx/MPEG-4? I don't have it, send it to me as part of the framework package.
content types: I can't support that MIME type. Teach me, via the framework, how to handle it.
discovery protocols: I didn't come with the latest wireless discovery standard; hello, access-point that's Obje enabled, please teach me how to access you
and etc.
All of these things can already be done and are being done and have been done and were done years ago; Obje seems like a unification of all those efforts, moving towards a central platform-independant standard for how devices learn to do new tricks. Much as when you're surfing the net now and your browser auto-learns how to play new types of Media because a website can push you the players, except extended to higher (and lower) order functions as well, because PARC seems to be betting on awesomely small future computers that will have to be able to handle a very wide range of user functions.
Re:Parc = Real PnP (Score:3, Interesting)
And in other news... (Score:3, Funny)
Re:And in other news... (Score:2)
Ouiji, not Obje (Score:4, Funny)
"I see a device.... I can talk to it! Let's start out by identifying myself:"
COLOSSUS COLOSSUS COLOSSUS COLOSSUS COLOSSUS
(apologies to D.F. Jones)
History of the Future (Score:5, Funny)
2. Microsoft Copies Apples Implementation
3. Apple Sues Microsoft
4. PARC is clueless....
5. It becomes the de-facto standard in Windows...MS settles with Apple
Wait...did'nt this happen before?
I object! (Score:3, Insightful)
It's okay to be a optimistic about your product, but this is an all-time high...
*ALARM BELLS*, but this IS PARC (Score:3, Interesting)
However, I do have to remember that this is PARC we're talking about. They've got a pretty good track record of innovation. At very least I think they should be given a bit of rope. Hopefully they won't hang themselves with it!
Of course, I find it hard to see how this simplifies or improves computing and networking in any way, and it rips SO hard through the OSI models that it could be pretty damaging in that respect too.
If anyone can get this right, it'll be PARC... (Score:5, Insightful)
A couple of examples:
Smalltalk [smalltalk.org] - took "everything is an object" to the extreme. Smalltalk's byte-coded portability worked, in 1980.
CLOS [ed.ac.uk] - its "meta-object protocol" lets developers change the language's object-model semantics.
Glad to see Jini getting some props (Score:5, Insightful)
Jini is a great Service Oriented Architecture (SOA) that is VERY secure yet still involves mobile code rather than just RPC calls.
It is a Java-based solution, but is opening up to other languages through the Surrogate Architecture [jini.org]...
Anyway, if we get excited about something new from PARC, we should investigate a fairly mature technology that it is built on top of.
If you think Obje is cool, check out RIO [jini.org]. Not just dynamic networking and mobile code, but dynamic provisioning and Quality of Service...
"Let's see
Re:the same ideas, over and over and over again (Score:3, Interesting)
Well, I never claimed that Sun "invented" mobile code with Jini, just that the ideas espoused by Obje have been done before and are currently available for anyone to download from www.jini.org [jini.org]
So, seriously, what other past implementations of this have there been? I am really curious.
As for your cracks about the real problem being a Java-based implementation, I will take it you are one of those "if it ain't GPL it ain't free" zealots. So please, provide links to the C++ version of a Jini-lik
Finally, a use for Java. (Score:2, Interesting)
Actually, come to think of it, why hasn't this been thought of before?! SO OBVIOUS!!
Ah well. I'm now happy that after all this time, I've finally come to understand that in fact there is a use for Java after all...
(j/k, don't slay me!)
Gee where have i seen this before (Score:2, Funny)
Platform independent embedded device driver? (Score:5, Interesting)
If Microsoft had "innovated" this we'ld be seeing printers being distributed with Windows binaries drivers in firmware, that only Windows machines could make use of. Coming from Parc, it will be available for multiple platforms but unfortuantely they're not making this an open standard.
<Paranoid Speculation>: Microsoft will copy the idea, but their standard will only communicate with Windows (and it's mobile derivatives) and give it away to hardware vendors. Free stuff from MS that will make your device truly PnP for 95% of computer users is an eash choice.</Paranoid Speculation>
Active Networks - deja vu all over again (Score:3, Interesting)
Of course most fashionably cynical geeks obviously have strong opinions about "new" technologies (e.g. MDA etc. etc.) because they know everything that there is to know
I once read an article in Spectrum or something about degrees of ignorance (about not knowing something, or not even knowing that one doesn't even know and stuff) well all these meta-models are a little difficult to digest if you've spent the last 40 of the 50 or so yeas of the computer age reinventing and relabeling technologies over and over again and patting each other on the back.
Dammit, GUIs (ala windowing intfcs) haven't changed in 40 years, basic networking hasn't changed in 30 years
So of course, the lesser mortals who compare malicious viruses to mobile code, obviously don't appreciate the nuances of responsible meta-models. I think PARC has a good thing going. I wish them luck...hopefully Steve Jobs and/or Bill Gates will productize this one too
dont touch until it is mature (Score:2, Insightful)
otherwise can you imagine the random problems you are going to get when one of the devices has a problem with different VM implementation. Or security issues on individual VMs?
It took a good while to get the various flavours of Java VMs to all work pretty much the same, the same would be true here.
Get to know me! (Score:5, Insightful)
The most useful systems of tomorrow can't simply assume that peripherals/devices conform to their world view in order to work together. Instead, they must spend some time up front talking, listening, communicating, then eventually, cooperating.
Heading in this direction will prevent a technological monoculture from appearing, which wedges itself into a hole dug from its own presuppositions. Instead, I think this would foster a hardware equivalent of Open Source, where anyone who knew how to talk the fundamental protocol could build something interesting and introduce it into a system.
Of course, that's a pretty far-off idea, but I think it is worth pursuing.
We'll view Viruses with nostalgia (Score:2, Insightful)
Now the important stuff (Score:3, Funny)
Beyond Contact (Score:3, Interesting)
Solves a GPL problem (Score:3, Interesting)
This assumes that its not trivial to extract the details from the Obje code, of course.
huh? (Score:2, Insightful)
If two sides can communicate well enough to teach eachother a third language, wouldn't they be able to communicate, period?
And if you need to install software on either end so they can go through this teaching process, isn't it easier to just install a TCP/IP stack on both ends?
ok, off to read the article...
Omniscience (Score:3, Funny)
Another PARC Invention? Who Will Steal It? (Score:3, Funny)
Thanks. We've gotten all we can out of mice, object-oriented languages, windows, laser printers and everything else we stole from you.
Sincerely,
Apple & Microsoft
Can anyone find downloadable code? (Score:3, Informative)
Don't get me wrong, there is some super talented people on the team - but I can't buy what I can't see. And this is precisely why I love GPL.
Jini sucks, and here's why (Score:3, Informative)
- like Java, its spec is controlled by Sun which is good 'cause there a single controlling entity and the bad is that no device manufacturer gives a rat's ass about what Sun thinks about device discovery and service negotiation.
- Sun's implementation needs Java2 i.e. 10MB JVM w/ 30-40MB runtime footprint
- Working with non-Java entities requires som
reinventing the wheel (Score:4, Informative)
Re:Sounds Like Sun's JINI (Score:5, Informative)
Q. How is the Obje interoperability platform different from UPnP? Jini?
A. The key difference between the Obje technology and other approaches to interoperability is that Obje does not require prior agreement on domain specific interfaces--the protocols, encodings, and standards used to communicate with specific types of devices. Other technologies, including UPnP, Jini, HAVi and Bluetooth, each define specialized interfaces for each new type of device: Bluetooth defines "profiles" for phones, headsets and printers; Jini defines APIs for printers and cameras; the UPnP consortium defines interfaces for audio/visual devices, scanners and home appliances; HAVi defines APIs for DVD and CD players, printers, cameras and TVs.
The problem with such approaches is that software must be recoded to address each specific type of device that it is expected to work with. For example, an application written to use UPnP media servers will not be able to use UPnP scanners (much less devices implemented under other standards) without re-implementation.
With Obje, devices and applications are written once, against a small, fixed set of meta-interfaces, which allow them to acquire any needed communication capabilities at runtime. These meta-interfaces abstract the protocols and communication standards used by specific devices so that, at runtime, a device can provide its communication specifics to the entity that wants to use it, with no reprogramming of existing services. This allows users and manufacturers to "recombine" devices and services at will, without waiting for slow-moving standards bodies. This ability is unique to Obje.
Re:Sounds Like Sun's JINI (Score:3)
So, what your saying is they have never read the Jini spec or decided to find out what Jini is then?
Hint: It has nothing to do with "printers" and "cameras" and everything to do with "services" - any services.
I do a little development in Jini and I can tell you, Jini does EVERYTHING Obje does...
Re:Sounds Like Sun's JINI (Score:2, Interesting)
I think they'll suffer from the same "a priori knowledge" problem that JINI does - sure you can find a service (even one of a type you didn't know about when you were compiled) and get a little program that lets you interact with that service (talk to it, call its functions, turn parts of it on or off, etc) but the trick is to know what that stuff _means_ (I think the AI boys would say "lacks a shared ontolo
You are so right (Score:5, Insightful)
Now, what was the reply? Something in the lines of: "it is not our job to define the standard API's. That's up to the community". Well, at that time I concluded that Jini would never succeed. And, it seems, Obje is falling into the same trap.
Protocols are needed. Regardless of wether they are defined in terms of binary data, XML schemas, or Java interfaces. You need them to be able to know what you are saying to the other party, and what it is trying to tell you.
I had some really neat ideas actually. I wanted to use stuff like distributed file storage. But there was no way I'd be writing my own interfaces that no one else would use. So, in the end, I didn't care much for Jini and apparently it was the right choice.
As far as I can tell, there is no difference between Obje and Jini, the designers are going to fall into the exact same trap. I would love it if someone showed me why Obje would succeed where Jini did not.
By the way, there were a lot of other things that sucked about Jini, but that had more to do with the crappy implementation than the actual concept.
Re:lpr -Pnewprinter (Score:3, Funny)
One day I could walk in to my kitchen to discover that my kettle has become fed up with boiling water so it has explained the principle to the toaster which, due to limited processing ability has offloaded 'toasting' to the fridge.
Now, in order to cook breakfast, I fill the toaster with water and stick a filled coffee filter on top, put a couple of slices of white bread in the fridge, take some now-precooked sausages from the fridge and place them in the washing machine to keep warm, use my C