text:
Various described embodiments provide for per-pixel functionality in connection with pixel data that is processed by a video card for rendering on a display monitor. That is, pixel data that is associated with individual pixels that are to be rendered on a display monitor are imparted with a characteristic that enables various functionalities to be implemented at the pixel level. In one embodiment, per-pixel functionality is provided by including, in the pixel data itself, a specification of an auxiliary function that is to be performed on the pixel data associated with the individual pixels. For example, the security of the pixel data associated with each pixel can be enhanced by providing the ability to encrypt and decrypt the pixel data for individual pixels. A specification of a key that can be used for decrypting the pixel data can then be included in the pixel data itself such that when the pixel data is processed for rendering, a suitably configured decryptor can access the key specification and decrypt the pixel data.
1. A video card configured to:
hold encrypted pixel data associated with individual pixels that are to be rendered on a display monitor, the pixel data containing color values and including portions that specify a key that can be used to decrypt the pixel data for each associated pixel;
maintain a table having a column of index values and one or more key specifications associated with the index values and which can be used to access associated keys for decrypting the encrypted pixel data;
use said portions of the pixel data that specify a key as an index into the table to obtain an associated key;
use the associated key to decrypt encrypted pixel data,
wherein the table comprises multiple different key specifications, each specification being associated with a different key, each key being associated with a different secure region on a primary surface in a memory of the video card.
2. A method comprising:
providing pixel data on a video card, the pixel data comprising multiple bits at least a portion of which being encrypted, the pixel data specifying color values and one or more keys that can be used to decrypt the pixel data;
using the pixel data that specifies one or more keys to access the one or more keys; and
decrypting the pixel data using the one or more keys,
wherein pixel data is encrypted using different cycled keys, and wherein the pixel data can be decrypted using different cycled keys.
3. The method of
4. The method of
5. The method of
6. One or more computer-readable media having one or more sets of computer-readable instructions thereon which, when executed by one or more computers, implements the method of
7. A video card configured to implement the method of
8. A computing device comprising:
one or more processing units; and
a video card operably coupled with said one or more processing units, wherein said video card is configured to:
hold encrypted pixel data associated with individual pixels that are to be rendered on a display monitor, the pixel data containing color values and including portions that specify a key that can be used to decrypt the pixel data for each associated pixel;
maintain a table having a column of index values and one or more key specifications associated with the index values and which can be used to access associated keys for decrypting the encrypted pixel data;
use said portions of the pixel data that specify a key as an index into the table to obtain an associated key;
use the associated key to decrypt encrypted pixel data,
wherein the table comprises multiple different key specifications, each specification being associated with a different key, each key being associated with a different secure region on a primary surface in a memory of the video card.
9. A system comprising:
one or more processing units;
one or more computer-readable media;
computer-readable instructions on the one or more computer-readable media which, when executed, implement a method comprising:
providing pixel data on a video card, the pixel data comprising multiple bits at least a portion of which being encrypted, the pixel data specifying color values and one or more keys that can be used to decrypt the pixel data;
using the pixel data that specifies one or more keys to access the one or more keys; and
decrypting the pixel data using the one or more keys,
wherein pixel data is encrypted using different cycled keys, and wherein the pixel data can be decrypted using different cycled keys.
10. The system of
11. The system of
12. The system of
This invention relates to methods and systems for processing data using video cards.
Typically, content that resides on a computer can come under attack by individuals who wish to steal or modify the content. As an example, consider the case of a content author, such as a movie studio or a user publishing content on the web. Typically these individuals will publish video content that has restrictions on how users can view it. This content can typically be viewed or rendered on a computer such as a personal computer. A great deal of time, effort and money is spent each year by unscrupulous individuals and organizations trying to steal or otherwise inappropriately obtain such video content. Additionally, consider the case of eCommerce software that enables individuals to transact, for example, banking transactions. The data that is displayed on a display monitor for the user to review and manipulate can come under attack by rogue software applications executing on the user's computer. That is, rogue programs or devices can and often do try to inappropriately obtain content once it has been received on a computer, such as a personal computer.
One solution for content security can include various software-based digital rights management (DRM) solutions. The problem here is that no matter how good the software-based, tamper-resistant, "hard-to-observe" DRM system that does the software rendering is—ultimately, the bits get written out to a video card where they can be "seen" or even copied by other software. This presents a sphere of vulnerability. Thus, the video card that processes the video content can be the subject of software attacks.
The modern video card consists of four main components: the graphics processor unit (GPU) 108, the video memory 110, the random access memory digital-to-analog converter (RAMDAC) 112, and the driver software which can be included in the Video BIOS 114.
GPU 108 is a dedicated graphics processing chip that controls all aspects of resolution, color depth, and all elements associated with rendering images on the monitor screen. The computer's central processing unit or CPU (not shown) sends a set of drawing instructions and data, which are interpreted by the graphics card's proprietary driver and executed by the card's GPU 108. GPU 108 performs such operations as bitmap transfers and painting, window resizing and repositioning, line drawing, font scaling and polygon drawing. The GPU 108 is designed to handle these tasks in hardware at far greater speeds than the software running on the system's CPU. The GPU then writes the frame data to the frame buffer (or on-board video memory 110). The GPU greatly reduces the workload of the system's CPU.
The memory that holds the video image is also referred to as the frame buffer and is usually implemented on the video card itself. In this example, the frame buffer is implemented on the video card in the form of memory 110. Early systems implemented video memory in standard DRAM. However, this requires continual refreshing of the data to prevent it from being lost and cannot be modified during this refresh process. The consequence, particularly at the very fast clock speeds demanded by modern graphics cards, is that performance is badly degraded.
An advantage of implementing video memory on the video card itself is that it can be customized for its specific task and, indeed, this has resulted in a proliferation of new memory technologies:
Some designs integrate the graphics circuitry into the motherboard itself and use a portion of the system's RAM for the frame buffer. This is called "unified memory architecture" and is used for reasons of cost reduction only and can lead to inferior graphics performance.
The information in the video memory frame buffer is an image of what appears on the screen, stored as a digital bitmap. But while the video memory contains digital information its output medium—the monitor—may use analog signals. The analog signals require more than just an "on" or "off" signal, as it is used to determine where, when and with what intensity the electron guns should be fired as they scan across and down the front of the monitor. This is where RAMDAC 112 comes into play as described below. Some RAMDACs also support digital video interface (DVI) outputs for digital displays such as LCD monitors. In such configurations, the RAMDAC converts the internal digital representation into a form understandable by the digital display.
The RAMDAC plays the roll of a "display converter" since it converts the internal digital data into a form that is understood by the display.
Even though the total amount of video memory installed on the video card may not be needed for a particular resolution, the extra memory is often used for caching information for the GPU 108. For example, the caching of commonly used graphical items—such as text fonts and icons or images—avoids the need for the graphics subsystem to load these each time a new letter is written or an icon is moved and thereby improves performance. Cached images can be used to queue up sequences of images to be presented by the GPU, thereby freeing up the CPU to perform other tasks.
Many times per second, RAMDAC 112 reads the contents of the video memory, converts it into a signal, and sends it over the video cable to the monitor. For analog displays, there is typically one Digital-to-Analog Converter (DAC) for each of the three primary colors the CRT uses to create a complete spectrum of colors. For digital displays, the RAMDAC outputs a single RGB data stream to be interpreted and displayed by the output device. The intended result is the right mix needed to create the color of a single pixel. The rate at which RAMDAC 112 can convert the information, and the design of GPU 108 itself, dictates the range of refresh rates that the graphics card can support. The RAMDAC 112 also dictates the number of colors available in a given resolution, depending on its internal architecture.
The bus connector 102 can support one or more busses that are used to connect with the video card. For example, an Accelerated Graphics Port (AGP) bus can enable the video card to directly access system memory. Direct memory access helps to make the peak bandwidth many times higher than the Peripheral Component Interconnect (PCI) bus. This can allow the system's CPU to do other tasks while the GPU on the video card accesses system memory.
During operation, the data contained in the on-board video memory can be provided into the computer's system memory and can be managed as if it were part of the system's memory. This includes such things as virtual memory management techniques that the computer's memory manager employs. Further, when the data contained in the system's memory is needed for a graphics operation on the video card, the data can be sent over a bus (such as a PCI or AGP bus) to the video card and stored in the on-board video memory 110. There, the data can be accessed and manipulated by GPU 108 as described above.
This invention arose out of concerns associated with providing methods and systems for protecting data. In particular, the invention arose out of concerns associated with providing methods and systems that are resistant to software attacks, particularly those attacks that are waged by a rogue application executing on a user's machine.
The various methods and systems described herein are directed to supplying a secure channel for software executing on a host computer. The methods and systems address and provide solutions for an attack model in which rogue software executing on the host computer attempts to inappropriately obtain or otherwise manipulate data. Some embodiments can provide pixel data that can be kept confidential (in that untrusted software applications cannot read the data off of the display screen). In addition, other embodiments can preserve the integrity of the pixel data by detecting whether the pixel data has been inappropriately manipulated.
Various embodiments are based on a decryption engine that is located on a video card very late in the video processing chain such that programmatic access to decrypted pixel data is denied.
In addition, various embodiments provide for per-pixel functionality. That is, pixel data that is associated with individual pixels that are to be rendered on a display monitor are imparted with a characteristic that enables various functionalities to be implemented at the pixel level. In one embodiment, per-pixel functionality is provided by including, in the pixel data itself, a specification of an auxiliary function that is to be performed on the pixel data associated with the individual pixels. For example, the security of the pixel data associated with each pixel can be enhanced by providing the ability to encrypt and decrypt the pixel data for individual pixels. A specification of a key that can be used for decrypting the pixel data can then be included in the pixel data itself such that when the pixel data is processed for rendering, a suitably configured decryptor can access the key specification and decrypt the pixel data.
Exemplary Computer System
It is to be appreciated that computing environment 200 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the media processing system. Neither should the computing environment 200 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing environment 200.
The various described embodiments can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the media processing system include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
In certain implementations, the system and related methods may well be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The embodiments can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In accordance with the illustrated example embodiment of
Bus 206 is intended to represent one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus also known as Mezzanine bus.
Computer 200 typically includes a variety of computer readable media. Such media may be any available media that is locally and/or remotely accessible by computer 200, and it includes both volatile and non-volatile media, removable and non-removable media.
Computer 200 may further include other removable/non-removable, volatile/non-volatile computer storage media. By way of example only,
The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for computer 200. Although the exemplary environment described herein employs a hard disk 228, a removable magnetic disk 232 and a removable optical disk 236, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk 228, magnetic disk 232, optical disk 236, ROM 208, or RAM 210, including, by way of example, and not limitation, an operating system 214, one or more application programs 216 (e.g., multimedia application program 224), other program modules 218, and program data 220. A user may enter commands and information into computer 200 through input devices such as keyboard 238 and pointing device 240 (such as a "mouse"). Other input devices may include a audio/video input device(s) 253, a microphone, joystick, game pad, satellite dish, serial port, scanner, or the like (not shown). These and other input devices are connected to the processing unit(s) 202 through input interface(s) 242 that is coupled to bus 206, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
A monitor 256 or other type of display device is also connected to bus 206 via an interface, such as a video adapter or video/graphics card 244. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers, which may be connected through output peripheral interface 246.
Computer 200 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 250. Remote computer 250 may include many or all of the elements and features described herein relative to computer.
As shown in
When used in a LAN networking environment, the computer 200 is connected to LAN 251 through a suitable network interface or adapter 248. When used in a WAN networking environment, the computer 200 typically includes a modem 254 or other means for establishing communications over the WAN 252. The modem 254, which may be internal or external, may be connected to the system bus 206 via the user input interface 242, or other appropriate mechanism.
In a networked environment, program modules depicted relative to the personal computer 200, or portions thereof, may be stored in a remote memory storage device. By way of example, and not limitation,
The various methods and systems described herein are directed to supplying a secure channel for software executing on a host computer. The methods and systems address and provide solutions for an attack model in which rogue software executing on the host computer attempts to inappropriately obtain or otherwise manipulate data.
The various embodiments can provide a secure execution environment in which data can be securely rendered on a display screen for a user to interact with. The described embodiments can embody, among other characteristics, one or both of the following characteristics.
The first characteristic is that the data, e.g. pixel data that resides on the video card, can be kept confidential. This means that untrusted software applications (or rogue applications) cannot read the data off of the display screen or from video memory. The confidentiality aspect is useful in the digital workplace arena because if one is rendering video or pixel data, it is desirable to be able to send video data to the video card in a way such that a "cracking tool" running on the computer cannot read the data. For example, consider that a user is working in a secure email program that enables them to receive data in encrypted form. Various embodiments can enable the data to be rendered onto the display screen without the risk of a rogue application being able to access the data.
The second characteristic is that of integrity. By this is meant that, fundamentally, one does not want untrusted software (or rogue software) to be able to manipulate the data that is displayed on portions of a display screen. Consider, for example, an eCommerce setting in which a user arranges, via software executing on their computer, to pay a certain entity $100. The user might simply type in the dollar amount in a window displayed on their display screen. It is possible, however, for a rogue application to change the "$100" to "$1000". Understandably, this is undesirable.
Additionally, if some untrusted software does inappropriately manipulate the data in some way, it would be desirable to be able to tell that this has occurred. Accordingly, some of the embodiments described below provide a means by which data manipulation can be detected.
Exemplary Embodiments
The embodiments described below are directed to providing secure video output—that is, video output that is not susceptible to software attack. Various embodiments can provide window-based protections that can be selectively applied to regions (i.e. windows) on the user's display screen, rather than the whole screen area itself—although whole screen protection is not excluded. The secure video output cannot typically be read by untrusted software. This behavior provides protection for content such as premium content (e.g. videos, books), as well as a wide variety of general e-Commerce and security applications.
In addition, various embodiments can provide so-called secure dialogs that are not obscureable (either partially or completely) by untrusted dialogs. This behavior is most useful in the context of general e-Commerce transactions.
The embodiments described below are encryption-based solutions that provide secure video output. Advantages of the various embodiments are that the embodiments are typically easy to implement and have virtually no impact on existing software architectures.
Some of the embodiments about to be described are based on a decryption engine that is located on the video card very late in the video processing chain. In the examples described in this document, many aspects of the embodiments are implemented in hardware—other aspects can be implemented in firmware and software as well.
A desirable feature of the inventive embodiments is that various data that is to be displayed on a user's display screen is encrypted. Accordingly, attacks that are directed to stealing the data will result only in encrypted data being stolen. Encryption techniques can be utilized such that any stolen encrypted data is mathematically infeasible to decrypt. Additionally, decryption of the encrypted data takes place at a point in the processing chain such that there is no programmatic access to the decrypted bits that are to be displayed. That is, there is no software access to the decrypted bits so that rogue software executing on the user's computer cannot access the decrypted bits.
In one embodiment, a decryptor is located on the video card and is placed intermediate the GPU and the display converter (e.g. the RAMDAC). The decryptor is desirably implemented in hardware and can process the encrypted data in "real time" as the video card is rastering the frame-buffer to the display converter.
Exemplary Architecture
Like the video card of
GPU 308 is a dedicated graphics processing chip that controls all aspects of resolution, color depth, and all elements associated with rendering images on the monitor screen. The memory controller (sometimes integrated into the GPU) manages the memory on the video card. The computer's central processing unit or CPU (not shown) sends a set of drawing instructions and data, which are interpreted by the graphics card's proprietary driver and executed by the card's GPU 508. GPU 308 performs such operations as bitmap transfers and painting, window resizing and repositioning, line drawing, font scaling and polygon drawing. The GPU can then write the frame data to the frame buffer (or on-board video memory 310).
The information in the video memory frame buffer is an image of what appears on the screen, stored as a digital bitmap. RAMDAC 312 is utilized to convert the digital bitmap into a form that can be used for rendering on the monitor, as described above.
In addition to these components, in this embodiment, video card 300 comprises a memory controller 316 and a control processor 318 that can include a key manager 319. The video card also includes a decryptor 320. These components can be implemented in any suitable hardware, software, firmware or combination thereof.
Memory controller 316 receives data on the video card and manages the data in the video memory 310. The memory controller can also be responsible for managing data transfers between the video card and system memory.
A control processor 318 is provided and can include a key manager 319. The control processor can be responsible for organizing cryptographic functions that take place on the video card. For example, the control processor 318 can communicate, via a dedicated bus or secure channel, with decryptor 320 to ensure that the decryptor has the decryption capabilities that it needs to properly decrypt pixel data that has been encrypted for security reasons. The control processor 318, through the key manager 319, can manage keys that are associated with encrypting and decrypting pertinent pixel data. In some embodiments the control processor can be implemented as a separate integrated circuit chip on the video card.
Decryptor 320 is configured or configurable to decrypt pertinent pixel data. For example, as described in more detail below, data that is to be protected can be encrypted and written to a secure region comprising part of the so-called "primary surface" or desk top surface of the video card's memory that contains data that is used by the RAMDAC 512 for rendering an image on the monitor. The encrypted image may be copied to a temporary location in the video memory before being copied to the primary surface. The encrypted image could also be assembled into other display surfaces (commonly called overlay or sprite surfaces) if the video card hardware arranges that these surfaces are mixed with or overlay the primary surface. The control processor 318 can set the encryption keys that are to be used to encrypt data and can provide decryption keys to the decryptor 320 for use in decrypting encrypted pixel data. Once the data has been decrypted, the data can be passed through to the RAMDAC for further processing.
It should be appreciated and understood that while the decryptor is illustrated as a separate component, the RAMDAC or a module within the GPU can be provided with suitable decryption functionalities so as to effectively operate as a decryptor.
In operation, a secure or trusted software application 322 or a remote server can set up a shared key between the decryptor 320 and the software application. The software application can then use the key to generate encrypted pixel data that can be stored in memory (either video memory 310 or system memory).
There are typically a couple of different ways that the pixel data can get written into the protected regions of the primary surface or frame buffer. First, the encrypted pixel data can be written directly to the frame buffer via a "move" operation that the CPU memory controller arranges. Second, an application (such as secure application 322) can assemble the pixel data that is to be protected in system memory where in encrypted form. In this case, encrypted data in the system memory will eventually be copied to the primary surface for decryption and rendering.
The control processor can then ensure that the decryptor 320 knows which key to use to decrypt the pixel data before the data is sent to the RAMDAC 312 (or before it is rendered on the monitor).
Thus, in this example, there is a mechanism by which one or more keys can be shared between trusted entities. Data can be encrypted on the video card and decrypted at a point in the data processing chain so that unencrypted data that is to be rendered to a display monitor is not susceptible to a software attack. Untrusted or rogue entities that try to read the encrypted data out of the protected region(s) of the primary surface will read only encrypted data which is effectively useless to them. Additionally, this holds true when VRAM memory is mapped into system memory via virtual memory management techniques. Thus, whether the data that is supposed to be in the protected region(s) of the primary surface is either on the video card or mapped into the system's memory, it is encrypted and thus protected.
Secure Window(s)
In one embodiment, one or more secure windows are provided and can be used to display confidential data on a user's display screen. The secure windows on a user's display screen are associated with and correspond to secure regions of the primary surface in the video card's memory (or system memory if virtual memory management techniques are used). As an example, consider
There, a diagrammatic representation of the video card's primary surface is shown generally at 400. Primary surface 400 comprises a region 402 (shaded) that contains unencrypted data, and one or more regions that contain encrypted data. In this particular example, two exemplary secure regions 404, 406 can contain encrypted data. Each secure region's corresponding secure window is shown at 404 a, 406 a respectively.
In this embodiment, decryptor 320 (
The pixel data within regions 404, 406 can be decrypted by the decryptor using a key associated with the secure region. In some embodiments, a single key can be associated with all of the secure regions. In other embodiments, each secure region can have its own associated key. One reason for having separate keys for each of the secure regions is that some secure regions may not be associated with certain applications that can access other secure regions. For example, assume that a secure email application is associated with one secure region in which encrypted email is to reside. Assume also that an eCommerce application is associated with a different secure region. There is really no reason for the email application to have access to the secure region associated with the eCommerce application. Yet, if there is only one key for all of the secure regions, then presumably all applications that can access one secure region can access all other secure regions. Accordingly, by providing a different key for each of the secure regions, access to each secure region is limited to only those applications that should can have access.
Alternatively, in another embodiment, a central entity (a "mixer" or "compositor") could take several regions and transcrypt them to a common key to be decrypted by the display hardware. Each application would have to trust the compositor entity.
Step 500 defines one or more secure regions of a primary surface. The regions can comprise any suitable shape and size. In the example above, the secure regions happen to be rectangular in shape. The regions are desirably smaller in dimension than that necessary to occupy the entire display screen when rendered to the display screen. Step 502 associates at least one key with individual secure regions of the primary surface. The key or keys can be used to encrypt and/or decrypt pixel data that is to reside in the secure region. Step 504 uses the key or keys to encrypt pixel data. This step can be implemented by trusted system software, firmware and/or hardware. For example, a secure application such as application 322 can cause pixel data to be encrypted. Step 506 writes or otherwise moves the encrypted pixel data to a secure region of the primary surface. Note that once the pixel data is encrypted, the underlying decrypted pixel data is protected from theft.
Step 600 provides encrypted data in a secure region of the video card's primary surface. Step 602 provides a key associated with the secure region. This step can be implemented by control processor 318 (
Implementation Example
In one implementation, encryption and decryption can take place using a public-key-based engine. A control protocol can allow software, such as a security application, to send commands in encrypted form to the control processor 318 (
Any suitable command set can be used. As an example, the following commands (or ones similar to them) can be used:
In some embodiments, the decryptor 320 can infer the geometry of the secure region so that it can decrypt encrypted pixel data within the region. In yet other embodiments, the decryptor can be informed of the geometry. This can be useful when, for example, a secure window is dragged and dropped to a different location on the user's display screen. For example, the GPU 308 can embody a geometry processor (not specifically illustrated) which maintains a list of the secure regions of the primary surface and various security data that are associated with those regions. The security data can include the x- and y-coordinates of the regions, width and height dimensions of the region and the key associated with the particular region. The decryptor 320 can be notified of this security data so that when it begins to process pixel data, it knows whether a particular pixel belongs to one of these regions and needs to be decrypted, or whether the particular pixel data is to be passed through to the RAMDAC. If a secure window is moved, the geometry processor can notify the decryptor of the new coordinates of the security window.
In one example architecture the public key and control functionality can be modularized into a discrete external device with on-board flash memory (similar to a 'smartcard'). Conversely, the decryptor 320 can be incorporated into the GPU silicon (i.e. integrated with the GPU). The control processor 318 can then pass decryption keys directly to the GPU. As an alternative preventative measure to avoid software attacks, a dedicated bus or other secure channel can be provided between the control processor 318 and the GPU 308. In this case, the control processor still needs to manage the geometry and keys of the protected regions, but system software can send commands and data in "plain-text" as opposed to using an encrypted channel.
In operation, the control processor 318 can be authenticated by secure software/hardware and can receive encrypted commands like "set the encryption key for this secure region to be x." The control processor can then return a cryptographic response to ensure that the command was properly executed, or if a secure channel is used, then a simple acknowledgement will suffice.
The encryption key can now be used to render video data to the secure region. In most cases, this will be performed by secure software running on the host; however, the bitmap to be rendered can be assembled by any entity in possession of the encryption key, and this may include remote devices or servers, or other hardware on the PC platform. In such cases, any insecure network can be used to send the encrypted bitmap to the client PC. In this example, it may be possible for adversarial code to read this encrypted data. However, any data that is read by such code is encrypted and effectively useless to the adversarial code. It may be possible, in some implementations, for adversarial code to modify the encrypted data. Encrypted data that is modified will, however, be decrypted into data which, when rendered on a display screen, will appear logically out of context. For example, such data can appear, when rendered onto a display screen as random noise/grey output. This sort of attack will most assuredly be noticed by the user.
In addition, use of authentication information can ensure that if pixel data is modified by adversarial code, the user will be apprised of it. As an example, consider the following. The secure data format can be required to comprise a certain number of bits per pixel, e.g. 24 bits/pixel. Of the 24 bits/pixel, 8 bits can always be required to have a value of zero. The decryptor can then be configured to make non-compliant pixels flash purple, and can notify the control processor that there has been an attack.
Further, other techniques can be used to ensure that if pixel data is inappropriately modified, such modification can be detected. As an example, consider the following. A hash can be computed for the pixel data associated with each pixel that is to be rendered. As the pixel data is processed by the display converter (e.g. the RAMDAC 312), the display converter can then compute a hash of the pixel data and compare the computed hash with the previously computed hash for the pixel data. If there has been an inappropriate data modification, then the hash comparisons will indicate that such has occurred.
Exemplary Encryption Techniques
Various encryption techniques can be utilized to ensure that pixel data that resides in secure regions of the primary surface is encrypted and then properly decrypted later by the decryptor. Two exemplary encryption techniques are described below—although other techniques can be used without departing from the spirit and scope of the claimed subject matter.
A first encryption technique that can be used is a stream cipher. Stream ciphers are typically very fast in software and very easy to implement in hardware. A stream cipher is a type of symmetric encryption algorithm that typically operates on smaller units of plaintext, usually bits. A stream cipher generates what is called a keystream (a sequence of bits used as a key). Encryption is accomplished by combining the keystream with the plaintext or bits, usually with the bitwise XOR operation. The generation of the keystream can be independent of the plaintext and ciphertext, yielding what is termed a synchronous stream cipher, or it can depend on the data and its encryption, in which case the stream cipher is said to be self-synchronizing. Most stream cipher designs are for synchronous stream ciphers. The same stream cipher can then be used to decrypt data that has been encrypted.
The stream cipher can be run over the entire primary surface in a manner that only decrypts data in the secure regions of the primary surface. This, however, is not the best choice as the stream cipher need not be run over the entire primary surface—but only those secure regions. Accordingly, the range over which the stream cipher is run can be restricted so that the range is defined only with the bounds of the secure region or regions. A desirable way of implementing a restricted range stream cipher is to define, for each refresh of the display, a starting location for the stream cipher—such as the top left pixel of a secure region. The stream cipher can then be run within the secure region until the bottom right pixel of the secure region is processed.
As an example, consider
The encryptor can allow the stream cipher to continue across several frames, thereby making differential attacks more difficult. The key for the stream cipher can be changed after each group of frames. To reduce the number of keys, a fixed array of keys can be negotiated prior to being used. The encryptor can cycle through the array of keys choosing a different key for each group of frames.
A second encryption technique that can be used is a block cipher. A block cipher is a type of symmetric-key encryption algorithm that transforms a fixed-length block of plaintext data or bits (unencrypted text or bits) into a block of ciphertext (encrypted text or bits) of the same length. This transformation takes place under the action of a user-provided secret key. Decryption is performed by applying the reverse transformation to the ciphertext block using the same secret key. The fixed length is called the block size, and for many block ciphers, the block size is 64 bits. In the coming years the block size will increase to 128 bits as processors become more sophisticated.
Of the two encryption techniques described above, a stream cipher is the desirable choice as it is much faster than a block cipher.
In some embodiments, authentication techniques can be utilized to ensure the integrity and identity of the video card. Important goals for a secure software application that is to interact with a video card are that the application be able to reliably authenticate that (1) the application is really communicating with a video card, and not a piece of software that is emulating a video card, and (2) that the application is really communicating to a video card that obeys or conforms to pre-defined rules associated with the rendering of the pixel data.
Authentication techniques can be implemented in a couple of different ways—e.g. through cryptographic certification and other communication protocols.
Cryptographic certification pertains to building a video card that is furnished with a certified key and a digital certificate. Using its key and certificate, the video card can engage in a cryptographic conversation with secure software applications. For example, the digital certificate can be used to authenticate the video card, and the certified key can be used to encrypt communications that take place with the secure application. To implement cryptographic certification, each video card can have a separate security IC chip that is manufactured by a trusted entity. Cryptographic certification techniques are well known and understood by those of skill in the art. Accordingly, and for the sake of brevity, cryptographic certification is not described in additional detail here.
Another means of authentication can be associated with a secure protocol that is established between secure applications and the video card. Secure protocols can allow the application to have some assurances that it is communicating with a valid video card. For example, the trusted application can issue a challenge to the video card to identify itself and the card can respond with a response that it is a trusted video card. Various known secure protocol techniques can be utilized.
Several advantages are provided by the embodiments described above. First, techniques are provided that can ensure that data (both on and off a video card) is protected from software attacks. Protection is provided in the form of encryption techniques that can be utilized to encrypt data residing on the primary surface of the video card. Decryption can then take place at a point in the data processing pipeline at which there is no software access. Thus, any read attacks by rogue software will yield encrypted and essentially useless data. Thus, pixel data can be kept confidential. Further, various techniques can enable the integrity of the data to be preserved. That is, in the event of a data modification attack, various detection methods can be employed to ensure that the appropriate notifications are generated (both application notifications and user notifications). Further, advantages are achieved by being able to define secure regions of the primary surface that are identified by a particular geometry.
Per-Pixel Auxiliary Functionality
In some embodiments, it can be desirable to provide functionality at the granularity of individual pixels. For example, the secure regions of the primary surface do not typically overlap. In some instances, however, users may desire to move windows around on their display so that they overlap. Overlapping regions can inject additional design considerations into the design of the components that perform the encrypting and decrypting functions.
As an example, consider
Accordingly, the embodiments about to be described provide methods and systems that enable per-pixel functionality. In one example, per pixel security can be provided.
Other common video formats use 16 bits per pixel instead of 24 or 32 bits per pixel. For example, RGB data can be stored as 5 bits per pixel, leaving a single bit unused that could be used to specify 2 auxiliary functions
One way of implementing auxiliary functionality is to provide a table, such as table 902 that references or specifies the auxiliary functionality. For example, using eight bits to specific auxiliary functions can permit up to 256 auxiliary functions to be specified. Accordingly, when the pixel data is processed, the bits of pixel data pertaining to the auxiliary functions can be processed to access and implement various auxiliary functions.
Step 1000 provides pixel data having a defined number of bits per pixel. In the
If the function 0 specified a null function, then old applications will automatically be compatible with the new scheme which utilizes the new auxiliary functions.
Per Pixel Security
Auxiliary bits of the pixel data can be used to provide decryption functionality at the pixel level. For example, assume that there is a secure region on the primary surface that is used for holding pixel data that is desired to be protected. This pixel data can be encrypted, at the pixel level, using an encryption key. Assume now that the auxiliary bits of the encrypted pixel data specify a decryption key can be utilized to decrypt the pixel data. Consider, for example,
The per pixel key table can hold individual keys that can be used to decrypt the associated encrypted pixel data, or it can hold references to keys that can be used to decrypt the associated encrypted pixel data.
The table can also hold secondary (non-security) auxiliary related data such as alpha values. This allows selective reuse of values between security and the previous original use of the auxiliary channel. For examples, value 1 through 3 could be used to specify keys (with their own alpha value), while leaving values 0 and 4 through 255 still available for specifying their original alpha values.
Step 1200 encrypts pixel data that is associated with individual pixels. Advantageously the encryption can take place at the pixel level. This step can be implemented in any suitable way. For example, a secure application can cause the pixel data to be encrypted. Alternately, other processes can be utilized to encrypt the pixel data, examples of which are given above. Step 1202 associates auxiliary data with the pixel data. The auxiliary data specifies one or more decryption keys that can be used to decrypt the pixel data. In some cases, the auxiliary data can be considered to comprise the pixel data itself as it comprises a portion of the bits that comprise the pixel data (e.g. the alpha channel). Step 1204 receives the pixel data including any associated auxiliary data. This step can be implemented, for example, by a suitably configured decryptor. Step 1206 determines whether the pixel data needs to be decrypted. This step can be implemented by examining the auxiliary data. If the auxiliary data contains values that are associated with the decryption functionality, then decryption is necessary. If decryption is necessary, then step 1208 uses the auxiliary data to access a decryption key for the pixel data. This step can be implemented by maintaining a table, such as table 1100, and using the table to access the appropriate decryption key. Step 1210 then decrypts the pixel data using the decryption key. If, on the other hand, step 1206 determines that decryption is not necessary, then step 1212 does not decrypt the data. The step can be implemented by assigning a particular value (e.g. 0) to the auxiliary data and using that value to indicate that decryption is not necessary. The data can then be passed along to the display converter for further processing.
One advantage of selective per pixel encryption is that applications can specify non-rectangular encryption regions. Each pixel within a rectangular region which is not encrypted, can be specified by the null encryption function (index 0).
Secondary Table
In addition to the above-described table, a so-called secondary table can be provided to contain additional information that is useful when processing pixel data. As an example, consider
Data Integrity
Additionally or alternately, table 1300 can be used to verify the integrity of the pixel data. For example, a hash can be computed of the unencrypted pixel data and stored in the "Expected Hash" column of table 1300. Then, when the pixel data is decrypted by, for example the decryptor, another hash can be computed of the decrypted pixel data and placed in the "Current Hash" column. By comparing the expected hash with the current hash, a secure application or the decryptor can ascertain whether any of the pixel data has been manipulated or changed. If, for example, a rogue application successfully manipulates the unencrypted pixel data, then the hash comparison will indicate that this has occurred. On the other hand, if a rogue application manipulates the encrypted pixel data, the data will decrypt differently. Then, when a current hash is computed for the decrypted data, the current hash will most assuredly not favorably compare with the expected hash. The decryption hardware can notify the application (or an agent on behalf of the application) of the data compromise. The notification could occur over a secure channel to the encrypting entity. The application could also poll the video card to determine whether the rendered video is that expected.
Other techniques can be utilized to ensure the integrity of the data in the secure regions. For example, an attacker may for some reason have per pixel addressability and thus be able to manipulate the pixel data (including the auxiliary data). To address this situation, a process can be implemented which, for every secure region, forces the auxiliary data to assume a value that will cause the data to be decrypted. Accordingly, this will minimize the effect of any rogue applications that attack the auxiliary data by, for example, changing the data to a value that will cause it to not be decrypted.
Some of the advantages of per pixel auxiliary functionality (including per pixel security include, without limitation, that the associated tables (e.g. the key table) are relatively small and cacheable. Further, no additional video bandwidth can be required when the auxiliary data comprises part of the bits that are already allocated for the pixel data (e.g. the alpha channel). In addition, alpha values can still be used in the event that the alpha channel is not used to support auxiliary functionality. Further, per pixel per frame key control can allow for complex key transitions. That is, keys can be cycled per frame, which can reduce issues when switching keys while playing the video. The above techniques can also be used with non-RGB data, with direct memory copies to the desktop, and with video overlays.
Lastly, when a region is moved, the auxiliary encryption index moves with the video data, ensuring that the encryption information is perfectly synchronized and does not require any additional hardware changes.
The various methods and systems described above supply a secure channel for software executing on a host computer, as well as address and provide solutions for an attack model in which rogue software executing on the host computer attempts to inappropriately obtain or otherwise manipulate data. Through the inventive techniques video data that is to be processed and rendered on a user's display can be kept confidential and, in many instances, the integrity of the data can be protected.
Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
Thanks for redeeming.{{else}}
Success! Thanks for repurchasing.{{/if}} {{else}} {{#if Expired}}
Increase my visibility!{{else}} {{#if IsMultiPack}}
{{#if HasMultiPack}} You have {{MultiPackCount}} top spot(s) left. Now loading you into the search listings... {{else}} You have used all top spots. Now loading you into the search listings... {{/if}}{{else}}
We are loading you into the search listing pages...{{/if}} {{/if}} {{/if}} {{/if}}
{{Current}} just saw you!{{/if}} {{#if LastTopSpotPurchaseIsMulti }} {{#if HasAnyTopSpot}}
{{#if HasFreeTopSpot }} {{ UnclaimedTopSpotFree }} Free {{/if}} {{#if HasPaidTopSpot }} {{#if HasFreeTopSpot }} & {{/if}} {{ MultiPackCount }} {{/if}} Top Spot{{#if Plural}}s{{/if}} Left{{else}}
0 Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{else}} {{#if HasFreeTopSpot }}
{{ UnclaimedTopSpotFree }} Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{/if}} {{else}} {{#if HasResults}}
{{Current}} see you now!{{else}} {{/if}} {{/if}}
You can now invite anyone to meet at your favorite Starbucks.
Limited-time feature
30 year old man | Sherman Oaks, CA, USA | Seeking women 25-32 within 25 miles of Burbank, CA
I like Twizzlers better than Red Vines. I'm willing to politely debate this with you.
I've lived in Los Angeles for 7 years. I've dated on and off but I'd like to look for something more serious. I have some very strong friendships, I have a great job I enjoy, a nice apartment to live in. I'm just missing this one part of my life. I enjoy the company of kind women who aren't afraid to have an opinion. I'm hoping to find someone who similarly is content with their lives and are looking for this next element. But enough with that, right? Here are some better things to know: My grandmother is a Democrat. My mom is a Democrat. My dad is a Canadian, which is another word for Democrat. I'm a Democrat. I have a fear of bees. I heard a thing on Radiolab about how men are more respected if they part their hair on the left side of their head (as opposed to the right). I tried it and instantly started having people tell me I have good hair, which is kind of amazing. My grandfather was born in Russia. My dad was born in Canada. I was born in the United States. I once went to Warped Tour because of a girl. There's so many bands I love that I'll never see live, but I have seen Fallout Boy and that's a bummer. I tried sushi for the first time at 27 years of age (and loved it). People who curse all the time wear me out. I'm a big fan of jackets. Sometimes I drink out of a mug that reads "You Go Girl". I bought it at a TJ Maxx. I thought it was funny. In 9th grade, our social studies teacher asked us where we would go if we could choose any place on Earth. I was the only person in the class to pick New Jersey. I wasn't being sarcastic. I really like that state. I have to slow down and think it out, otherwise when I try to say "Vietnamese", I get it wrong. I don't think men should use emoticons but that's where my idea of gender defined roles ends. I care about the Brooklyn Nets, way way way too much.
Coffee and conversation , Dining out , Movies/Videos , Museums and art , Playing sports , Travel/Sightseeing , Video games , Watching sports
Baseball, Basketball, Walking / Hiking, Weights / Machines, Yoga
I exercise 3-4 times per week.
I like Birds, Dogs, Fish
Unfortunately, I'm allergic to cats.
I've always been a big fan of Los Feliz and Silverlake, though moving there hasn't ever really been an option for me.
Ithaca College, Ithaca, NY
I think most of my favorite music comes from the 60's. I like offbeat comedies (i.e. Wes Anderson) and television shows with strong characters (hey there Mad Men) and I love trying new kinds of food.
I really enjoy sports. I've recently gotten into shooting hoops. I also like doing the typical things like going out to eat, seeing movies, etc. But I'm also down for some exploring and seeing new and different things.
I'm reading From the Ruins of Empire. It's a book about European colonialism and invasion from the Asian perspective. It's interesting and a little disheartening, actually.
Z{{Cta}} {{#if HasMoreInfo}} ?{{CtaSecondary}} {{/if}}
|What he is looking for
|5'10" (177cms)
|5'0" (152cms) to 5'9" (175cms)
|Body type:
|About average
|Slender, About average, Curvy, Athletic and toned, A few extra pounds
|Black, Blue, Brown, Grey, Green, Hazel
|Dark blonde
|Auburn / Red, Black, Light brown, Dark brown, Blonde, Salt and pepper, Silver, Dark blonde, Grey, Platinum
|No Way
|No Way
|Social Drinker
|Never, Social Drinker, Moderately
|Artistic / Creative / Performance
|No preference
I know about all the weird things that happen in the world because of my job and I like that a lot.
|I'll tell you later
|No preference
|Never Married
|Never Married, Currently Separated
|Have kids:
|Wants kids:
|No preference
|White / Caucasian
|No preference
|No preference
More in name than practice, though. I was kosher growing up until one day when my mom decided she wanted shrimp and that was that.
|Bachelors degree
|No preference

subset: commoncrawl


text:
Smoked Chicken Quesadilla
21 Sep 2010
|Dried black beans
|2 Cup (32 tbs)
|Clarified butter
|1 Tablespoon
|Smoked chicken breast
|1 Pound, cut into strips
|Minced garlic
|1⁄2 Teaspoon
|1 Teaspoon
|Corn kernels
|1 Cup (16 tbs)
|Julienned onion
|1⁄2 Cup (8 tbs)
|Red onion
|1⁄2 Cup (8 tbs), julienned
|Green peppers
|1⁄2 Cup (8 tbs), julienned
|Red peppers
|1⁄2 Cup (8 tbs), julienned
|1⁄2 Cup (8 tbs), julienned
|1⁄4 Cup (4 tbs), julienned
|1 Cup (16 tbs)
|Chopped cilantro
|2 Tablespoon
|Tomato juice
|3 Tablespoon
|Shredded cheddar cheese
|1⁄2 Cup (8 tbs)
|Shredded monterey jack cheese
|1⁄2 Cup (8 tbs)
|Flour tortillas
|6 (8 Inch)
|1 Cup (16 tbs)
|Sour cream
|1⁄2 Cup (8 tbs)
|Cilantro sprig
Cover beans with cold water; let stand overnight.
Drain; place beans in medium saucepan.
Cover with 2 quarts water.
Bring to a boil; reduce heat to low.
Season with salt.
Simmer 45 minutes or until cooked through.
Let coo! in water.
Heat clarified butter in medium skillet; add beans.
Saute briefly.
Combine chicken with garlic; season with salt and pepper.
Heat butter in large skillet; add corn, onions, peppers, carrots and cucumber.
Cook until softened; add chicken.
Remove from heat.
Stir in beans, guacamole, cilantro and tomato juice.
Stir in cheese.
Divide filling onto tortillas.
Fold into quarters.
Heat grill pan; grill tortillas until lightly browned and heated through.
Rate It
0 Comments
Smoked Chicken Quesadilla Recipe


text:
Learn about Faith Ringgold's latest art techniques from PBS.
Faith Ringgold, has used her art to voice her opinions on racism and gender inequality. Faith Ringgold, born in 1930 in Harlem, attended the City College of New York where she received her BS and her MA in Fine Arts. In 1967, Ringgold created a series, The American People, which focused on racial conflict and discrimination. In 1972, she helped found the Women Students and Artists for Black Liberation in order to make sure that African American art exhibitions equally represented men and women. Today, she is best known for her painted story quilts, an art form that combines story telling and quilt making with genre painting. Ringgold has also written a children's book, TAR BEACH , which was a Caldecott Honor Book and won the Coretta Scott King Award for Illustration.
Related Artists:
Romare Bearden
Elizabeth Catlett
The Flag is Bleeding (1967)
Flag for the Moon: Die Nigger (1969)
Faith Ringgold on PBS & NPR
All Things Considered: Faith Ringgold Interview
A Century of Quilts: Faith Ringgold
EGG: The Arts Show: A Day at the Met with Faith Ringgold


text:
- Red Bull USA - Sports & Entertainment News | Teams & Athletes
- Music & Entertainment
- Music
- Videos
- Video premiere: 9th Wonder & Buckshot - 'Crazy'
Video Details
- Views
- Date
- About this Video
- 9th Wonder & Buckshot are out with a surreal new video for 'Crazy,' a track on their new album 'The Solution' (Jamla/Duck Down Music), which is available now on iTunes and at other major outlets. Check out the Buckshot Snapback & Free CD Bundle at the Duck Down online store. Directed by Calvan Fowler of Daydream Filmworks, the video features four versions of Buckshot, a creepy rabbit and a masked man. You figure it out.
Related Content
Meet Rapsody, 9th Wonder's latest protégé Dec 20, 2012
The North Carolina rapper is on the rapid rise. Coming off a recent appearance on BET's '106 & Park,' Rapsody speaks to her spoken-word beginnings, working with producer 9th Wonder, why female MC's...
Premiere! 9th Wonder & Buckshot - 'Shorty Left' feat. Rapsody Nov 7, 2012
The latest track from 9th Wonder & Buckshot, 'Shorty Left,' featuring Rapsody, reunites the dynamic duo with director Kenneth Price, who also helmed the video for the banger 'The Change Up.' 'Shorty...
Video Premiere: 9th Wonder & Buckshot - 'The Change Up' Oct 16, 2012
Check out this new music video from producer 9th Wonder and rapper Buckshot. Directed by Kenneth Price and filmed outside Raleigh, N.C., 'The Change Up' is a track off the tandem's third album, 'The...
Premiere! David Dallas - 'Ever Get the Feeling' Sep 19, 2012
Mt. Ruapehu in New Zealand provides the epic backdrop for hip-hop artist David Dallas's video 'Ever Get The Feeling,' the lead-off track from his 'Buffalo Man' EP. Inspired by the British funk group...
Ace of the Baseline: Sean Price Plays Tennis Sep 6, 2012
In honor of the U.S. Open tennis tournament this week, rapper Sean Price, whose album 'Mic Tyson' is expected soon, hit the courts for some doubles action with Duck Down Music CEO Dru Ha at the John...
The Genius Idiot: Ab-Soul Jul 26, 2012
Influenced by Canibus, Eminem and fellow Carson, California-rapper Ras Kass, Ab-Soul is a self-proclaimed "genius-idiot" who can drop bars about national politics to jokes about Nicki Minaj's round...


text:
Long Time - Blue
As Long As You Follow – Fleetwood Mac
Stay (Faraway, So Close!) - U2
Log off. That cookie sh*t makes me nervous. --Tony Soprano
So I said to him, "Look, buddy, your car was upside down when we got here. And as for your Grandma, she shouldn't have mouthed off like that!" --Homer Simpson
Stay With Me Baby - New Kids On The Block
Rock Me Baby - Dr. John
"I'm telling you - it's a madhouse out there. I feel like Charlton Heston waking up in the field and seeing the chimp on top of the pony." ~ Dennis Miller
Rock Your Body - Justin Timberlake


text:
Profile for Dekker Zevenhuizen B.V.
Specialist in custom-made work surfaces and kitchen accessories
Established in 1930, Dekker Zevenhuizen B.V. has been a leading producer of kitchen worktops and accessories in the Netherlands for many years. More than 30% of all kitchens sold each year are fitted with quality products provided by this family firm. As a market leader Dekker Zevenhuizen continues to inspire the industry with innovative products that provide the finishing touch for kitchens.
Product range
Dekker Zevenhuizen specialises in producing kitchen worktops and related products like tabletops, bathroom surfaces, and window sills from high-quality worktop materials. Its range includes Toplaminaat, granite, composite stone, glass, ceramic, stainless steel, solid wood, concrete, terrazzo and natural acrylic stone (Hi-macs) products. The worktops distinguish themselves with their visible quality, clean finish, and unique appeal. In addition to custom-made products, Dekker Zevenhuizen offers an extensive range of kitchen accessories produced for familiar top brands as well as its own strong Dékorado brand.
The products are supplied exclusively to businesses, including specialist kitchen shops, DIY stores, project contractors and the kitchen industry.
Contemporary work and production methods
Dekker Zevenhuizen B.V. is an internationally operating company with plants and warehouses that are amongst the most modern and efficient in the Europe. Continuous process innovation and the permanent training of the 200 skilled employees help to ensure that customers can rely on high-quality and awarded products – supplied as and when agreed.
Quality guarantees
In recognition of the high quality standards which Dekker Zevenhuizen B.V. has employed right from the start, the company is a member of the Stichting Platform Keukenbladen (Platform Kitchen Worktops Association). Moreover, Dekker Zevenhuizen is in full compliance with the ISO 9001 standards. Customers know therefore what to expect from the Dekker products.
Extensive service
Together with its customers, Zevenhuizen B.V. never stops looking for new methods to promote sales, to improve its customer service and to lower their mutual costs. The services which Dekker Zevenhuizen offers are extensive, therefore. Examples include its electronic order programme and its luxury display line.


text:
Nursing Pre-licensure
Thank you for your interest in Grand Canyon University's Bachelor of Science in Nursing Pre-licensure (BSN) program. The BSN program is an eight semester program. Students will complete the prerequisite coursework during their first four semesters and will then apply for acceptance to complete the final four semester upper division nursing core.
Students may complete the nursing core curriculum as either traditional or fast track students. Traditional track students will only attend core classes during the fall and spring semesters. Fast track students will be in attendance year-round as summer is treated as a semester. Both programs follow the same curriculum and align to GCU's academic calendar.
Students are accepted into the core nursing program every fall, spring and summer. Upon graduation from the program, students will be eligible to sit for the NCLEX exam.
Upcoming Information Sessions
Want to learn more about the BSN program? The College of Nursing and Health Care Professions will be hosting several webinar info sessions throughout the year. To RSVP for one of these events, click here.
Yes. GCU's baccalaureate degree in nursing and master's degree in nursing are accredited by the Commission on Collegiate Nursing Education .


text:
Topping 500K Users, InVision Prototyping Platform Integrates With Sketch
InVision, the platform for building beautiful, interactive prototypes, has just announced integration with Sketch, a design application that is growing in traction as an alternative to Photoshop. InVision has been around since 2011 trying to change the way that companies think about the prototyping process. Usually, to see a concept at a realistic level, designers and engineers had to work… Read More
InVision Design Tool Raises $21 Million Series B
InVision, the design-focused prototyping tool, has today closed a $21 million Series B round, with participation from existing investors including Tiger Global Management (who led the round), as well as FirstMark Capital. That brings InVision's total funding to $34.1 million, according to CrunchBase. InVision is a service built for designers, that lets these creatives not only draw out… Read More
InVision Raises $11.6M From FirstMark Capital And Tiger Global
InVision, a prototyping tool for thousands of web developers and designers, has recently closed an $11.6 million Series A round from FirstMark Capital and Tiger Global. The company launched in 2011 out of New York with a mission to make it easy for designers to share, interact with, and get feedback on their prototypes. Users can easily upload Photoshop files to the web and add interactions… Read More


text:
Now Playing
Connect with Us
KRWG.ORG-The Region's Home Page
Director of Content
News Director
Multimedia Reporter
Fronteras Reporter, KRWG-FM and Anchor, KRWG-TV's Fronteras-A Changing America
Operations Manager, KRWG-FM And Anchor, KRWG-TV's Fronteras-A Changing America
Host, KRWG-FM's Fiesta! and PUENTES
KRWG Jazz Host
Host, Friday Night Blues; Saturday Night Jazz
Host, KRWG-FM's Intermezzo
Host, KRWG-FM's Intermezzo
3:21 am
Wed August 14, 2013
Does More Vacation Mean Happier Workers?
By editor
Originally published on Wed August 14, 2013 7:16 am
August means many parts of the world are virtually shut down with many workers off on summer holiday. A recent blog post in The Atlantic took on the question: Does more vacation mean happier workers? Some data suggests not so much.


text:
Nested and Inner classes
Nested and Inner classes What is the significance of Inner Classes and Static Inner Classes?
or Why are nested classes used?
Hi Friend... a nested class.
Inner class is a non static class declared inside another class.Non
Inner Nested Classes
Inner Nested Classes
Non-static nested classes are slightly different from static... of
inner nested class with the help of an example. There is an inner class
java inner class - Java Beginners
java inner class What is the difference between the nested class and inner class? Explain with suitable example. Hi Friend... declared inside another class.
2)Nested classes are associated
Inner class in java
Inner class in java
In this example we will describe inner classes in java. Inner class declared
inside a class. The inner class also call Nested classes. Inner classes provides
an graceful and powerful feature to the Java. Inner
Inner classes
Inner classes Hi I am bharat . I am student learning java course . I have one question about inner classes . question is how to access the instance method of
Non-static classes which is defined in the outer
Member Classes, Inner Nested Classes in java
Member Classes
classes are defined within the body of a class. We can use member classes
anywhere within the body of the containing class. We declare member classes
inner class - Java Interview Questions
Java Inner Class How many classes we can create in an inner class... data.
Non-static nested classes are called inner classes. It has access... class structure shows the way of using the nested class.
Java Inner Class
Inner Classes In Java
Inner Classes In Java
are 4 kind of classes that can be defined in a Java program, roughly can be
termed as the inner classes.
Inner classes provides an elegant
Java inner class and static nested class
Java inner class and static nested class Java inner class and static nested class
Use of Local Inner class
class. Such a
class is defined as Nested Class or Local Inner class. The Nested Class are
classified into -
1)Static Nested Inner class are declared static called static Nested classes.
2)Non-Static Nested classes are those classes
How are Anonymous (inner) classes used in Java?
How are Anonymous (inner) classes used in Java? How are Anonymous (inner) classes used in Java
Inner class in java
Non-static nested classes are slightly different from static nested classes, a non-static nested class is actually associated to an object rather than...
Inner class in Java
What is inner class in Java? - Java Beginners
What is inner class in Java? Hi,
Explain me inner classes in Java.
What is the use of inner classes? Give examples of inner classes in Java...://www.roseindia.net/java/master-java/inner.shtml
Non-static inner class
Nested classes
are known as nested classes. Inner
classes can be either named... of nested classes, which
are as under:
i) Static classes
ii) Inner...
Nested classes
Anonymous Inner Classes - Anonymous Inner Classes tutorial
.style1 {
text-align: center;
Anonymous Inner Classes
Except the inner class, there are two types of supplementary inner
classes... inner classes. The class declared inside the body of a method
without naming
Nested classes: Examples and tutorials
Nested classes: Examples and tutorials
Nested classes
Here is another advantage of the Java... within another class, such class is called a nested class. Inner
classes can
Inner Class - Java Beginners
Inner Class Hi,
I have the following question.
class Outer{
class Inner{
public static void main(String[] args)
Outer.Inner inner = new Outer().new Inner();
If I compile the above code
Inner class
Inner class when we use inner classed in java
Static Nested Classes
Static Nested Classes
 .... Memory to the objects of any static nested classes
Static nested classes can
Java inner class
Java inner class What are inner class and anonymous class
Java nested class example
Java nested class example Give me any example of Nested Class.
Nested Class: Class defined within another class is called nested class... nested class is declared static. Non-static nested class is also called inner
Inner class - Java Interview Questions
Inner class whether inner class can implement any interface(Runnable... Inner inner;
private class Inner extends Thread {
Inner(String name...() + ": " + countDown;
public InnerClass1(String name) {
inner = new Inner
Java Nested Class
of Java that is included in jdk1.1.
The reasons of why we use nested classes....
Non-static nested classes are called inner
It has access to all....
Nested classes are associated with the enclosing class
itself, whereas inner classes
Inner Classes
java classes
java classes What is the difference between a static and a non-static inner class
SQL INNER Joins
Understand with Example
The Tutorial illustrate an example from SQL INNER Joins. The Example
helps you to know the use of SQL INNER Joins. The create...
In this example, we make use of inner join. The
inner join return you
Dont Post Inner Adv and Adult Content Adv .
Dont Post Inner Adv and Adult Content Adv . Hi RoseIndia Team.
Am Java Developer. Am Refer this site regularly in Home and Office. My Problem is while am referring here some adult content site here . we unable to refer
SCJP Module-3 Question-7
option :
1. inner class should be declare as "static"
2. inner class must also declared it's constructor.
3. change the name of the inner class.
4. no need of correction.
Answer :
Explanation :
An inner
inner class
inner class what is mean by inner class
Inner class is a non-static class which is defined inside another class
java classes. - Java Beginners
java classes. I con not understand the behavior of anonymous inner classes?
Hi friend,
I am sending you a link. This link will help you.
Please for more information.
Nested class
classes are a feature of Java that is included in jdk1.1.
The reasons of why we use nested classes are:
It is a way of logically grouping classes that are only used...Nested class What is nested class? when a class
Inner class
Inner class //This code doesn't Works//
static Inner i;
i=new Inner();
class Inner
Nested Try-Catch Blocks
In Java we can have nested try
and catch blocks. It means... an example that uses the nested try-catch
In this given example we have implemented nested try-catch
PHP SQL Inner Join
PHP SQL Inner Join
This Example illustrates how to use the inner join clause in the sql
query. The inner join return rows when there is at least one match in both
This is the good example to understand inner join clause
Inner class
Inner class how can i call outer class A `s method to print Outer.
class A { void m() { System.out.println("outer"); } }
class A { void m() { System.out.println("inner"); } }
class A { void m
Spring Inner bean example, Inner Bean in spring framework
Inner Bean in spring framework
In the Spring framework an inner bean... this is that the container ignores these
values. Inner bean is used when a bean is used... the <property/> or <constructor-arg/> it is
known as inner bean
Struts nested tag Example
Struts nested tag Example
The tag library ?nested? is included in
Struts... context. The Nested tags and its supporting classes extends the base struts tags
Java AWT Package Example
Java AWT Package Example
 .... Many
running examples are provided that will help you master AWT package. Example... it. This is done by using java gui programming using Classes or APIs of java awt package
Nested try
, visit the following link:
Nested Try Example...Nested try Each time when i execute this code in eclipse i get...:
java Demo 2 3, it will give output 0 , the try block of method is called which
nested for loops
nested for loops Hello all,
I have created a program(gui....
This is my first time using java and my first time programming, but I am guessing that the problem lies with my nested for loop which calculates all information
Mysql Inner Join
illustrate an example from 'Mysql Inner Join'. To grasp this
example we create... Mysql Inner Join
Mysql Inner Join returns the set of only those records which
Nested Loop - Java Beginners
Nested Loop Hi,
Can anyone tell me example of Nested loop in Java?
Hi friend,public class NestedExample{ public static void main(String[] args){ /** Print Pattern I */ System.out.println("
about inner class
about inner class class Outer {
class Inner{
public void m1(){
System.out.println("Inner class Method");
public void m2(){
Inner i = new Inner();
public static void main(String ar[]){
Outer o = new Outer();
PHP SQL Inner Join
PHP SQL Inner Join
This Example illustrates how to use the inner join clause... in both
tables. This is the good example to understand inner join clause because
Master Java In A Week
Master Java In A Week
Master Java Programming Language in a week... for Java classes.
Header file generator... is the industry standard for documenting Java classes.
Change Background of Master Slide Using Java
Change Background of Master Slide Using Java
In this example we are going to create a slide then change background of the
master slide.
In this example we
Nested class in java
class. To derive a class in java the keyword extends is used.
For more details click on the following link.
Nested class and inheritance in java... through which we can derived classes from other classes. The derived class
The nested class - Java Beginners
The nested class Hi,
What is nested class in Java? What is the benefits of nested class? Write examples of nested class.
Hibernate Inner Join
In this section, you will learn how to do Inner Join in Hibernate
java - Java Beginners
java types of classes in java? Hi friend,
There are six classes of java
There are six different types of class.
1. top level classes: not nested, but possibly sharing a *.java file.
2. nested classes
how to update table using inner joins
how to update table using inner joins how to update table using inner joins
Master java in a week
Class Declaration:
Class is the building block in Java...;
The main method is the entry point in the Java program
and java program can't run... is always first thing that is executed in a java program.
Here is the main method
SCJP Module-3 Question-8
INNERCLASSS - Java Interview Questions
Inner class is defined within a Class. Example is:
public Class A{
private class b{
More at http://www.roseindia.net/help/java/i/inner-classes-in-java.shtml
Hi Friend,
The inner class can access
new operator for creating the object of inner class
new operator for creating the object of inner class Hi ,
The folliowing is my code :
class Outer
class Inner{
void show...[])
Outer objOuter = new Outer();
Outer.Inner objInner = objOuter.new Inner
Java Interview Questions - Page 6
Java Interview Questions - Page 6
 ... a growable array of objects What modifiers may be used with an
inner class that is a member of an outer class? A (non-local) inner class
may be declared
Classes and Objects
-oriented programming.
Nested Classes:
One more advantage of Java...
a class within another class, such classes are known as nested classes...
Classes and Objects
classes in c++
classes in c++ 1- design and implement a class datatype... by adding certain days to the current day.for example if the current day is monday... on this class.
Here is the Java code:
public class DayType{
Java classes
Java classes Which class is extended by all other classes
Disassembling Java Classes - Java Tutorials
Disassembling Java Classes
To Disassemble a class file in Java there is a tool... class of java. first compile them using
javac then call the javap Class Name.Consider the example given below
public class
The link to the outer class,java tutorial,java tutorials
Nested Classes: Inner & Outer Class
The classes which are defined within another classes are known as Nested
Classes. These are also known ... example will give you clear idea about inner or outer classes :
class Outer
java classes
java classes Which class is the super class for all classes in java.lang package
JDBC Nested Resultset
JDBC Nested Resultset
JDBC Nested Result Set is the simplest join algorithm. In this case for each
tuple in the outer join relation, the entire inner
Create a Popup Menus with Nested Menus in Java
Create a Popup Menus with Nested Menus in Java
 ... a nested popup
menu in Java Swing. When you click the right mouse button... like: folder, text document and shortcut. Following figure shows
the nested popup
Abstract Classes - Java Interview Questions
(Roseindia Team...Abstract Classes Why we cann't instantiate a Abstract Classes? Even if an Abstract Class does not have any abstract methods, but declaring the class
AgileJ StructureViews
Java browsing perspective than a drawing tool.
2 Dedicated to Java - exceptions, inner classes and Javadoc all influence the diagrams.
3 Focused on Class
Java classes
Java classes What is singleton pattern
java classes
java classes What is the ResourceBundle class
Java classes
Java classes What is the Properties class
Java classes
Java classes Why default constructor of base class will be called first in java
Using Nested loops
Using Nested loops How to use nested loops in java when I want to print the 10 multiples of numbers 2 to 15(in multiplication table)
public class MultiplicationTable{
public static void main(String[] args) {
Java classes
of the Rectangle.
Example of Java Classes:
class square{
int sqarea(int side){
int...Java classes are like a group under which all objects and methods... examples that will help beginners in Java understand the
definition of Java classes
What is the difference between a static and a non-static inner class?
What is the difference between a static and a non-static inner class? Hi,
What is the difference between a static and a non-static inner class?
java basics
java basics What is inner class? Inner classes... class. There are two varieties of inner classes, static inner classes and non... inner classes are associated with the "object" of the enclosing class
SCJP Module-3 Question-2
OuterClass {
8 public int x = 9;
9 public OuterClass() {
10 InnerClass inner = new
Resize outer div when inner div's height increases
Resize outer div when inner div's height increases How can I increase the outer div height automatically when inner div's height increases in javascript
Distinguishes JavaBeans from Java Classes
Distinguishes JavaBeans from Java Classes What is the difference between a Java Bean and an instance of a normal Java class?Explain with an example, pls?
Hi Friend,
1)The java beans are serializable
classes and data abstraction - Java Beginners
classes and data abstraction Create a java program for a class named... java code according to your requirement. Please implement following code...();
System.out.println("U S doller currency Amount Example!");
What's wrong with my form? - Java Beginners
What's wrong with my form? Dear expert,
I'm having trouble with my enquiry form.
Hope you can tell me where my mistake lies.
Here's my jsp code:
var objForm = new Object
Video Tutorial - Classes and Objects in Java
Video Tutorial on Classes and Objects in Java teaches you with example code
In this video tutorial you will learn about Classes and Objects in Java... will learn what are Classes and Objects in Java program.
You will also learn how
Java Interview Questions - Page 1
Java Interview Questions - Page 1
Java Interview Questions by Inigo
Answer: Sure. A private field or method or inner class belongs to its
how to use nested classes in swing concepts
how to use nested classes in swing concepts i am working on swing concepts . i want to know how to use the nested classes in swings
Classes in Java
Classes in Java
 ... java have mechanisms for
handling exceptions. This is known as catching exception in Java. The exceptions that occur in the program can be caught using try
Java Get Example
Java Get Example
Java Get Examples..
Get host name in Java: This example... is method and how to use the get
method in Java, this example is going
Interfaces and Abstract Classes - Development process
Interface and Abstract Classes? Hi Friend,
Java does...://www.roseindia.net/java/master-java/abstract-class.shtml
Java list of uninstantiated classes
Java list of uninstantiated classes Java list of uninstantiated classes
Helper classes in java
Helper classes in java helper classes
Internet and Web related questions for Web Master.
Internet and Web related questions for Web Master.
Explain the difference between the Internet and Web.
What are Web browsers? Explain the two main... is Java? What are the applications of Java that you can use for Web designing
SCJP Module-3 Question-3
public void innerMethod() {
System.out.println("inner x is " + x...; outer x is 2
inner x is 1
(2...; inner x is 2
inner x is 2
GWT supported java classes
GWT supported java classes What are the methods and classes in Java which are supported and unsupported by GWT
Collection classes in java
is the reason using java collection classes saved/stored the data/content.I don't understand, what is the idea using java collection classes in project.
Or the data is stored in both database and java collection classes
Pattern,Matcher,Formatter and Scanner classes
, and in addition some Java classes like
Date and BigInteger also
have...Pattern,Matcher,Formatter and Scanner classes
This section Describes :
to format or parse strings or streams.
2. Uses of the Pattern and Matcher classes
JAVA INTERFACE - Java Interview Questions
JAVA INTERFACE Can Any Interface will have inner classes or not...
if YES explain me with a example..
if NO explain me why?
And next one Whether an interface be final???? Hi friend,
Yes, as for example
wrapper classes
of the primitive wrapper classes in Java are immutable i.e. once assigned a value...wrapper classes Explain wrapper classes and their use?
Java Wrapper Class
Wrapper class is a wrapper around a primitive data type
Exception Classes
Exception Classes
The hierarchy of exception classes commence from Throwable
class which is the base class for an entire family of exception classes, declared
What is Abstract classes in Java?
What is Abstract classes in Java? What is Abstrack class in Java...,
In Java programming language we are used the Java Abstract.... That's why the Abstract class in Java programming language is used to provide
Java application that uses the classes and
Java application that uses the classes and i have this class diagram with three classes: Curriculum, Course, and Lecture. Your class diagram...)
I wish Write a Java application that uses the classes and methods above
Classes and Objects
Nested Classes:
One more advantage of Java, as an object-oriented... class, such classes are known as nested classes.
Classes and Objects
If you enjoyed this post then why not add us on Google+? Add us to your Circles


text:
Thanks for redeeming.{{else}}
Success! Thanks for repurchasing.{{/if}} {{else}} {{#if Expired}}
Increase my visibility!{{else}} {{#if IsMultiPack}}
{{#if HasMultiPack}} You have {{MultiPackCount}} top spot(s) left. Now loading you into the search listings... {{else}} You have used all top spots. Now loading you into the search listings... {{/if}}{{else}}
We are loading you into the search listing pages...{{/if}} {{/if}} {{/if}} {{/if}}
{{Current}} just saw you!{{/if}} {{#if LastTopSpotPurchaseIsMulti }} {{#if HasAnyTopSpot}}
{{#if HasFreeTopSpot }} {{ UnclaimedTopSpotFree }} Free {{/if}} {{#if HasPaidTopSpot }} {{#if HasFreeTopSpot }} & {{/if}} {{ MultiPackCount }} {{/if}} Top Spot{{#if Plural}}s{{/if}} Left{{else}}
0 Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{else}} {{#if HasFreeTopSpot }}
{{ UnclaimedTopSpotFree }} Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{/if}} {{else}} {{#if HasResults}}
{{Current}} see you now!{{else}} {{/if}} {{/if}}
You can now invite anyone to meet at your favorite Starbucks.
Limited-time feature
35 year old man | Seattle, WA, USA | Seeking women 25-33 within 25 miles
I'm a Seattle transplant from Baltimore - new...
I'm a Seattle transplant from Baltimore - new job, new coast, new adventure. Not sure how people write these descriptions; there's probably do's and don'ts. This being my first online dating experience, I'm going write as if this was a first date - I want to impress but at the same time, be honest about the things that make me me (an irreverent sense of humor is just the tip of the iceberg). Travel has and always will be a big part of my life. I've backpacked through Bali, had adventures in Prague, Nice (Cannes Film Festival), and Barcelona. Hong Kong was beyond amazing. Next trip? Central and South America. While I don't cook often (cooking for one sucks), I know my way around the kitchen. I cook mostly Asian cuisines (Thai, Chinese, Indian), but can also make a mean grilled cheese with tomato soup. I've hosted [cooked] Thanksgiving for 14 the last three years. I prefer dark hole in the wall bars to dance clubs, but understand a night out dancing every now and then can be fun. Other then writing code for a living, I've also been a bartender on the side for 12 years. I make a damn good martini. Manhattans and Long Island Iced Teas are also in my repertoire. Living in this city, it's easy for me to indulge in outdoor activities (always looking for a new tennis partner); mostly hiking (urban and trail), soccer, and generally just exploring this cool city.
Coffee and conversation , Cooking , Dining out , Music and concerts , Exploring new areas , Playing sports , Travel/Sightseeing , Watching sports , Wine tasting
Auto racing / Motorcross, Billiards / Pool, Golf, Martial arts, Skiing, Soccer, Tennis / Racquet sports, Walking / Hiking, Yoga
I exercise 3-4 times per week.
I like Cats, Dogs, Horses
Padangbai, Bali Prague Galway Bay, Ireland Seattle - Zig Zag, The Pine Box, Crescent Lounge, Diller Room
North Carolina State University, Raleigh, NC
Nothing beats a night out hanging with friends - new or old. Although a bottle of wine and a movie is a great way to relax as well. A good book and a cup of coffee (or glass of wine) on the deck is also a great way to spend a day.
Looking to get into some more outdoor activities - kayaking, hiking, etc. A nice bourbon bar doesn't hurt either.
I read the Great Gatsby once a year - other than that I read everything from Hemingway to Tolkien to Vonnegut. Sorry, no Twilight. Everyone should read "The Shadow of the Wind'.
Z{{Cta}} {{#if HasMoreInfo}} ?{{CtaSecondary}} {{/if}}
|What he is looking for
|6'1" (185cms)
|4'11" (149cms) to 6'4" (193cms)
|Body type:
|About average
|Slender, About average, Athletic and toned
|No preference
|Light brown
|No preference
|No Way
|No Way
|Social Drinker
|No preference
|Technical / Science / Computers / Engineering
|No preference
Software Engineer at Amazon
|$100,001 to $150,000
|No preference
|Never Married
|No preference
|Have kids:
|No preference
|Wants kids:
|Not sure
|No preference
|White / Caucasian
|No preference
|No preference
|No preference
|Bachelors degree
|No preference
Graduate of North Carolina State University - Computer Science


text:
Not the vector you are looking for? Click here to try a search
- Type: Vector Illustration
- File: .EPS
- File size: 397.86 Kb
- Download: 260 times
Pot Leaf vector logo
>> Download vector Pot Leaf for free in EPS format
Free to download Pot Leaf vector logo in .EPS vector format. Browse to see more Pot Leaf related vector logos. Download Pot Leaf vector logo in .EPS format, and open with Adobe Illustrator or Adobe PhotoShop or CorelDRAW.
The current status of the logo is active, which means the logo is currently in use.
Another vector logos:
- Korean Air logo vector download
- Shoei vector logo
- Ursinho Poof vector
- Flixster logo
- Ford logo vector download
- 500px logo
Pot Leaf vector download
You are about to download the logo Pot Leaf vector as a vector.
By downloading this vector artwork you agree to the following:
The Pot Leaf logo design and the artwork you are about to download is the intellectual property of the copyright and/or trademark holder and is offered to you as a convenience for lawful use with proper permission from the copyright and/or trademark holder only. You hereby agree that you agree to the Terms of Use and that the artwork you download will be used for non-commercial use without infringing on the rights of the copyright and/or trademark holder and in compliance with the DMCA act of 1998.
Before you use or reproduce this artwork in any manner, you agree to obtain the express permission of the copyright and/or trademark holder. Failure to obtain such permission is a violation of international copyright and trademark laws subject to specific financial and criminal penalties.
Not the vector you are looking for? Click here to try a search


text:
Albany - Page 5
How to Prepare for Hurricane Sandy
Albany Police Searching For Missing 15 Year Old Christopher Hunt [UPDATE]
Good News From Giants Camp
Game On with Bruce Jacobs Promotional Video
Our friends at West Field Media Services did a bang up job putting together a promotional video for the station and our hosts - mainly Bruce. Even if this wasn't about us we'd still say it looks awesome. Check out Brian Noe, Brian Cady, and Pierce in action 'behind the scenes' in our Schenectady studios.
Two Olympians From the Albany Area to Keep An Eye On
Get Ready For The 2012 Masters With Our Five Favorite Golf Courses In The Albany Area
Venus Williams And Others To Play In Albany This Summer
Snowstorm Photos from Around the Albany NY + Capital Region Area
Everyone has a ton of snow storm photos in the Albany NY area. We always gets more than our fair share of snow storms (most winters), and we can never see enough great photos of snow. If you ski or board, it's heaven for you - or if you have children in your life, it's a great joy to watch them playing in the snow. Check out our photo gallery of snow photos!


text:
Rain washes out Miracle's game against St. Lucie, rehab appearance by Mets CF Beltran
FORT MYERS - Fans hoping to catch a glimpse of former major league All-Star Carlos Beltran left Hammond Stadium disappointed on Thursday night.
Beltran, who is on a rehab assignment with the St. Lucie Mets, was scheduled to start in Thursday night's game against the Fort Myers Miracle, but the game ended up being postponed due to rain. Beltran never made his way to the stadium, disappointing a group of about 10 autograph seekers that waited outside of the players' entrance to the stadium.
The teams are scheduled to play a doubleheader Friday, beginning at 5 p.m. Beltran is expected to play in one of the two seven-inning games.
Subscribe to the Naples Daily News
Need Help? Call us at 1-888-878-6842.
Monday-Friday: 6am-6pm / Saturday: 7am-3pm / Sunday: 7am-2pm


text:
Fellsmere wetlands restoration on track for 2015 completion
FELLSMERE — A multimillion-dollar project to turn 10,000 acres of former farm and ranch land back into wetlands in northern Indian River County is almost one year ahead of schedule.
Subscribe to TCPalm
Ready to subscribe to TCPalm? Choose between a Premium or Digital subscription below.
Need Help? Call us at 1-877-710-6180.
Monday-Friday: 6am-3pm / Saturday: 6:30am-10:30am / Sunday: 7am-11am


text: Business Uber revs up its German expansion Image Credit: Uber February 13, 2014 7:00 PM Nikolaus Roettger, VentureVillage If you're not reaching, engaging, and monetizing customers on mobile, you're likely losing them to someone else. Register now for the 8th annual MobileBeat, July 13-14, where the best and brightest will be exploring the latest strategies and tactics in the mobile space. "We believe in the German market", Benedetta Arese Lucini, Uber's Europe general manager, said. In an interview with VentureVillage's sister magazine, Gründerszene, she revealed that the limousine service will soon be launching in multiple German cities. Dusseldorf, Frankfurt, and Hamburg are up next. At the moment, Uber is only available in Munich and Berlin. Uber most recently made headlines in Germany when it parted with its three-person Berlin management team last November. In the interim, launch manager Patrick Studener and Benedetta Arese Lucini took over locally. Now, Lucini claims Uber's German team is almost complete again. The company is still, however, advertising for a general manager and a community manager in Berlin, while three jobs remain open in Dusseldorf, Frankfurt, and Hamburg. Uber sees itself as something in between a limousine and taxi service. While its cars can be ordered on-demand in the same way as taxis, Uber distinguishes itself with its luxury cars and chauffeurs. In Germany, Uber faces competition from chauffeur service Blacklane, which received a €10m investment from Daimler in December 2013. In addition, car rental company Sixt recently started MyDriver, its own private driver service. When exactly Uber will be launching in these German cities is still unclear, Lucini told Gründerszene. It depends on how quickly the vacancies are filled: "Uber sees itself as a local brand. It's important to have people on the ground to organize cooperations with other companies", Lucini said. As a side note, she also announced a Valentine's Day cooperation with Berlin-based dating app Mbrace. Star-crossed lovers can use Uber to send specially cast "huggers" to their significant others, though why they can't just hug their lovers themselves is a mystery to us. For related posts, check out Uber splits from Berlin management team Uber valued at $3.5b thanks to $350m funding round Uber riding to new talks with investors This story originally appeared on VentureVillage. More information: Uber Uber Technologies Inc is known as Everyone's Private Driver. Uber operates an on-demand car service used all over the world. With the touch of a button from your phone, you can experience your own private driver. Sign-up quickly, get p... read more » Powered by VBProfiles