1461180585-49325798-5262-4bd0-93a8-95b522a5b388

1. A non-transitory computer-readable medium embodying program code executable in a computing device, the program code being configured to cause the computing device to:
obtain a search query from an application executed by a client device associated with a user account, the user account being associated with a group of users within an enterprise;
identify, independent of a plurality of search results returned to the application by a search engine in response to the search query, a resource stored in a resource repository accessible to the computing device that is relevant to the search query, the resource repository further being independent from the search engine; and
transmit the resource to the client device, the resource being transmitted independent of the plurality of search results returned to the application by the search engine.
2. The non-transitory computer-readable medium of claim 1, wherein the resource repository is a private resource repository associated with the enterprise.
3. The non-transitory computer-readable medium of claim 1, the program code being further configured to cause the computing device to at least:
identify a plurality of search queries obtained from a plurality of user accounts associated with the enterprise;
determine that a threshold number of the plurality of search queries correspond to the search query; and
generate an administrator notification to obtain or generate at least one resource corresponding to the search query in response to the threshold number of the plurality of search queries corresponding to the search query.
4. The non-transitory computer-readable medium of claim 1, the program code being further configured to cause the computing device to at least:
identify a plurality of search queries obtained from a plurality of user accounts associated with the enterprise;
identify a highest ranked subset of the plurality of search queries; and
generate an administrator notification to obtain or generate at least one resource corresponding to the highest ranked subset of the plurality of search queries.
5. The non-transitory computer-readable medium of claim 1, the program code being further configured to cause the computing device to at least:
determine whether the search query corresponds to a previous search query associated with the user account; and
generate an administrator notification to obtain or generate content corresponding to the search query.
6. The non-transitory computer-readable medium of claim 1, wherein the program code identifies the at least one resource item stored on the resource repository accessible to the computing device that is relevant to the search query based at least in part upon at least one of a device type or a role within the enterprise of a user associated with the user account.
7. A system, comprising:
at least one computing device;
programming code executable in the at least one computing device, the programming code being configured to cause the at least one computing device to at least:
obtain a search query associated with a user account within an enterprise, the user account being associated with at least one client device;
identify at least one resource item relevant to the search query independent of a search engine accessible by a browser executed by the at least one client device;
associate the at least one resource item with the user account;
generate a notification comprising a reference to the at least one resource item; and
transmit the notification to the at least one client device independent of the search engine accessible by the browser, the notification being transmitted independent of the search engine accessible by the browser.
8. The system of claim 7, wherein the programming code that generates the notification is further configured to cause the at least one computing device to at least transmit the at least one resource item to the client device.
9. The system of claim 8, wherein the programming code that generates the notification is further configured to cause the at least one computing device to at least:
determine whether the client device is out of compliance with at least one compliance rule; and
include information about the at least one compliance rule into the notification.
10. The system of claim 7, wherein the programming code is further configured to cause the at least one computing device to at least:
identify the at least one resource item subsequent to a search performed via the search engine accessible by the browser; and
transmit the notification to another application executed by the client device subsequent to the search performed via the search engine accessible by the browser.
11. The system of claim 7, wherein the search query is based at least in part upon content associated with an email message accessible via a mail client executed by the client device.
12. The system of claim 7, wherein the search query is based at least in part upon content associated with a calendar event associated with a calendar of the user.
13. The system of claim 7, wherein the at least one resource item is stored in a resource repository associated with the enterprise and accessible using credentials associated with the user account.
14. The system of claim 13, wherein the resource repository comprises an application distribution environment.
15. The system of claim 13, wherein the resource repository includes a storage space associated with the user account.
16. A method, comprising:
obtaining, in at least one computing device, a search signal from a client device;
identifying, by the at least one computing device, at least one resource item relevant to the search signal independent of a search engine accessible by a browser executed by the at least one client device;
associating, by the at least one computing device, the at least one resource item with a user account corresponding to the client device; and
transmitting, from the at least one computing device, a reference to the at least one content item to the client device independent of the search engine accessible by the browser.
17. The method of claim 16, wherein the search signal comprises a user group to which the user account corresponding to the client device is associated within an enterprise.
18. The method of claim 16, wherein the search signal comprises at least one of a device type or a location of the client device.
19. The method of claim 16, wherein the search signal comprises a search query obtained on behalf of another user account within an enterprise that is associated with a same user group as the user account corresponding to the client device.
20. The method of claim 19, further comprising transmitting the reference to a plurality of client devices associated with a respective plurality of user accounts associated with a same user group as the user account corresponding to the client device.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for producing an antibiotic bone cement, comprising:
step A), mixing a bone cement base powder with a water content of less than or equal to 1.0% by weight with trometamol-fosfomycin to form a bone cement powder, and,
step X), drying the bone cement powder to a water content of less than or equal to 1.0% by weight.
2. The method according to claim 1, wherein the bone cement base powder is a polymer powder comprising a polymer selected from the group consisting of poly(methacrylic acid methylester), poly(methacrylic acid ethylester), poly(methylmethacrylic acid propylester), poly(methacrylic acid isopropylester), poly(methyl-methacrylate-co-methylacrylate), poly(styrene-co-methylmethacrylate), and a mixture of at least two of said polymers.
3. The method according to claim 1, wherein, in step A), the amount of bone cement base powder that is admixed to the bone cement powder ranges from 70 to 99.5% by weight.
4. The method according to claim 1, wherein a radiopaquer is additionally admixed to the bone cement powder in step A).
5. The method according to claim 4, wherein the amount of admixed radiopaquer is in the range from 3 to 30% by weight.
6. The method according to claim 1, wherein an initiator is additionally admixed to the bone cement powder in step A).
7. The method according to claim 6, wherein the initiator is a peroxide.
8. The method according to claim 6, wherein the amount of admixed initiator is in the range of 0.01 to 10% by weight relative to the total weight of the bone cement powder.
9. The method according to claim 1, wherein a further pharmaceutical agent is additionally admixed in step A).
10. The method according to claim 9, wherein the pharmaceutical agent is an antibiotic that has a water content of maximally 15.0% by weight.
11. The method according to claim 9, wherein the admixed amount of the further pharmaceutical agent is in the range from 0.1 to 15% by weight, relative to the total weight of the bone cement powder.
12. The method according to claim 1, wherein the bone cement powder is sterilised in a step E) that proceeds after step A) and before step X).
13. The method according to claim 12, wherein the bone cement powder produced in step A) is packaged in a sterile packaging material in a step D) preceding step E).
14. A bone cement powder produced according to the method according to claim 1 which comprises a bone cement base powder and trometamol-fosfomycin, whereby the bone cement powder has a water content of less than or equal to 1.0% by weight.
15. The bone cement powder according to claim 14, comprising:
75.0-90.0% by weight of at least one particulate polymethylmethacrylate or polymethylmethacrylate copolymer, relative to the total weight of the bone cement powder,
5.0-20.0% by weight of a particulate radiopaquer, relative to the total weight of the bone cement powder,
0.5-2.0 wt. % water-phlegmatised dibenzoylperoxide, relative to the total weight of the bone cement powder, having a water content of less than or equal to 30% by weight, and
0.5-15.0 wt. % trometamol-fosfomycin, relative to the total weight of the bone cement powder, whereby the total water content of the bone cement powder is less than or equal to 1.0% by weight.
16. The bone cement powder according to claim 15, comprising an additional antibiotic selected from the group consisting of aminoglycoside antibiotics, glycopeptide antibiotics, lincosamide antibiotics, and oxazolidinone antibiotics, whereby the antibiotic has a water content of maximally 15.0% by weight.
17. A spacer or implantable local active substance release systems comprising U a bone cement powder according claim 14 as a component of polymethylmethacrylate bone cements.
18. The method according to claim 3, wherein, in step A), the amount of bone cement base powder that is admixed to the bone cement powder ranges from 80.0 to 94% by weight.
19. The method according to claim 5, wherein the amount of admixed radiopaquer is in the range from 5.0 to 20% by weight.
20. The method according to claim 7, wherein the initiator is a a water phlegmatised dibenzoylperoxide with a water content of less than 28.0% by weight.

1461180573-89e95085-c066-4c64-82ac-0954d309b6b7

1. A method of compressing computer video into n-bit packets, comprising:
examining the color of each video pixel within selected video frames; determining which of the following conditions applies for each pixel in each selected frame:
a first condition wherein a current pixel is unchanged versus a pixel at the same screen position in the previously selected frame;
a second condition wherein the current pixel is unchanged versus a pixel directly to the left of the current pixel in the current frame;
a third condition wherein the current pixel is unchanged versus a pixel directly above the current pixel in the current frame;
a fourth condition wherein a sequential series of x pixels, beginning with the current pixel, are comprised only of colors from a two-color set and x is at least (n4); and
a fifth condition wherein each of the first, second, third and fourth conditions do not apply;
(a) if any of said first, second or third conditions apply, determining which of said conditions applies for the longest number of sequential pixels beginning with the current pixel, and
(i) if said determined condition is the first condition, encoding a packet including:
one bit indicating that said fifth condition does not apply, second and third bits together indicating that said first condition applies, and
(n3) payload bits indicating the number of sequential pixels, beginning with the current pixel, that are unchanged versus pixels at the same screen positions in the previously selected frame;
(ii) if said determined condition is the second condition, encoding a packet including:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said second condition applies, and
(n3) payload bits indicating the number of sequential pixels, beginning with the current pixel, that can be copied from the pixel in the current frame directly to the left of the current pixel;
(iii) if said determined condition is the third condition, encoding a packet including:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said third condition applies, and
(n3) payload bits indicating a number of sequential pixels, beginning with the current pixel, that can be copied from said number of pixels in the current frame directly above each of them;
(b) if each of said first, second and third conditions do not apply and the fourth condition does apply, encoding one or more n-bit packets including:
(i) a first packet, including:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said fourth condition applies,
a fourth bit indicating whether the first packet is followed by another packet corresponding to the said series of x pixels;
(n4) bits indicating which colors, from said two-color set, applies to each of the first (n4) pixels in said series of x pixels; and
(ii) if x is greater than (2n-5), one or more subsequent packets, each including:
one bit indicating whether another packet corresponding to the said series of x pixels follows; and
(n1) bits indicating which colors, from said two-color set, applies to each of the next (n1) pixels in said series of x pixels; and
(c) if said fifth condition applies, encoding an n-bit packet including:
one bit indicating that said fifth condition applies; and

(n1) bits defining the color of the current pixel.
2. A method according to claim 1, further including:
determining that more than (n1) bits are required to define pixel colors, and wherein;
an additional packet is encoded following the packet encoded in step (c), which include;
n bits of additional color defining bits, thus creating a total of (2n-1) bits to define the color of the current pixel.
3. A method according to claim 2, further including:
determining that more than (2n1) bits are required to define pixel colors, and wherein;
one or more further packets are encoded following said additional packet each further packet including:
n bits of additional color defining bits, thus creating a total of (Yn-1) bits to define the color of the current pixel where Y is the sum total number of encoded packets.
4. A method according to claim 1, wherein the encoding step (a)(i) includes encoding packets with (n3) payload bits defining repeat counts from two to 2(n3)1.
5. A method according to claim 4 wherein n8 and the (n3) payload bits define repeat counts from two to thirty-three.
6. A method according to claim 1, further including the step of:
in encoding steps (a)(i), (a)(ii) or (a)(iii), when the required repeat count exceeds the payload capacity of one packet, encoding y number of packets of respective (n3) payloads which together provide a total combined payload equal to y times (n3) bits.
7. A method according to claim 6, wherein:
each single packet payload has the capacity to define repeat counts up to 2(n3); when the required repeat count exceeds 2(n3), a second packet is encoded to provide a 2*(n3) total combined payload, and the first and second packets provide for repeat counts of 2(2*(n3)); and
when the required repeat count exceeds both the available 2(n3) of a single packet and the 2(2*(n3)) of two packets, a third packet is encoded to provide a 3*(n3) total combined payload, and these first, second, and third packets provide for repeat counts up to 2(3*(n3)).
8. A method according to claim 1, wherein the encoding step (c) includes:
defining less than 2(n1) colors for said current pixel with said (n1) payload bits and defining additional gray intensities with the unused remainder of the 2(n1) color combinations.
9. A method according to claim 1, wherein the encoding step (c) includes using seven bits to define:
five different intensities each of red, green, and blue whereby a combination of equal intensities of red, green, and blue define five gray intensities; and
three additional gray intensities different from the five gray intensities defined by the equal intensities of red, green and blue.
10. A method according to claim 1, further comprising the step of:
decoding the packets by software resident on a personal computer.
11. A method according to claim 1, wherein the steps of examining the color of each video pixel and determining which of the conditions applies for each pixel further includes:
reading ahead of the current pixel to subsequent pixels to determine whether the fourth condition applies; and
determining whether more than one of the prioritized conditions applies for the current pixel, and if so, for the subset of applicable prioritized conditions:
(i) reading the next-subsequent pixel to determine if the subset of prioritized conditions also applies to the next-subsequent pixel;
(ii) if one or more of the subset of prioritized conditions does not apply to the next-subsequent pixel, deleting the inapplicable one or more prioritized conditions from the subset of applicable prioritized conditions; and
(iii) repeating steps (i) and (ii) until no prioritized condition still applies and thereafter:
(a) encoding the repeat count into one or more packets in accordance with the highest rated prioritized condition last left standing.
12. Apparatus for compressing computer video into n-bit packets, comprising an encoder that:
(1) examines the color of each pixel in selected video frames;
(2) determines which of the following conditions applies for the current pixel in the selected frame:
a first condition wherein a current pixel is unchanged versus a pixel at the same screen position in the previously selected frame;
a second condition wherein the current pixel is unchanged versus a pixel directly to the left of the current pixel in the current frame;
a third condition wherein the current pixel is unchanged versus a pixel directly above the current pixel in the current frame;
a fourth condition wherein a sequential series of x pixels, beginning with the current pixel, are comprised only of colors from a two-color set and x is at least (n4); and
a fifth condition wherein each of the first, second, third and fourth conditions do not apply; and

(3) encodes a packet, which includes:
(a) if it is determined said first condition applies:
one bit indicating that said fifth condition does not apply, second and third bits together indicating that said first condition applies, and

(n3) payload bits indicating the number of sequential pixels, beginning with the current pixel, that are unchanged versus pixels at the same screen position in the previously selected frame;
(b) if it is determined said second condition, but not said first condition, applies:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said second condition applies, and
(n3) payload bits indicating the number of sequential pixels, beginning with the current pixel, that can be copied from the pixel in the current frame directly to the left of the current pixel;

(c) if it is determined said third condition, but not said first or second conditions, applies:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said third condition applies, and

(n3) payload bits indicating a number of sequential pixels, beginning with the current pixel, that can be copied from said number of pixels in the current frame directly above each of them;
(d) if it is determined said fourth condition, but not said first, second or third conditions, applies:
(i) a first packet, including:
one bit indicating that said fifth condition does not apply,
second and third bits together indicating that said fourth condition applies,
a fourth bit indicating whether the first packet is followed by another packet corresponding to the same series of x pixels; and
(n4) bits indicating which color, from said two-color set, applies to each of the (n4) pixels in said series of x pixels; and
(ii) if x>(n4), one or more subsequent packets, each including:
one bit indicating whether another packet corresponding to the same series of x pixels follows; and
(n1) bits indicating which color, from said two-color set, applies to each of the (n1) additional pixels in said series of x pixels; and
(e) if it is determined said fifth condition applies:
one bit indicating that said fifth condition applies; and

(n1) bits defining the color for the current pixel.
13. Apparatus according to claim 12, the encoder further:
determining if more than (n1) bits are required to define pixel colors, and wherein
one or more further packets are encoded following the packet encoded in step (e), each further packet including;
n bits of additional color defining bits, thus creating a total of (Yn1) bits to define the color of the current pixel, where Y is the sum total nu8 mber of encoded packets.
14. A method of compressing video, comprising:
comparing some portions of selected video frames to other portions, and encoding said some portions based on their locational relationship to said other portions, and;
identifying still other portions of the same selected video frames as pixels comprised only of colors from a two-color set, and encoding said still other portions as a series of bits having binary states corresponding to the two colors in said two-color set.
15. A method of compressing fixed-bit RGB video, comprising:
reducing an available number of different pixel colors by:
grouping predetermined intensities of the red, green and blue components of each pixel color into intensity zones and;
adding a greater number of gray intensity zones than would be naturally created when said red, green and blue components are all in the same said intensity zones as each other.
16. Apparatus, comprising:
an encoder that creates a data packet defining a present repeated sequence of pixels by copying the color of another pixel selected based on a frame location relationship to the present repeated sequence of pixels, and selects, for the present repeated sequence of pixels, the selected frame location relationship from a group of frame location relationship types such that the selected frame location relationship will yield the longest repeated sequence of all the frame location relationship types.
17. Apparatus according to claim 16, wherein:
when said encoder finds that the length of said repeated sequence for two or more frame location relationship types are equal, selecting the selected frame location relationship based on a predetermined hierarchy between said two or more frame location relationship types.
18. Apparatus according to claim 16, wherein:
said group of frame location relationship types include:
a pixel located to the left of said present pixel in the same frame;
a pixel located above said present pixel in the same frame; and
a pixel located in the previous frame at the same location as said present pixel.
19. Apparatus according to claim 16, wherein the encoder further:
makes a packet that defines color of the present pixel from a specific set of two colors.
20. Apparatus according to claim 16, wherein the encoder further:
makes a packet that defines a color of the present pixel from a test pattern of available colors.
21. A video compression routine including:
examining pixels in selected past and present video frames;
for a given said present frame and for a current pixel thereof, making fixed bit length packets that define at least the current pixel, said packets including:
(1) pixel-copy packets having at least one packet-type identifier bit and at least one repeat count identification bit;
(2) color defining packets having at least one packet-type identifier bit and at least one color identifier bit.
22. A video data compression routine according to claim 21, wherein said algorithm further includes:
for said given present frame and current pixel:
making two-color series encoded packets having at least one packet-type identifier bit and a series of binary color identifier bits corresponding to only two colors and coinciding with a color of said present pixel and a number of pixels immediately following said current pixel.
23. A video transmission system, comprising:
a video encoding routine to encode serial pixel data at a first processor according to an algorithm including, for a given set of pixels, choosing a more efficient one of:
(1) copy-pixel encoding;
(2) individually colored pixel encoding; and
(3) two-color series pixel encoding.
24. A video transmission system according to claim 23, wherein:
the copy-pixel encoding includes encoding based on a frame location relationship between the present pixel in the present frame and another pixel in the present frame.
25. A video transmission system according to claim 23, wherein:
the copy-pixel encoding includes encoding based on a selection of:
a relationship between the present pixel in the present frame and another pixel to the left of the present pixel in the present frame;
a relationship between the present pixel in the present frame and another pixel above the present pixel in the present frame; and
a relationship between the present pixel in the present frame and another pixel at the same location but in a previous frame.
26. A video transmission system according to claim 23, wherein:
the two-color series pixel encoding includes encoding wherein a sequential series of x pixels, beginning with the current pixel, are comprised only of colors from a two-color set.
27. A method of encoding video, comprising the steps of:
predefining a set of pixel-copy commands based on frame location relationships between the present pixel and other pixels;
for the present pixel, encoding according to a hierarchy selection from one of:
an identified repeat count associated with at least one of the pixel copy commands;
an identified series of pixels drawn from only two colors; and
an identified specific individual pixel color.
28. A method according to claim 27, wherein the encoding includes making fixed-size packets including an opcode portion and a payload portion.
29. A method according to claim 28, wherein at least some of the fixed-size packets include:
one bit identifying the hierarchy selection associated with individually colored pixels;
two additional bits identifying the hierarchy selections associated with three different pixel copy commands and the two-color series pixels command; and
a payload of at least n-bits.
30. A method according to claim 29, wherein others of the fixed-size packets include an extension bit linking the current packet with a previous packet and including a payload of greater than n-bits.
31. A method according to claim 29, wherein others of the fixed-size packets include an extension bit linking the current packet with the next packet, which next packet then includes a payload of greater than n-bits.
32. A method of compressing a video stream to be displayed at pixel locations on a screen, comprising:
(a) sequentially receiving frames of information from the video stream comprising sequential series of respective pixel identifiers;
(b) for a first received pixel identifier, comparing the first pixel identifier with;
(i) an adjacent-pixel identifier adjacent the first received pixel on the screen;
(ii) an above-pixel identifier above the first received pixel identifier on the screen; and
(iii) an old-pixel identifier at the same screen location as the first received pixel identifier but on a previous screen; and

(c) counting a number of pixels from the first received pixel identifier for which at least one of said conditions (i), (ii), and (iii) yields a continuous stream of identity conditions;
(d) encoding a data packet having:
a code identifying one of the three conditions (i), (ii), (iii) which provides the longest said continuous stream, and
information identifying the length of said longest continuous stream.
33. A system, comprising:
an input to receive a serial stream of information specifying a serial sequence of pixel video values in an order in which said pixel video values are to be written onto a video monitor;
an encoder continually reading the serial stream of information and determining whether a condition occurs in which a predetermined number of consecutive ones of said pixel video values consists from a group of only two color values, and when said condition occurs, encoding the predetermined number of consecutive ones of said pixel video values by creating a series command with a series of binary state values corresponding in sequence to said consecutive ones of said pixel video values and wherein one of said binary state values corresponds to one of said two pixel video values and the other of said binary state values corresponds to the other of said two pixel video values; and
said encoder encoding said serial stream of information using an alternative identification of said pixel video values when said encoder determines that said condition does not occur.
34. A system according to claim 33, wherein the encoder creates an instruction regarding the identity of said two color values followed by the series of binary states corresponding in sequence to said consecutive ones of said pixel video values.
35. A system according to claim 34, wherein:
said instruction regarding the identity is an instruction making reference to prior pixel video values in said serial stream of information.
36. A system according to claim 33, wherein:
the encoder corresponds with a decoder and said encoder provides no instruction to the decoder regarding the identity of the two color values:
when said condition occurs, the encoder provides an instruction identifying that the type of command being communicated is a command corresponding to a two color series; and
said decoder identifies the two color values based on a pre-established prior location of the two color values in the serial stream of information.
37. A system according to claim 33, wherein:
the alternative identification of said pixel video values includes a series of corresponding command packets digitally identifying consecutive corresponding ones of said pixel video values.
38. A system, comprising:
an input to receive a serial stream of information specifying a serial sequence of pixel video values in an order in which said pixel video values are to be written onto a video monitor;
an encoder continually reading the serial stream of information and determining whether a condition occurs in which a current pixel video value in the serial sequence of pixel video values is identical to a prior pixel video value located above said current pixel video value relative to their display on a computer monitor, and when said condition occurs, issuing a command to copy the prior pixel video value to determine the current pixel video value; and
said encoder encoding said serial stream of information using an alternative identification of said pixel video values when said encoder determines that said condition does not occur.
39. A system according to claim 38, wherein:
the alternative identification of said pixel video values includes a series of corresponding command packets digitally identifying consecutive corresponding ones of said pixel video values.
40. A method of transmitting frames of video information, comprising the steps of:
receiving serial video information;
creating commands encoding the serial video information into a series of video command functions by analyzing change relationships between current values of said serial video information and prior values of said serial video information; and
dynamically and automatically adjusting a frame transmission rate in accordance with degrees of said change relationships.
41. A method according to claim 40, wherein said prior values are encoded to optimize encoding by selecting for given pixels the more efficient of (1) commands to copy prior pixel values and (2) commands to identify a current pixel value by color definition.
42. A method according to claim 40, wherein the step of dynamically and automatically adjusting the frame transmission rate in accordance with degrees of said change relationships includes, when an available transmission capacity reduces, steadily maintaining a resolution quality of said video information while adjusting said frame transmission rate to accommodate said reduction in available capacity.
43. A method of encoding video information by:
providing color packets with 5 bits yielding 32 words for color identification;
predetermining 3 red values, 3 blue values and 3 green values for a total of 27 possible color combinations;
correlating 32 words with the 27 possible color combinations yielding 5 remaining words;
predetermining 5 extra gray values; and
correlating the remaining 5 words with the 5 extra gray values.
44. A method according to claim 43, further comprising:
providing color packets with greater than 5 bits; and
dynamically selecting the 5 bit packets for lower color resolutions and the higher bit packets for higher color resolutions.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

What is claimed is:

1. A method for embedding a foreign data block in a host data file, comprising:
receiving a host data file, the host data file having a host data file format;
receiving a foreign data block;
determining characteristics of the foreign data block;
generating packing data that describes the characteristics of the foreign data block, including data marking the beginning and end of the foreign data block and further including an identifier designed to be distinguishable from all other data in the host data file; and
embedding the packing data and the foreign data block as a foreign data block packet in the host data file;
whereby the foreign data block is identifiable, extractable, and modifiable by computer programs not configured to recognize the host file data format.
2. The method of claim 1, wherein:
generating packing data includes generating a header for the foreign data block, the header including the identifier and indicating the beginning of the foreign data block packet and the beginning of the foreign data block.
3. The method of claim 2, wherein:
generating a header includes generating a header that indicates the end of the foreign data block packet.
4. The method of claim 2, wherein:
generating packing data includes generating a trailer for the foreign data block, the trailer indicating the end of the foreign data block.
5. The method of claim 2, wherein:
generating a header includes generating a header that indicates the end of the foreign data block.
6. The method of claim 1, further comprising:
including padding in the foreign data block packet to allow in-place modifications of the foreign data block that cause the foreign data block to expand.
7. The method of claim 6, wherein:
determining characteristics of the foreign data block includes determining a size of the foreign data block; and
the amount of padding is a function of the size of the foreign data block.
8. The method of claim 1, wherein:
the foreign data block is a data block not native to the host file format.
9. The method of claim 1, wherein the foreign data block is an Extensible Markup Language (XML) document and the host file is in a non-XML format.
10. The method of claim 9, wherein:
determining characteristics of the foreign data block includes determining a byte order and an encoding format of the foreign data block; and
generating a header includes generating a header that includes information for specifying the byte order and encoding format of the foreign data block, the encoding format being one of an 8, 16, or 32 bit Unicode format.
11. The method of claim 1, wherein generating an identifier includes generating a different identifier for each different type of foreign data block when there are multiple types of foreign data blocks in the host data file.
12. The method of claim 1, wherein the foreign data block includes metadata information that describes the host data file.
13. The method of claim 12, wherein:
receiving a host data file includes receiving a host data file having a non-XML format.
14. A computer program product, tangibly stored on a machine-readable medium, comprising instructions operable to cause a programmable processor to:
receive a host data file, the host data file having a host data file format that is not understood by the computer program product;
scan for a header that indicates the beginning of an embedded foreign data block packet that contains a foreign data block, the foreign data block having a format that is recognizable by the computer program, the header including an identifier designed to be distinguishable from all other data in the host data file, the header further describing the characteristics of the foreign data block; and
process the header when the header is located.
15. The computer program product of claim 14, further comprising instructions to:
process the foreign data block.
16. The computer program product of claim 15, further comprising instructions to:
stop processing the foreign data block when a trailer is detected, wherein the trailer indicates the end of the foreign data block.
17. The computer program product of claim 16, further comprising instructions to:
modify the foreign data block as specified by a user;
ensure that the modified foreign data block fits in the foreign data block packet; and
re-embed the modified foreign data block in place of the original foreign data block.
18. The computer program product of claim 16, further comprising instructions to:
modify the foreign data block as specified by a user;
rewrite the foreign data block packet;
ensure that the re-written foreign data block packet is the same size as the original foreign data block packet; and
re-embed the re-written foreign data block packet in place of the original foreign data block packet.
19. A method for embedding a foreign data block in a host data file, comprising:
receiving a host data file, the host data file having a host data format;
receiving a packet to be embedded into the host data file, the packet including a foreign data block and further including a header and a trailer that delimit the foreign data block, the header including an identifier designed to be distinguishable from all other data in the host data file; and
embedding the packet in the host data file;
whereby the foreign data block is identifiable, extractable, and modifiable by computer programs not configured to recognize the host file data format.
20. A computer program product, tangibly stored on a machine-readable medium, for embedding a foreign data block in a host data file, comprising instructions operable to cause a programmable processor to:
receive a host data file, the host data file having a host data format that is a native file format for the computer program product;
receive a packet to be embedded into the host data file, the packet including a foreign data block that is not native to the host data file format and further including a header and a trailer that delimit the foreign data block, the header including an identifier that is designed to be distinguishable from all other data in the host data file; and
embed the packet in the host data file;
whereby the foreign data block is identifiable, extractable, and modifiable by computer programs not configured to recognize the host file data format.
21. A computer program product, tangibly stored on a machine-readable medium, for embedding a foreign data block in a host data file, comprising instructions operable to cause a programmable processor to:
receive a host data file, the host data file having a host data file format that is a native file format for a host application;
receive a foreign data block, the foreign data block being a data block that is not native to the host data file format;
determine characteristics of the foreign data block;
generate information that describes the characteristics of the foreign data block, including information marking the beginning and end of the foreign data block and further including an identifier designed to be distinguishable from all other data in the host data file; and
embed the information and the foreign data block as a foreign data block packet in the host data file;
whereby the foreign data block is identifiable, extractable, and modifiable by computer programs not configured to recognize the host file data format.
22. A computer program product, tangibly stored on a machine-readable medium, for embedding metadata in a host data file having a non-XML format, comprising instructions operable to cause a programmable processor to:
receive a host data file having a format that is not XML and that is a native file format for a host application;
receive metadata having a format that is not native to the host data file format;
determine characteristics of the metadata;
generate information that describes the characteristics of the metadata, including information marking the beginning and end of the metadata and further including an identifier designed to be distinguishable from all other data in the host data file; and
embed the information and the metadata as a packet in the host data file;
whereby the metadata is identifiable, extractable, and modifiable by computer programs not configured to recognize the host file data format.