text:
Steganography 101 using Java
Java Programming, Notes # 732
- Preface
- Background Information
- Preview
- Discussion and Sample Code
- Run the Program
- Summary
- What's Next
- Complete Program Listings
What in the world is steganography?
According to Wikipedia,
Steganography is the art and science of writing hidden messages in such a way that no one apart from the intended recipient knows of the existence of the message; this is in contrast to cryptography, where the existence of the message is clear, but the meaning is obscured. The name comes from Johannes Trithemius's Steganographia: a treatise on cryptography and steganography disguised as a book on black magic, and is Greek for "hidden writing."
Steganography in spam
Because my email address is plastered all over the Internet, I receive an average of about 10,000 spam messages each month. I have recently been receiving spam messages where the names and the prices of certain drugs are made to appear on the screen using steganographic techniques in conjunction with the rendering of HTML text. In particular, the images of the letters and numbers that appear on the screen are constructed by carefully arranging the positions of very large numbers of very small characters.
(If you view the raw HTML source text, you see that the characters spell out random words and sentences and the name of the drugs don't appear anywhere in the text.)
In this case, the intended recipient of the secret content (names and prices of drugs) is the recipient of the email message. The intent of the spammer is to disguise that content in such a way that it cannot be detected and flagged by spam filtering programs. In other words, the intent of the spammer is to prevent the spam filtering software know of the existence of the spam message.
A cover message
Once again, according to Wikipedia,
In this case, the cover message is an email message containing a seemingly innocuous page of raw HTML text. The secret steganographic message is embedded in the HTML text by adjusting the placement and the size of characters that make up the innocuous raw HTML text. It is the rendering of the HTML text by the browser that causes the secret content to appear on the screen when the email message is opened by the intended recipient.
Generally a steganographic message will appear to be something else, like a shopping list, an article, a picture, or some other "cover" message.
Successful so far
Up until now, this has proven to be a successful steganographic technique for use in distributing spam and getting around my spam filtering software. At this point in time, my spam filtering software is incapable of detecting the hidden content and categorizing the message as spam on the basis of that content. This success will probably be short lived, however. A new rule could be incorporated into the spam filter to the effect that an email message containing HTML text that is rendered in a font that is too small to be readable by a human observer is probably spam.
Steganography versus cryptography
As mentioned above, cryptography is often used in situations where the existence of the message is clear, but the meaning of the message is obscured. In particular, the sender transforms the message into a form that (hopefully) only the intended recipient of the message can decrypt and read.
Steganography is often used in situations where the actual existence of the message needs to be obscured.
Steganography and cryptography can be combined
The message can also be encrypted before it is hidden inside a cover message. This provides a double layer of protection. To begin with, encryption may make the existence of the message even more difficult to detect, due to the fact that some encryption techniques cause the patterns of the characters in the encrypted version to be more random than in the original version. In addition, even if the existence of the encrypted message is detected, it is unlikely that an evesdropper will be able to read the message.
A practical comparison of steganography and cryptography
Let's take a look at a couple of examples that illustrate the use of steganography and cryptography both separately and together.
Purchasing some books online
As our first example, we will assume that you purchase some Java programming books from an online vendor. When time comes to pay for the books by supplying your credit card number, you check to make certain that your browser has switched into the secure mode. Even though it is no secret that you are sending your credit card number to pay for the books, it is your hope that the transmission is encrypted by the browser in such a way that only the online vendor can decrypt the message and read your credit card number. In this case, there is no need for steganography because there is no need to hide the existence of the message.
A romantic tryst
As our second example, we will assume that you are sending a message to Alice (your best friend's wife) to arrange a romantic tryst. In this case, you would probably prefer that neither your wife nor your best friend know of the existence of the message.
(If they learn of the secret message, they may not continue to be your wife and your best friend for very much longer.)
Consequently it would probably be wise for you to use some form of steganography to hide the existence of the secret message. It also wouldn't hurt to encrypt the message using Alice's public key. That way, even if the existence of the message is detected, it wouldn't be possible for your wife or your best friend to read it.
(That may increase your chances of survival even if the existence of the message is detected.)
Embed the message in an image
There are several different forms of steganography that you could use to hide the existence of the message. One way would be to send your latest set of digital vacation photos to Alice and her husband, and to embed the message in one of the photos.
Having planned for and having written the necessary software for just such a situation in advance, Alice could extract and read your message. As far as Alice's husband is concerned, the only thing being transmitted would probably be a set of (probably boring) vacation photos. The existence of a secret message would certainly not be obvious in viewing the photos.
Alice could embed her answer in a digital photo of her championship Weimaraner (showing the blue ribbon that her dog won at the most recent show). She could send that picture to you and your wife. You could extract and read the message. Your wife could say courteous things about the dog.
Detection is unlikely
As you will see later in this lesson, it is extremely unlikely that either your wife or Alice's husband would be able to detect the existence of the secret messages simply from viewing the photos. They would probably need some other clues, (such as otherwise suspicious behavior on the part of you or Alice), in order to even suspect that a secret message is embedded in the photo.
You and Alice could continue to secretly communicate in this manner for as long as you could come up with reasons to exchanges digital photos.
(That approach might get stale after a while and you would need to come up with some other form of steganography to continue the dialog.)
Embedding a message in an image
In this lesson, I will show you how to embed a secret message in an image and how to extract the message from the image in order to convert it back into a readable form.
A merger
This lesson represents a merger between my series of lessons dealing with the manipulation of pixels in images and my series dealing with cryptography and security. You may find it useful to review the lessons in the following list while studying this lesson:
- Processing Image Pixels using Java, Getting Started
- Processing Image Pixels using Java, Creating a Spotlight
- Processing Image Pixels Using Java, Controlling Contrast and Brightness
- Processing Image Pixels, Color Intensity, Color Filtering, and Color Inversion
- Processing Image Pixels, Performing Convolution on Images
- Public Key Cryptography 101 Using Java
- Digital Signatures 101 using Java
- Message Digests 101 using Java
- Digital Signatures using Message Digests with Java
- Signing Messages using Redundancy Functions in Java
This lesson builds upon those earlier lessons. In particular, you will need to understand the code in the lesson entitled Processing Image Pixels using Java, Getting Started before the code in this lesson will make much sense.
You will need a driver program
The lesson entitled Processing Image Pixels Using Java, Controlling Contrast and Brightness provided and explained a program named ImgMod02a. This program makes it easy to:
- Manipulate and modify the pixels that belong to an image.
- Display the processed image along with the original image for a visual comparison of the two.
ImgMod02a serves as a driver that controls the execution of a second program that actually processes the pixels.The programs that I will explain in this lesson run under the control of ImgMod02a. In order to compile and run the programs that I will provide in this lesson, you will need to go to the lessons entitled Processing Image Pixels Using Java, Controlling Contrast and Brightness and Processing Image Pixels using Java, Getting Started to get copies of the program named ImgMod02a and the interface named ImgIntfc02.
Viewing tip
You may find it useful to open another copy of this lesson in a separate browser window. That will make it easier for you to scroll back and forth among the different figures and listings while you are reading about them.
Display format
The output shown in Figure 1 was produced by the driver program named ImgMod02a and the image-processing program named ImgMod28. The program named ImgMod02a was explained in an earlier lesson. I will explain the program named ImgMod28 (along with another program named ImgMod28a) in this lesson.
Figure 1
As in all of the graphic output produced by the driver program named ImgMod02a, the original image is shown at the top and the processed image is shown at the bottom.
Background Information
The earlier lesson entitled Processing Image Pixels using Java, Getting Started provided a great deal of background information as to how images are constructed, stored, transported, and rendered. I won't repeat that material here, but will simply refer you to the earlier lesson.
That earlier lesson introduced and explained the concept of a pixel. In addition, the lesson provided a brief discussion of image files, and indicated that the program named ImgMod02a is compatible with gif files, jpg files, and possibly some other file formats as well.
However, with the exception of the discussion on file compression errors later in this lesson, the lessons in this series are not particularly concerned with file formats. Rather, the lessons are concerned with what to do with the pixels after they have been extracted from an image file. Therefore, there is very little discussion about file formats in this series.
A three-dimensional array of pixel data as type int
The driver program named ImgMod02a:
- Extracts the pixels from an image file.
- Converts the pixel data to type int.
- Stores the pixel data in a three-dimensional array of type int that is well suited for processing.
- Passes the three-dimensional array object's reference to an image-processing program.
- Receives a reference to a three-dimensional array object containing processed pixel data from the image-processing program.
- Displays the original image and the processed image in a stacked display as shown in Figure 1.
The manner in which that is accomplished was explained in the earlier lesson entitled Processing Image Pixels using Java, Getting Started.
Will concentrate on the three-dimensional array of type int
The lessons in this series will show you how to write image-processing programs that implement a variety of image-processing algorithms. The image-processing programs will receive raw pixel data in the form of a three-dimensional array of type int, and will return processed pixel data in the form of a three-dimensional array of type int.
The two programs that I will explain in this lesson will embed secret text messages in the pixels of an image before returning the processed image for display. A future program will explain how to embed a secret image in another image as a more technically advanced form of steganography.
A grid of colored pixels
Each three-dimensional array object represents one image consisting of a grid of colored pixels. The pixels in the grid are arranged in rows and columns when they are rendered. One of the dimensions of the array represents rows. A second dimension represents columns. The third dimension represents the color (and transparency) of the pixels.
Once again, I will refer you to the earlier lesson entitled Processing Image Pixels using Java, Getting Started to learn:
- How the primary colors of red, green, and blue and the transparency of a pixel are represented by four unsigned 8-bit bytes of data.
- How specific colors are created by mixing different amounts of red, green, and blue.
- How the range of each primary color and the range of transparency extends from 0 to 255.
- How black, white, and the colors in between are created.
- How the overall color of each individual pixel is determined by the values stored in the three color bytes for that pixel, as modified by the transparency byte.
Supplementary material
I recommend that you also study the other lessons in my extensive collection of online Java tutorials. You will find those lessons published at Gamelan.com. However, as of the date of this writing, Gamelan doesn't maintain a consolidated index of my Java tutorial lessons, and sometimes they are difficult to locate there. You will find a consolidated index at www.DickBaldwin.com.
Five programs and one interface
The image-processing programs that I will discuss in this lesson require the driver program named ImgMod02a and the interface named ImgIntfc02 for compilation and execution. I provided and explained that material in the earlier lessons entitled Processing Image Pixels Using Java, Controlling Contrast and Brightness and Processing Image Pixels using Java, Getting Started.
I will present and explain two new Java programs named ImgMod28 and ImgMod28a in this lesson. These programs, when run under control of the program named ImgMod02a, will produce outputs similar to those shown in Figure 1.
(The results will be different if you use a different image file.)
The processed image matches the original image
In previous lessons in this series, the processed image was usually different from the original image, and it was this difference that was significant with respect to the topic of the lesson. The significant thing about Figure 1, Figure 3, Figure 6, and Figure 7 is that the processed image at the bottom looks just like the original image at the top.
This is significant because in Figure 1, Figure 3, Figure 6, and Figure 7 there is a text message hidden in the bottom image. A short text message is hidden in the bottom image of Figure 1 and Figure 3. A very long text message is hidden in the bottom image of Figure 6 and Figure 7. In all four cases, the existence of the message cannot be detected simply by viewing the image.
I will show you how to write the Java code to hide the message in the image. I will also show you how to extract and display the message that is hidden in the image.
The processImg method
The programs named ImgMod28 and ImgMod28a, (and all image-processing programs that are capable of being driven by ImgMod02a), must implement the interface named ImgIntfc02. That interface declares a single method named processImg, which must be defined by all implementing classes.
When the user runs the program named ImgMod02a, that program instantiates an object of the image-processing program class and invokes the processImg method on that object.
A three-dimensional array containing the pixel data for the image is passed to the processImg method. The processImg method returns a three-dimensional array containing the pixel data for a processed version of the original image.
A before and after display
When the processImg method returns, the driver program named ImgMod02a causes the original image and the processed image to be displayed in a frame with the original image above the processed image as shown in Figure 1.
The image file
The image file can be a gif file or a jpg file. Other file types may be compatible as well. If the program is unable to load the image file within ten seconds, it will abort with an error message.
(You should be able to right-click on the image in Figure 8 to download and save the image locally. Then you should be able to replicate the output produced in Figure 1 by running the program named ImgMod28 and specifying that image file as the input.)
The Replot button
A Replot button appears at the bottom of the frame in Figure 1. If the user clicks the Replot button, the processImg method is rerun, the image is reprocessed, and the new version of the processed image replaces the old version in the display.
This feature is of no significance with the program named ImgMod28 because there is no change between successive runs of the processImg method. This feature could be significant for the program named ImgMod28a, because a new message containing random characters is generated and hidden each time the processImg method is run. Thus, it is possible that the output image could be different from one run to the next for the program named ImgMod28a.
Discussion and Sample Code
The program named ImgMod28
This program, which is designed to be driven by the program named ImgMod02a, illustrates one form of steganography by:
- Hiding a text message in an image.
- Displaying the original message.
- Extracting and displaying the hidden message for comparison with the original.
- Displaying the modified image below the original image for a visual comparison of the two images.
Running the program
Enter the following on the command line to run this program:
java ImgMod02a ImgMod28 ImagePathAndFileName
Hiding the message
This program hides the message in the image by doing the following:
- Reducing the message to the 64-character set beginning with the space character in the ASCII table. Each character can then be represented by six bits.
- Decomposing each six-bit character into three groups of two bits each.
- Replacing the two least-significant bits (LSB) in the red, green, and blue values for a given pixel by the three groups of two bits. Thus, each pixel can carry one six-bit character.
In an attempt to make it difficult for an evesdropper to detect that a message is embedded in the image, the message is not embedded at the beginning of the image. Rather the image is embedded beginning at a predetermined pixel location somewhere internal to the image.
More camouflage
In an attempt to make it even more difficult for an evesdropper to detect that a message is embedded in the image, message values are not embedded into adjacent pixels. Rather, a space consisting of 0, 1, 2, or 3 pixels is allowed between modified pixels. Furthermore, the space that is allowed between any two modified pixels is probably random because it is based on the value of two bits from the previous message character.
May or may not be helpful
While this feature probably makes the existence of the hidden message more difficult to detect, it also makes the overall process more vulnerable to problems resulting from data transmission errors. Once a data error causes the reconstruction process to lose synchronization, it is probably not possible for the reconstruction process to recover. Therefore, this feature may, or may not be advantageous depending on the likelihood of transmission errors affecting the low order bits in the pixel color values.
This feature is easy to disable (see the program named ImgMod28a for a version of the program in which this feature has been disabled). This feature should be disabled if there is any possibility of transmission errors affecting the low order bits in the pixel color values.
The character set
The program supports a message character set consisting of 64 characters beginning with the space character in the ASCII table. This set includes the space character, the numeric characters, the upper-case alphabetic characters, and most of the punctuation and special characters.
By using this format, each character can be represented in six bits, and each modified pixel can carry one message character.
The end-of-message character
The program uses an underscore character to indicate the end of the message. Therefore, the underscore character cannot be used elsewhere within the body of the message. Thus, the effective number of allowable characters is reduced from 64 to 63 by the use of the underscore character to flag the end of the message.
An output example
This program produces the output shown in Figure 2 when run with an image file named imgmod10.jpg. (This is the image shown in Figure 1. You can download this image from Figure 8 later in the lesson.)
Note that line breaks were manually inserted in Figure 2 to force this material to fit into this narrow publication format.
Processing program: ImgMod28 Image file: imgmod10.jpg Width = 324 Height = 330 Original message: Four score and seven years ago our fathers brough t forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Msg Length = 175 Insertion point = 5000 Reconstructed message: FOUR SCORE AND SEVEN YEARS AGO OUR FATHERS BROUGH T FORTH ON THIS CONTINENT A NEW NATION, CONCEIVED IN LIBERTY AND DEDICATED TO THE PROPOSITION THAT ALL MEN ARE CREATED EQUAL._
Figure 2
Conversion to all upper case
The text of the original message that was converted to a 64-character set and embedded in the image is shown near the middle of Figure 2. That text consists of 175 characters beginning with the word Four and ending with EQUAL._
As you can see, the text was converted from mixed case to all upper case. This conversion was a part of converting the message to the set of only 64 characters. This reduction in the size of the character set is not a requirement for embedding a message in an image. It simply makes it easier because the six bits that comprise a character fit nicely into the two LSB of the three color values. The use of 8 or 16-bit characters would require additional control logic in the character embedding and character extraction process but would be entirely feasible.
A fairly short message
The message used to test the program in this case was fairly short (175 characters). I did this on purpose to make it practical to display and to compare the original message and the reconstructed message in a reasonable amount of screen space.
A much longer message
An image of this size could be used to hide a much longer message. For example, if the pixel-skipping feature remains enabled and if it is assumed that on the average one character is embedded in every three pixels, this image would accommodate a message with a length in excess of 35,600 characters. As you will see later, if the pixel-skipping feature is disabled and one character is embedded in every pixel, this image would accommodate a message with a length in of 106,920 characters.
As you can see, the message-hiding capacity of this approach is substantial.
Not visible in the modified image
If you scroll back to Figure 1 and compare the modified image on the bottom with the original image at the top, you will see that there is no visual indication that the message is embedded in the image.
What about other images?
One might hypothesize that the existence of the embedded message is not visible in the modified image for the following reasons:
- The image contains a lot of detail with many different shades of several different colors. Thus, a slight change in the shade of a given pixel would be difficult to see.
- The number of pixels in the image is much greater than the number of characters in the message. Therefore, only 175 of 106,920 pixels were actually modified, and those were not adjacent pixels.
One might further hypothesize that if either of these conditions is not met, the existence of the message will become visible.
The next example will test the hypothesis that the message would be visible in an image with less color variation. The program named ImgMod028a will test the hypothesis that the message would become visible in the image if the number of characters is a large percentage of the number of pixels.
The image named imgmod11.jpg
Figure 3 shows the result of using the same program to embed the same message in a different image named imgmod11.jpg.
Figure 3
Once again, the original image is shown at the top, and the image containing the embedded message is shown at the bottom. (The two images are separated by a very narrow yellow horizontal line in Figure 3.)
No visual indication of a message
There is no visual indication that the message was embedded in the bottom image in spite of the fact that there was virtually no color detail in this image. This image contains large blocks of only eight colors consisting of:
- Black and white
- The primary colors red, green, and blue
- The secondary colors aqua, yellow, and fuchsia
The text output
Just to prove that the lower image in Figure 3 does contain a message, the text output produced by this program for this image is shown in Figure 4.
Processing program: ImgMod28 Image file: imgmod11.jpg Width = 480 Height = 120 Raw message: Four score and seven years ago our fathers brough t forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Msg Length = 175 Insertion point = 5000 Extracted message: FOUR SCORE AND SEVEN YEARS AGO OUR FATHERS BROUGH T FORTH ON THIS CONTINENT A NEW NATION, CONCEIVED IN LIBERTY AND DEDICATED TO THE PROPOSITION THAT ALL MEN ARE CREATED EQUAL._
Figure 4
The only differences in the text output in Figure 4 and the text output in Figure 2 has to do with the name and the size of the image file. The same message was embedded in the modified image in both cases and was later extracted and displayed.
The conclusion is that the human eye is incapable of discerning changes that take place in the two LSB of the color values when an image that uses three 8-bit color values and one 8-bit alpha value is displayed on a computer screen.
(At least, that is the case for my eyes and my computer screen.)
This suggests that it might be possible to use three and possibly four of the least significant bits to embed the message provided that the image was carefully chosen to contain lots of color and lots of fine detail. However, I am unable to test that hypothesis without making major modifications to the program.
(That sounds like a good homework assignment.)
Enough talk, let's see some code
I will break this program down and discuss it in fragments. You can view the entire program named ImgMod28 in Listing 10 near the end of the lesson.
The program named ImgMod28
As shown in Listing 1, the class named ImgMod28 begins just like most of my classes that implement the interface named ImgIntfc02. I have explained this code in several previous lessons and won't repeat that explanation here. Rather, I will simply allow the comments to speak for themselves.
class ImgMod28 implements ImgIntfc02{ //This method must be defined to implement // the interface named ImgIntfc02. public int[][][] processImg( int[][][] threeDPix, int imgRows, int imgCols){ //Make a working copy of the 3D array to // avoid making permanent changes to the // image data. int[][][] temp3D = new int[imgRows][imgCols][4]; for(int row = 0;row < imgRows;row++){ for(int col = 0;col < imgCols;col++){ temp3D[row][col][0] = threeDPix[row][col][0]; temp3D[row][col][1] = threeDPix[row][col][1]; temp3D[row][col][2] = threeDPix[row][col][2]; temp3D[row][col][3] = threeDPix[row][col][3]; }//end inner loop }//end outer loop System.out.println("Width = " + imgCols); System.out.println("Height = " + imgRows); Listing 1
The original message
Listing 2 defines the message that will be embedded in the image. This message is created as a String object using the 16-bit Unicode character set that is standard for Java. The message is terminated with an underscore character.
(The use of a termination character is necessary so that the code that later extracts the message from the image will know when it has reached the end of the message.)
String msg = "Four score and seven years ago our fathers" + " brought forth on this continent a new" + " nation, conceived in liberty and" + " dedicated to the proposition that all" + " men are created equal."; System.out.println( "Original message:n" + msg); //Terminate the message with an underscore. msg = msg + "_"; Listing 2
Listing 2 also displays the original message as shown in Figure 2 and Figure 4.
Convert to six-bit characters
The next step is to convert the Unicode characters to a set of 64 characters, which can be represented as six bits per character. This is accomplished in Listing 3.
//Convert the message to 64-char six-bit // data format. This includes the space, // the numbers, the upper-case characters, // and most of the punctuation characters // and other special characters. //Begin by converting to all upper-case // characters. msg = msg.toUpperCase(); //Create an object to receive the modified // version of the message. StringBuffer sixBitMsg = new StringBuffer(); //Subtract a value of 32 causing all of the // modified character values to fall between // 0 and 63. This bias value of 32 will be // added back later when the message is // reconstructed. char temp; for(int cnt = 0;cnt < msg.length();cnt++){ temp = (char)(msg.charAt(cnt) - 32); sixBitMsg.append(temp); }//end for loop //Replace the original Unicode message with // the 6-bit message. This is the message // that will be hidden in the image. msg = new String(sixBitMsg); Listing 3
Listing 3 is rather long, but the code in Listing 3 is straightforward and should not require a detailed explanation. Therefore, once again, I will let the comments speak for themselves.
Embed the message in the image
The next step is to embed the message in the image. The overall process consists of two steps:
- Break each six-bit character down into three pairs of bits
- Substitute those three pairs of bits for the two least-significant bits (LSB) of the red, green, and blue color values in selected pixels in the image
Extract and save the pairs of bits
The process begins by extracting each pair of bits from each six-bit character and storing the two bits in the two LSB of a byte in an array of bytes. This makes it easier to access the pairs of bits later for use in modifying the pixel values.
Start the process by executing the first statement in Listing 4 to convert the message from a String of Unicode characters into an array of bytes.
(Note that this process preserves only the 8 LSB of each 16-bit Unicode character.)
byte[] msgBytes = msg.getBytes(); System.out.println( "Msg Length = " + msgBytes.length); //Create an array to store the bytes // containing the pairs of bits. byte[] twoBitBytes = new byte[3 * msgBytes.length]; //Shift and mask the bytes in the array // containing the message bytes to get and // save the pairs of bits. int twoBitByteCnt = 0; for(byte element:msgBytes){ twoBitBytes[twoBitByteCnt++] = (byte)(element & 0x03); twoBitBytes[twoBitByteCnt++] = (byte)((element >> 2) & 0x03); twoBitBytes[twoBitByteCnt++] = (byte)((element >> 4) & 0x03); }//end for-each Listing 4
Then extract the bit pairs from the characters and store them in the array referred to by twoBitBytes. This is all accomplished in Listing 4.
The code in Listing 4 is relatively straightforward, particularly if you are familiar with bit-level programming in Java.
Embed the bits in the pixels
The next step is to embed the pairs of message bits into the pixel color values beginning at a predetermined pixel location in the image.
Two bits from a single 6-bit message character are embedded into the two LSB of the red, green, and blue pixel values belonging to a single image.
After a pixel has been modified, the values of the two bits that were embedded into the blue pixel are used to determine the number of pixels to skip before modifying another pixel. The number of pixels skipped will be 0, 1, 2, or 3. This prevents adjacent pixels from being modified about three-fourths of the time.
This is accomplished by the code in Listing 5.
//Specify the predefined insertion point int insertionPoint = 5000; System.out.println( "Insertion point = " + insertionPoint); //Initialize the number of pixels to skip. int skipValue = 0; //Use a nested loop to operate on each pixel // and to embed message bits into the red, // green, and blue values of selected pixels. twoBitByteCnt = 0;//Re-use this variable for(int row = 0;row < imgRows;row++){ for(int col = 0;col < imgCols;col++){ //Embed 6-bit message characters // beginning at a predefined pixel // location in the image and skipping // pixels on the basis of the value of // two bits in the message character. if((row * col > insertionPoint) && (twoBitByteCnt < twoBitBytes.length) && skipValue-- == 0){ //Replace the two lsb of the red, // green, and blue pixel values with // two bits from the six-bit message // character. temp3D[row][col][1] = (temp3D[row][col][1] & 0xFC) | twoBitBytes[twoBitByteCnt++]; temp3D[row][col][2] = (temp3D[row][col][2] & 0xFC) | twoBitBytes[twoBitByteCnt++]; temp3D[row][col][3] = (temp3D[row][col][3] & 0xFC) | twoBitBytes[twoBitByteCnt++]; //Determine number of pixels to skip // before modifying another pixel. skipValue = twoBitBytes[twoBitByteCnt - 1]; }//end if }//end for loop on col }//end for loop on row Listing 5
Once again, although the code in Listing 5 is rather long, it is completely straightforward if you are familiar with bit-level programming in Java.
Once the code in Listing 5 has been executed, the message has been successfully embedded in the image.
Extract the message from the image
Up to this point, the program shows how to modify an image to include a hidden message. The remainder of the program shows how to extract the message data from the image, reconstruct the message, and display the message. (Note that this code requires prior knowledge of the insertion point value.)
An array to contain the two-bit message data
Begin by creating an array object large enough to contain one byte for every two bits of message data that can be extracted from every pixel between the insertion point and the end of the message. This is shown in Listing 6.
byte[] extractedTwoBitBytes = new byte[(imgRows * imgCols - insertionPoint) * 3]; Listing 6
A pair of nested for loops
The next step is to use a pair of nested for loops to process every pixel, extracting the two message bits from the color values for those pixels that contain message data.
(Recall that as a result of the pixel-skipping feature, only about one out of three or four pixels actually contain message data.)
The code in Listing 7 extracts and saves the pairs of message bits in the two LSB of the bytes in the byte array referred to by extractedTwoBitBytes.
twoBitByteCnt = 0; skipValue = 0; //Process every pixel. for(int row = 0;row < imgRows;row++){ for(int col = 0;col < imgCols;col++){ if((row * col > insertionPoint) && (skipValue-- == 0)){ //Extract and save the message // characters two bits at a time. extractedTwoBitBytes[twoBitByteCnt++] = (byte)(temp3D[row][col][1] & 0x03); extractedTwoBitBytes[twoBitByteCnt++] = (byte)(temp3D[row][col][2] & 0x03); extractedTwoBitBytes[twoBitByteCnt++] = (byte)(temp3D[row][col][3] & 0x03); //Determine number of pixels to skip // before extracting data for another // pixel. skipValue = extractedTwoBitBytes[ twoBitByteCnt - 1]; }//end if }//end for loop on col }//end for loop on row Listing 7
Two-bit message data has been extracted and saved
Once the code in Listing 7 finishes execution, all of the message data has been extracted from the image and saved in the byte array. At this point, however, the bits for each six-bit character are spread across three bytes in the array, two data bits in each byte. Those bits must be recombined in order to form a readable message.
Reconstruct the message
The code in Listing 8 uses bit-level programming to reconstruct each six-bit character into an eight-bit byte using the three pairs of bits contained in three consecutive bytes in the byte array referred to by extractedTwoBitBytes.
//Reconstruct and display the 64-char version // of the message StringBuffer extractedMsg = new StringBuffer(); byte[] sixBitBytes = new byte[extractedTwoBitBytes.length/3]; twoBitByteCnt = 0; for(byte element:sixBitBytes){ //Shift and or the pairs of bits into the // 6-bit format. element = (byte)(extractedTwoBitBytes[ twoBitByteCnt++]); element = (byte)(element | (extractedTwoBitBytes[ twoBitByteCnt++] << 2)); element = (byte)(element | (extractedTwoBitBytes[ twoBitByteCnt++] << 4)); extractedMsg.append((char)(element + 32)); //Stop processing when terminating // underscore character is encountered. if((char)(element + 32) == '_')break; }//end for-each Listing 8
Add the bias value back in
In addition, the code in Listing 8 adds in a bias value of 32 to compensate for the fact that a value of 32 was subtracted in Listing 3 during the process of representing the 64 characters in six-bit data. This causes the six bits that represent the 64 characters to be shifted back to their proper locations in an eight-bit byte.
Monitor for message-termination character
While reconstructing the message, the code in Listing 8 monitors for the occurrence of the underscore terminating character. When it is encountered, the reconstruction process is terminated by breaking out of the processing loop. Once this is done, the StringBuffer object referred to by extractedMsg contains the extracted message in 16-bit 64-character format.
Display the results
Listing 9 displays the extracted message on the standard output device as shown in Figure 2 and Figure 4. Listing 9 also returns the modified image to be displayed as shown in Figure 1 and Figure 3.
System.out.println("Extracted message:n" + extractedMsg); //Return the modified image for display. return temp3D; }//end processImg Listing 9
What about a longer message?
It was hypothesized earlier that an embedded message might be visible in an image that contains very little detail. That hypothesis was refuted by Figure 3 that shows a message embedded in an image containing only eight colors with no detail. There was no visible indication that the image contains an embedded message.
It was also hypothesized earlier that a message embedded in an image might be visible if the number of characters in the message is a large percentage of the number of pixels in the image. This hypothesis will be tested by the program named ImgMod28a.
The program named ImgMod28a
Because the program is very similar to the program named ImgMod28, I won't break it down and discuss the code in fragments. You can view this program in its entirety in Listing 11 near the end of the lesson.
This program is a modified version of the program named ImgMod28. The purpose of this program is to determine the extent to which randomly modifying the two LSB of every pixel in an image degrades the visual quality of the image. In other words, if the two LSB in every color value in every pixel is modified by embedding a message, will be existence of the message be detectable simply by viewing the image?
Program overview
This program is designed to be driven by the program named ImgMod02a. It illustrates the use of steganography for very long messages by:
- Embedding a long text message in an image by modifying every pixel in the image to contain one character from the message. (The message is composed of characters generated on the basis of a sequence of output values provided by a random number generator. This is similar to what might be expected if the message had been encrypted.)
- Displaying selected characters from throughout the original message. (Because of the length of the message, it is not practical to display all of the characters.)
- Extracting the message from the image and displaying the same set of selected characters from the extracted version for comparison with the original message.
- Displaying the modified image below the original image for a visual comparison of the two images. This is the point where visual detection of the message will occur if it does occur.
Running the program
You can run the program by entering the following at the command line:
java ImgMod02a ImgMod28a ImagePathAndFileName
Support for character set
As is the case with the earlier program named ImgMod28, this program supports a message character set consisting of 64 characters beginning with the space character in the ASCII table. This character set includes the space character, the numeric characters, the upper-case alphabetic characters, and most of the punctuation and special characters. By using this format, each modified pixel can carry one message character.
A smaller random character set is actually used
Note however that the random message used to test this program does not contain all of the allowable characters. This is acceptable since the purpose of the program is to test for the ability to visually detect the message caused by replacing the two LSB in every color value for every pixel with a pair of randomly determined bits.
As before, the program uses an underscore character to indicate the end of the message. Therefore, the underscore character cannot be used within the body of the message so the effective number of allowable characters is reduced from 64 to 63.
The text output
This program produced the output shown in Figure 5 when run with the image file named imgmod10.jpg.
(This is the same image file that was used to test the program named ImgMod28 earlier.)
Processing program: ImgMod28a Image file: imgmod10.jpg Width = 324 Height = 330 Characters from original message: %1" 9:)<8;>';4$:!?,,*"'+4:6$-'?!2: (3$8 :729$&;%& '(-724 Msg Length = 106920 Insertion point = 0 Characters from reconstructed message: %1" 9:)<8;>';4$:!?,,*"'+4:6$-'?!2: (3$8 :729$&;%& '(-724
Figure 5
Note that line breaks were manually inserted in Figure 5 to force this material to fit into this narrow publication format. Note also that because the message that is embedded in the image is generated using a random number generator, the output will be different each time the program is run.
Reconstructed characters match original characters
The output shown in Figure 5 contains several interesting aspects. To begin with, the characters that are displayed from the reconstructed message match the characters displayed from the original message proving that the message was actually embedded in the image and later extracted successfully.
Number of characters equal number of pixels
Next, a message character was embedded in every pixel beginning with the first pixel resulting in a message length of 106,920 characters. By many standards, that would be a fairly long message. (In raw HTML form, this tutorial lesson contains about 63,000 characters.)
Was the message visually detectable?
That brings us to the question of visual message detectability resulting from the embedding of one character in every pixel. The input and output images for the starfish image are shown in Figure 6. As near as I can tell, there was no visual degradation of the bottom image caused by embedding this message in this image. There appear to be no visual clues in the output image that would cause someone to suspect that a very long message has been embedded in the image.
Figure 6
A more severe test case
An even more severe test is shown in Figure 7. This figure shows the input and output images for the image named imgmod11.jpg that consists of only eight solid colors. Once again, one message character was embedded in every pixel with no visual indication that the modified image contains a hidden message.
Figure 7
Conclusion reinforced
This reinforces the conclusion drawn earlier that the human eye is incapable of discerning changes that take place in the two LSB of the color values when an image that uses three 8-bit color values and one 8-bit alpha value is displayed on a computer screen.
Up to this point, all of the news has been good news. If you want to send that secret message to Alice by embedding it in one of your digital vacation photos, you can probably do so without fear of being caught.
Avoid lossy compression schemes
However, you must be very careful about the handling of the image in order to make certain that data transmission errors won't cause changes to the two LSB of the color values, thus destroying your secret message. In particular, you must avoid using lossy image compression schemes to store and transmit the image. Here is some of what one author has to say about the JPEG file format:
"JPEG, ... is a lossy compression method. In other words, to save space it just throws away parts of an image."
Therefore, you probably don't want to send your secret message to Alice by embedding and sending it to her in a JPEG image. (An image file with a jpg extension.) If you do, the message may be badly garbled or completely impossible to read.
Why did I use JPEG image files?
At this point, you may have observed that the images that I used in this lesson were JPEG images, and you may have wondered why this wasn't a problem for me. The reason is that although I read a JPEG image file as input, I didn't write the modified image back out into another JPEG file before extracting the message. Instead, I extracted the message from the image while it was still in raw pixel form. Had I written the image back out into a JPEG file, and then read the file and extracted the message, the results may have been much different.
What about GIF files?
Here is part of what that same author has to say about the GIF file format:
"GIF, ... is a lossless method of compression. ... when the program that creates a GIF squashes the original image down it takes care not to lose any data. ... they are limited to a palette of 256 colours or less. ... There is a 24-bit, license-free GIFalike called the PNG format, ..."
Therefore, it would probably be safe to embed your secret message to Alice in a GIF file. Just be sure to convert to GIF format before embedding the message in the image. Unless data errors crept in from some other source, Alice should be able to successfully extract and read the message. However, your vacation photos may not look quite as good after you convert them to GIF files as they did when you first retrieved them from your digital camera.
What about PNG files?
Here is part of what another author has to say about the PNG file format:
"PNG file format provides ... for lossless image compression. It supports true color (PNG-24) and palletized (PNG-8) images ... PNG-24 is a useful image file format for high quality lossless image archiving, ..."
Therefore, the PNG file format might be an appropriate format for sending your secret messages to Alice embedded in your digital vacation photos. Reportedly PNG provides high-quality color as well as lossless compression.
What about lossless JPEG?
Finally, here is what another author has to say about something called lossless JPEG.
"There's a great deal of confusion on this subject, ... there are several different compression methods all known as "JPEG". The commonly used method is "baseline JPEG" ... The same ISO standard also defines a very different method called "lossless JPEG". ... When I say "lossless", I mean mathematically lossless: a lossless compression algorithm is one that guarantees its decompressed output is bit-for-bit identical to the original input. This is a much stronger claim than "visually indistinguishable from the original". Baseline JPEG can reach visual indistinguishability for most photo-like images, but it can never be truly lossless. Lossless JPEG is a completely different method that really is lossless. ... it is now largely obsolete. ... the new PNG standard outcompresses lossless JPEG on most images.) ... It's worth repeating that cranking a regular JPEG implementation up to its maximum quality setting *does not* get you lossless storage; even at the highest possible quality setting, baseline JPEG is lossy because it is subject to roundoff errors in various calculations. ..."
The bottom line
And that is probably more than you ever wanted to know about lossy and lossless image compression algorithms.
The bottom line is, if you are going to embed a message in an image, be sure to write your modified image into a file using a lossless compression algorithm. Otherwise, your message will probably become garbled due to the data errors introduced by lossy compression.
Depending on the color quality that you need, the two best choices as of the date of this writing appear to be GIF for lower color quality and PNG for higher color quality.
(You can read more about the distribution of color in GIF and JPEG images in my earlier lesson entitled Processing Image Pixels Using Java: Controlling Contrast and Brightness. That lesson uses histograms to illustrate and compare the distribution of color for those two image file formats.)
Page 1 of 2
IT Solutions Builder TOP IT RESOURCES TO MOVE YOUR BUSINESS FORWARD
Which topic are you interested in?
Data Storage
IT Management
What is your company size?
What is your job title?
What is your job function?
Searching our resource database to find your matches...


text:
Dengue/dengue haemorrhagic fever- Impact of Dengue
- DengueNet
- Dengue activities
- Information resources
Dengue is the most common mosquito-borne viral disease of humans that in recent years has become a major international public health concern. Globally, 2.5 billion people live in areas where dengue viruses can be transmitted. The geographical spread of both the mosquito vectors and the viruses has led to the global resurgence of epidemic dengue fever and emergence of dengue hemorrhagic fever (dengue/DHF) in the past 25 years with the development of hyperendemicity in many urban centers of the tropics.
Transmitted by the main vector, the Aedes aegytpi mosquito, there are four distinct, but closely related, viruses that cause dengue. Recovery from infection by one provides lifelong immunity against that serotype but confers only partial and transient protection against subsequent infection by the other three. There is good evidence that sequential infection increases the risk of more serious disease resulting in DHF.
DHF was first recognized in the 1950s during the dengue epidemics in the Philippines and Thailand. By 1970 nine countries had experienced epidemic DHF and now, the number has increased more than fourfold and continues to rise. Today emerging DHF cases are causing increased dengue epidemics in the Americas, and in Asia, where all four dengue viruses are endemic, DHF has become a leading cause of hospitalization and death among children in several countries.
Currently vector control is the available method for the dengue and DHF prevention and control but research on dengue vaccines for public health use is in process. The global strategy for dengue /DHF prevention and control developed by WHO and the regional strategy formulation in the Americas, South-East Asia and the Western Pacific during the 1990s have facilitated identification of the main priorities: strengthening epidemiological surveillance through the implementation of DengueNet; accelerated training and the adoption of WHO standard clinical management guidelines for DHF; promoting behavioral change at individual, household and community levels to improve prevention and control; and accelerating research on vaccine development, host-pathogen interactions, and development of tools/interventions by including dengue in the disease portfolio of TDR (UNDP/World Bank/WHO Special Programme for Research and Training in Tropical Diseases) and IVR (WHO Initiative for Vaccine Research).

subset: commoncrawl


text:
Welcome Commuter Students!
Are you a commuter student and want to get involved?
Here are a few things you should do and need to be aware of in order to stay connected:
1. If you are new to Western, attend the commuter orientation session and actively take part in everything else. You are just as much a part of Western as the residential students.
2. Attend Clubs Carnival. Every semester the current clubs hold a clubs carnival very early in the semester to recruit new members. Find out about them and sign up.
3. Make sure you sign up for your Western e-mail account and check it regularly. The Commuter Student Organization (CSO) will probably send their e-newsletter to that address (as will some of the faculty regarding your classes).
4. Consider joining the CSO. Just send an email to Daryle Dennis, the CSO advisor, at firstname.lastname@example.com or call him at 203-837-8549.
5. Check out what events are happening on campus and make it a point to attend. Check the Events Calendar on the home page, go to Banner and check out the announcements in WestConnduit, or set pages such as the "Coffeehouse" website as your favorites.
6. Find out what clubs are active on campus by going to http://www.wcsu.edu/studentcenter/studentorg/ and let them know you are interested in joining. You can also check out the Recreation web page for information on club sports at http://www.wcsu.edu/recreation/. Stop by the Student Life/Student Activities office to ask questions or to start your own club.
7. Look for flyers all around campus. Clubs are always using flyers to advertise their events, many of which are free and open to all students. Also, the Student Affairs office regularly posts flyers with events for commuter students.
8. Talk to other students. Go to the commuter lounge and hang out, strike up conversations. Western is full of commuter students so it shouldn't be hard to find someone who feels just like you do.
9. Ask questions. Can't find anything you are looking for? Not sure what's out there? Check with the info desk or call the Student Affairs office at 203-837-9700.
10. Most of all – make sure being a student at WestConn is the best experience it can be! We are here to help you!
It's Official!
Your "new" WCSU Commuter Student Organization (CSO) was formally recognized by the Student Government Association on Monday, May 4, 2009.
The CSO will help us with our goal to better connect you with University programs, activities, faculty and administrative resources.
We welcome your feedback! It will help us better understand what programs and activities interest you and what your needs and concerns are.
Please feel free to contact the CSO Advisor, Daryle Dennis at (203) 837-8549 or by email: email@example.com


text:
International Students
Get specific information on applying, immigration, financial aid and more,
Interested in being a student-athlete at Calvin? This is the place for you. Learn about DIII athletics, recruitment and more.
ROTC Cadets
Calvin partners with WMU to offer a robust ROTC experience. Consider this exciting path of study and service.
Guidance Counselors
Guidance counselors and youth pastors—take a look. You'll find information about arranging a visit, Calvin policies, finances and more.


text: Hi Matthew, i've been working/thinking on that a year ago and my opinion: "You don't want to do that." But there are some questions Do you want to go public with that little webpage? Do you want to execute common sge jobs or is it just one application? Do these jobs have input data? How complex is your authorization hierarchy? What do you do with the next sge release? How to you share the results and the status with the users? There are webfrontend for cluster apllications out there eg NCBI's blast, but never heard of it for common jobs. Cya > Hi all, > > Can anyone recommend a simple web frontend for submitting SGE jobs? > > Thanks, > > Matthew Pratola > M.Sc. Candidate > Dept. of Statistics and Actuarial Science > Simon Fraser University > Vancouver, BC, CANADA > > _______________________________________________ > Beowulf mailing list, Beowulf at beowulf.org > To change your subscription (digest mode or unsubscribe) visit > http://www.beowulf.org/mailman/listinfo/beowulf -- Rene Storm @Cluster


text:
They don't compete against our leisure time primarily because the gameplay doesn't have enough depth to hold our attention or interest like other leisure activities. In other words, it beats working – but it doesn't beat reading a book, watching your favorite TV show, or anything else that we do during our leisure time while we are not at work.
The perceived threat to full-featured games
I think the fear that social gaming will impact full-featured games stems from the idea that social gaming is more attractive to investors. At GDC, Evan Wilson clearly articulated this concern:
How important is game development when you have poor quality free social games generating these kinds of numbers? (source)Evan's question addresses the scary idea that if poor quality games can generate big profits, no one will want to invest in developing better games. This is the real reason that traditional game developers and gamers fear social gaming.
Don't be afraid
Traditional game developers and gamers need to stop being afraid and take some comfort in Laws of Competition. In the short-term, social gaming is going to see a nice influx of investment. Cheap games for big profits is going to attract money. No doubt about it.
HOWEVER, because it's cheap, the barrier to entry is low. Right now, I could grab three of my best friends and write a game for Facebook that could be as popular as anything else currently available. And if it doesn't take much effort to create a cheap game, you are going to see LOTS of them.
And each of these cheap and easily created games is going to be competing against the growing over-abundance of social games.
The Laws of Competition are going to require a successful social gaming company to compete by either:
- creating lots of crappy games (most options)
- and/or, build better games to distinguish themselves (best option)
This is what happens with market forces in a free market. Big markets with big profits attract lots of competition. Which, in turn, drives profits down because more people are chasing the same pool of dollars.
The point here is that while social gaming is attractive to investors right now, it's not always going to be this attractive as competition drives down profits.
Out of 80 million Farmers, how many pay to play?
I signed up for Farmville. Played it for twenty minutes and never logged back on. I still count as a "neighbor" to people in my social network and I'm sure I count towards that 80 million player mark that Zynga claims.
I also never paid Zynga a dime to play Farmville.
Like all Free2Play games, the model depends on a small percentage of the user base to pay for it. It's this group of 'hardcore' social gamers that Zynga and other social game developers are chasing.
So while it's easy to say that such games are "mainstream" because they have 80 million accounts, the actual pool of players paying in some form to play these games could easily be smaller than the subscriber base of Warcraft.
Although, in fairness, I think one thing that is unique to social gaming is that the user isn't always paying directly. For example, while I never paid Zynga to play Mafia Wars, I did signup for NetFlix through a link they provided and earned Reward Points. NetFlix, in turn, paid Zynga for the referral.
Of course, my decision to signup for NetFlix was not influenced by Mafia Wars in any way and was a completely independent decision. Had I not signed up through that link, I would have signed up on the NetFlix website directly.
As a marketer in real life, I question NetFlix's approach here and will be curious to see if the trend to such referral offers continues to be accepted as social gaming matures. Marketers are still trying to figure out how to best use social networking, so expect some changes on this front.
Also, as social gaming competition grows, one area they will also be competing is for these referral dollars. For example, NetFlix might find it makes sense to offer a smaller referral fee but include more social games. The net effect is continued shrinking profits.
Better Games
The future of social gaming is not going to be with cheap throwaway games. As I wrote yesterday, these games currently don't compete with our leisure time because the gameplay sucks. I'll play at work, but not at home.
Cheap games are also not going to steal all the development dollars because increased competition is going to make such investment less profitable. To be successful, developers are going to have to create better and better social games.
The cheap game works right now only because the market is emerging. As it matures, we are going to see games like Sid Meir's Civilization on Facebook which offer radically better gameplay. We might even one day see a decent MMO developed on that platform.
And yet, the pool of dollars and profit margins aren't going to be so fantastic that we see developers ignore other markets.
There is more money in Console games than PC games, but that didn't kill the PC market.
And if I'm being blunt, I don't really think the case has been made that there are more dollars to be had in social gaming than the traditional PC gaming market. Despite the 80 million Farmville users, I think "gamers" are simply willing to pay more than the "mainstream" Facebook users.
Edit: I wrote this in the comments, but I'll include it here because I think it's a solid prediction.
I think what is most likely in the MMO space is that we'll see a trend towards Facebook Plugins that complement but don't replace the actual game.
For example, Blizzard creating a Facebook plugin for WoW. The goal being to synch your real life network with your in-game network of friends.
Such a thing wouldn't mean you could play WoW at work (you would still need WoW installed), but perhaps you could check the Auction House, Guild Calendar, Guild Forum, Guild Chat, and so forth while not "in-game" but in Facebook.
We are already seeing one step in this direction with the AH app for the iPhone.


text:
Oilers 1, Flames 4 – Game 41 – 2013-04-13 @ 8:00 PM MST – CBC
The fat lady has sung. It's over. The other teams are increasing their gap on us too much for there really to be a chance. Not only does Edmonton have to outpace the 9th, 10th and 11th place teams now, but they of course have to outpace their original target, Detroit, by 7 points (possibly 6, if we somehow picked up the tie breaker… gaining 4 more regulation or overtime wins on Detroit in the process). This just isn't going to happen in 8 games. That basically means that not only does Edmonton need to be perfect, but Detroit needs a monumental loss and needs to completely fall apart. Let's also throw in the fact the Oilers have been struggling to win put a string of wins together all season (although they did win 5 in a row leading up to this 4 game losing streak). I do expect a win tonight for the Oilers, which will mislead some people into thinking that maybe this team still has what it takes to make the playoffs… they just don't. It takes a lot for me to give up on the season's playoff hopes, but I have now. I'll still watch the games now though and hope for all the wins they can get, even if their draft position potentially gets worse.
Hemsky will be out for at least a week with a "nagging foot injury" from blocking a short a while back. That means more opportunity for Yakupv. With 8 games left and no hope in making the playoffs, I wouldn't mind seeing Yakupov with Hall and Nuge for a bit, or even with Gagner and Hall.. juggle the lines a bit to maximize offensive potential, and see what he can make with it. Of course it could be a disaster defensively too, but who knows.
Lines below have been confirmed. Khabibulin gets the start tonight, which I don't think is a bad idea considering Dubnyk played a pretty bad one the last game. But you aren't going to win too many games with one goal, so I don't pin the loss on him.. just saying it is a good time for some Khabi action.
Continue reading 'Oilers 1, Flames 4 – Game 41 – 2013-04-13 @ 8:00 PM MST – CBC'»


text:
A deck of cards with blue backs is shown, and all the cards are shown to be different. A spectator selects a card, and magically that card jumps to the top of the deck. But even more amazing than that, the entire deck becomes the spectator's card.
...And the cards had red backs the whole time!
Instructional DVD included!
Do you own this product? Write a review.


text:
Engineering has power
SKF is helping its oil and gas customers around the globe improve their reliability and efficiency with both products and services.
Houston, Texas is the hub for the global energy industry. The SKF Solution Factory, which opened its doors in Houston in 2010, is designing and engineering customized solutions for its local customers.
In this case, we find out about a hybrid solution designed to remotely monitor troublesome machinery in isolated locations across the country.
Jim Henry, Sales Manager - Traditional Energy Business Unit
Chuck Newmister, Account Manager - Traditional Energy Business Unit
Paul Barna, Business & Operations Manager - Predictive Maintenance Services SKF USA
See how SKF engineers have developed other industry or application-specific solutions.


text:
When we moved to Portland ten years ago next month, I brought with us several cases of wine. I'd been collecting bottles throughout the 1990s and just finished working for a Berkeley-based wine importer and retailer. In that position, I took advantage of the significant employee discount to stock the wine larder. "We won't get a chance like this again," I persuaded my wife. I bought a significant amount of wine, at least at the time. I wasn't making wine yet, you know.
Then came the great move north, with baby, cat and life's belongings. That meant engaging a moving company for all the big stuff and renting an air conditioned minivan to drive the family (baby) in cool comfort. And of course, the several boxes of wine. Meanwhile, Anthony the cat and I sweated it out driving our old VW in caravan with the rental. We thought we had A/C in that old heap, but it just turned out that San Francisco air was so naturally cool that we never noticed the A/C didn't really work.
Here in Portland, I still store my wine in the cellar in cardboard boxes, bottles upside down and close to the concrete floor to maximize cooling. There's no air conditioning in the house, but the cellar keeps pretty cool in all but the worst heat waves. I've worried about the wine collection, which I've continued adding to, evidence that we had, in fact, plenty of fine opportunities to buy wine. Then I try older bottles and they're great, and I don't worry so much. What do they say about cellar in Bordeaux rising slowly in the summer to the upper 60s farenheit (maybe higher)? Wine's fragile but not that fragile.
Of course, I've also had some cellar disappointments. Was that only because of my cellar conditions? Probably not. I know people with fancy, temperature controlled cellars who have off bottles. The one thing I've noticed is that I don't want to cellar half bottles all that long. Recently a half bottle of '96 Ch. d'Epire Savennieres was shot. That was nice wine in its youth and really shouldn't have had a problem making it to 14 years. Maybe it was the wine. Maybe it was my cellar. Maybe it was the half bottle format.
That d'Epire was the last "original" bottle I'd opened, before tonight. I'm down to about 2 cases of originals, those bottles hauled up here 10 years ago. What's left is a mix of 1980s and 1990s Bordeaux, Port, and Rhones, for the most part. That's what I was mostly into back then. Since then, I've gotten more into German, Italian (especially) and Oregon wine. I have old bottles of all those, but they were all procured since the move.
What did I drink tonight? A lone half of the 1995 Ch. Beaucastel Chateauneuf du Pape. I'd waited on this wine for so long because reports suggested it was highly tannic and needing time. Now at the 10 year mark in Portland, I'm thinking about those older bottles I still have and wondering if they really ought to be opened sooner than later. One, because I don't have a pristine cellar. But two, what the hell, it's been ten freaking years. What am I waiting for at this point?
The Beaucastel only reinforces this thought. The wine is mature, at least out of half bottle. Slightly oxidized upon pouring, it got more youthful in the glass, revealing a lovely mix of peppery cherry fruit and mushroomy, bottle sweet, earthy aromas. No brett here that I could find, no barnyardy or band aid notes. The wine is indeed tannic, and I'm sure this bottle would have dried out before the tannin resolved. Perhaps larger, slower aging bottles in colder cellars will live a lot longer. This bottle was delicious, with a great burst of flavor in the middle palate and a long finish. There's something difficult to describe but clearly obvious in a really good wine. This one had that quality. Enough words. Go try it for yourself, even if you have to wait a decade for it.


text: > Anyone know the difference in bandwidth/stream performance between a PC with > a Duron vs an Athlon cpu? Is there much/any difference? none: duron and thunderbird differ only in size of onchip cache (192K vs 384K - those are actual capacities; coppermine's is 256K). > I looked at the stream benchmark pages, but didn't find any benchmarks using > the Duron. here's one: Function Rate (MB/s) RMS time Min time Max time Assignment: 525.1589 0.0305 0.0305 0.0306 Scaling : 505.7214 0.0317 0.0316 0.0317 Summing : 553.1737 0.0434 0.0434 0.0435 SAXPYing : 523.9031 0.0458 0.0458 0.0459 that's for a duron/600, 128M PC133 sdram (cas2, I think - bios doesn't say). it's interesting to consider the "efficiency" of various cpu/northbridge/dram combinations. the above machine delivers 500-550 MB/s out of a theoretical (never-possible) 1066 MB/s: 47% efficiency. good old PII/bx/PC100 boxes would deliver 3-400 MB/s out of 800 MB/s: around the same efficiency. i840 machines seem to max out at around 550 MB/s out of 3200, for a record of around 17% efficiency! otoh, rumor has it that i850's deliver more like 1400/3200, back into the 40-50% range, and well into Alpha territory... of course, stream doesn't credit the machine for write-allocate traffic, which would "improve" the numbers by 3/2 or 4/3... regards, mark hahn.


text:
Sunday was April Fools' Day. Since it was also Easter and Passover weekend, you might not have been paying attention to some of the jokes passing around the interwebs. So, here's a quick roundup of some of the "fake news" flitting around the automotive world this weekend.
Aston Martin "Project Sparta"
Aston Martin has been on a bit of a tear lately with a product onslaught that is unusual for this tiny, hand-crafted automaker. Thus, when it announced that it's unveiling a monster truck program called "Project Sparta," it gives you pause. Especially when it's supposed to be based on the upcoming DBX SUV.
The official press release says the monster truck will get the 6.5-liter V-12 engine designed for the Valkyrie AMR Pro, producing 1,100 bhp. The press release goes on to state Project Sparta will compete in all 2019 Monster Jam events.
When I saw this come through the wire, I automatically assumed it was an April Fools' joke because of the dateline, which was April 1. What makes this even funnier, several news outlets, which will remain nameless, have been reporting it as real news.
Honda Sixth Sense
Living in Chicago, I see signs on sidewalks before an intersection that say "Look Up" to give walking texters a cue to take their eyes off their phones and actually look both ways before crossing the street.
So, Honda Sixth Sense doesn't seem that farfetched.
The idea is to help people stay alert once they leave their vehicles, and it includes features such as sidewalk departure alert, a 360-collision system and a personal avoidance system.
Ostensibly, this April Fools' joke is meant to call attention to Honda safety tech that really does exist for vehicles: Honda Sensing.
Lexus Genetic Select
People use genetic testing these days to find everything from ancestors to specific foods they should be eating. So, why not let it help you buy your next car?
Lexus teams up with 23andMe, a DNA genetic testing and analysis company, to produce this futuristic look at car buying.
Spit into a tube, and 48 hours later, you get a car designed for you and you alone – seriously, you have to lick the steering wheel to start it. Other genetically designed features include cup holders sized for your caffeine intake, tinted windows that prevent freckling and a windshield with your eyeglass prescription.
Unlike Aston Martin and Honda, however, Lexus wants to make sure you know they're kidding with the tagline: Imaginary technology. Funny bones not hereditary.
McLaren Precision
This one is less an April Fools' joke and more an example of an automaker making fun of itself.
McLaren is well known in the auto world for its precise craftsmanship and driving ability. So, in a series of tweets, McLaren "shows" what life is like at the company – so precise that the employees measure everything every day and do everything in sync, and when the water levels in the lake drop by 0.01 mm, panic ensues.
Luckily, everything is hashtagged #April1st, so we know that the company doesn't take itself that seriously after all.
Tesla is Bankrupt
There has been a lot of speculation about whether Tesla will be able to overcome production and cash hurdles, with many speculating how much longer the company will be able to hang on.
So, it's good to see that founder and CEO Elon Musk can have a sense of humor about his company's potential demise.
In a series of tweets on April 1, Elon Musk announced that Tesla was bankrupt and has all the chapters of bankruptcy, including Chapter 14 and a half ("the worst one"). Then he posted a photo of himself "passed out" in front of a Model 3 surrounded by "Teslaquilla" bottles.
Clearly, Musk is laughing at the naysayers and encouraging us to do the same. He ends his tweet storm with the phrase: Happy New Month!
Did we miss any auto-related April Fool's jokes? Be sure to tweet them to us at @automatters or @jillciminillo, and we'll add them to our list with credit to the sender.


text: Share: Comments Print July 6, 2014 at 12:35 PM Cougar found in Portland backyard euthanized Posted by Nick Provenza PORTLAND (AP) — Oregon wildlife officials have euthanized a cougar that was captured in the backyard of a Portland home. Oregon Department of Fish and Wildlife officials made the decision to euthanize the animal late Friday. The decision was made for public-safety reasons because the animal had become used to the city and had lost its fear of people, officials said. Residents called police just before 3 p.m. Friday to report the cougar sitting in a tree in a densely populated Portland neighborhood. After the cat spent three hours in the tree under police monitoring, wildlife officials tranquilized the animal with a dart and safely removed it from the tree. The cougar was placed in a cage and euthanized awhile later. Residents have reported multiple cougar sightings in Portland in recent days, and officials said it might have been the same cougar. One resident reported her cat had been killed by an animal — the only thing that remained of the pet was the cat's tail and a paw. Residents also reported cougar sightings in Hillsboro, 20 miles from Portland. In March, Oregon wildlife officials euthanized two cougars in Eugene — the animals were blamed for killing two goats and several chickens. The Department of Fish and Wildlife has said older cougars are not good candidates for being relocated to zoos or other facilities, because relocation could create territorial conflicts among the big cats and spread disease. The state does relocate cougar kittens. Under Oregon statute, landowners experiencing damage by a cougar may kill the offending animal without a permit from state wildlife officials. Comments | More in General news | Topics: cougar, euthanized, Portland


text:
Join Oxford Tour guides for a tour of Oxford that includes a visit inside Christ Church. Christ Church is one of the most well known of Oxford's ancient colleges with its iconic dining hall and cathedral. This tour is of special interest for fans of Harry Potter and Alice in Wonderland with the links to the films and the books. Then we will see the main highlights of Oxford and discover its glorious architecture, colourful history and traditions. The tour starts at Christ Church Memorial Garden gates in St Aldate's Oxford at 2.00pm for 2 hours every Thursday,Friday and Saturday. Entry to Christ Church is included in the ticket price and is subject to availability as colleges are working educational institutions and subject to closure at short notice for functions or other university business. If closed we will try to ensure a visit to an alternative college. Check the website for more details or alterations to the schedule or additional tour dates www.oxfordtourguides.co.uk.
All guides are qualified Blue or Green badge guides so you can be sure your visit will be enjoyable and informative.
This tour is offered in partnership with Walking Tours of Oxford.


text:
Cyprus will require up to 10 billion euros ($13 billion) to refinance its banks, severely affected by the euro zone debt crisis and exposure to Greece, according to a draft deal with international lenders seen by Reuters on Friday.
The deal, contingent on approval from euro zone finance ministers and national parliaments, also states that the objective of the adjustment program with the Mediterranean island is to achieve a primary balance of 4.0 percent of GDP in 2016.
Continue Reading Below
"Noting that the European Banking Authority (EBA) deadline of 30 June 2012 has been missed by two banks and that public capital support has already been provided to one bank, while the State itself is under financial stress, a bank support facility of up to EUR <10> billion is foreseen under the program, which will also cover potential future capital needs, determined on the basis of a top-down capital exercise, as well as potential resolution costs," the draft deal obtained by Reuters states.
The exact amount per bank would be determined in a due diligence exercise, the report said, while brackets surrounding the recapitalization needs suggested it could be subject to change.
Earlier on Friday, Cypriot Central Bank governor Panicos Demetriades said the amount was an estimate, pending assessments from consultants expected next week.
The document also said the Cypriot central bank would direct all banking groups to increase their minimum Core Tier 1 capital ratio - a measure of financial strength - to 9 percent from 8 percent by December 2013.
A process of on-going fiscal consolidation would seek to achieve a 4.0 percent of GDP primary balance in 2016, "and maintain such a level thereafter", the document stated.
Employees in the public sector would received a scaled reduction in pay from between 6.5 and 12.5 percent, it said.
Cyprus sought aid from the IMF and the EU in June after its banks reported significant losses on a restructuring of Greek debt earlier in the year.
Media reports have suggested that Cyprus's total bailout needs, including fiscal requirements, could reach 17.5 billion euros, virtually the equivalent of its gross domestic product. ($1 = 0.7689 euros)
(Reporting By Michele Kambas; editing by Ron Askew)


text: Hi David: I wasn't challenging you, I just had trouble understanding some of what you were saying. David Kewley wrote: > Thanks for your challenges, Joe. Let me give you a bit of my background. > > I am at this moment building a NAS server, and am working to enable and test > xfs on RHEL4, for a ~8TB data volume. I *want* to try xfs on RHEL4, and I > hope to use it in production if I can satisfy myself that it's the right > choice. Use FC-3++ and install with the xfs option. This will allow you to format your large area as either ext3 or xfs. > I get challenged by my colleages to justify straying from the default > filesystem (ext3) that RH supports. I hope to give them good reasons, > because so far I like the feel of xfs (I have used it in a couple of other > projects). The final choice is mine, but I feel a responsibility to answer > my colleagues' challenges. > > > > The thread has gotten too tangled, so I'm going to drop most of it and make > some short statements etc. instead. > > You say xfsdump works, as if regular dump doesn't. Dump *does* work. What is > so much better about xfsdump? Actually I was being a bit flippant when you asked what was meant by xfsdump working. Guy Coates mentioned that ext3 had some issues. I have had problems in the recent past (early february) with a drive that required some dumps. This disk had both xfs and ext3 file systems. I was able to get reads of some of the partitions. I could not recover the ext3 file system no matter what I tried (dump and quite a few other things). I was able to recover the xfs file system fairly easily. YMMV. Mine did. > I'd really like to see comparisons of TODAY's xfs with TODAY's ext3, using > whatever tests or comparisons you find most meaningful. Last I checked, my systems are running todays versions of everything. I don't necessarily consider steaming bits in CVS/subversion to be todays bits. > I'm not very > interested in benchmarks or application tests from the past. I am making a > choice between xfs and ext3 today, not last year, and given that ext3 is > claimed to have improved very recently, I want to see if those improvements > change the balance. Sounds like you need to take real programs, do real runs, and make real timing measurements. > Given my current work, I may have some (artificial) benchmarks in a week or > so. I would very much welcome suggestions about what to try, especially > given yours (and other list members') expertise in this area. I would suggest that you get the applications list from your users. As many have stated in the past, and many will again state in the future, the only meaningful benchmarks are your real codes. Anything else generates waste heat in the universe. > RHEL4 beta versions were available for public download starting 9/27/04; > interested parties could have started making detailed comparisons then. > > Even though I wish xfs was supported in RHEL4, I'm not convinced that RH's > choice *not* to support xfs is ill-considered or short-sightedly > self-interested or done only out of competitive considerations. If you read the forums as you pointed out later, you will note that there has been a large chorus for quite some time about this. Redhat's response to this chorus has been "wait, ext* will get better". Yes, it has gotten better, but no, this is not what the customers asked for. Whether or not it is ill-considered is a personal opinion. I believe it to be. Self-interested it most definitely is (remember what it invests in). All companies must, by definition if they plan to exist for any length of time, be self-interested. > I find the > argument reasonable that RH chose to stick with ext3 because they believe it > meets all their customers' needs, I am astounded... when the customers in the threads you mention, and in the preceding threads made it clear over the last few years that it did not indeed meet their needs, and can they please have support for something that does ... I don't think that is a reasonable argument that what they provide is good enough and meets needs, when clearly specific large customers are asking for something different. > and they don't want to invest in talent to > support other enterprise filesystems for major support-purchasing customers. Again, if small one-man distros can support the system, the argument rings hollow. > > In particular, see this thread and its continuation in the October archives: > > https://www.redhat.com/archives/nahant-beta-list/2004-September/msg00049.html > > Even if you don't read anything else from this thread, check out these two > posts from Arjan van de Ven, which quite forcefully presents his position on > ext3 versus xfs: > > https://www.redhat.com/archives/nahant-beta-list/2004-September/msg00058.html > https://www.redhat.com/archives/nahant-beta-list/2004-September/msg00057.html > > If you believe he's misguided, argue with what he wrote. :) Don't need to. This has been debated in various threads for the last 4+ years. Ext3 will continue to improve, and it is probably good enough for some section of users. For others, who need what xfs provides, ext3 is not sufficient. [...] >>>Yup. They don't have to support it, which is likely why they don't >>>bother disabling it. :) >> >>Oddly enough, it works quite well in FC. Imagine that. They can >>have their cake and eat it too. Without spending time/money/effort. >>Other distros are doing it, and they are too in FC-x. >> >>Only they choose not to in RHEL4. Obviously support has nothing to >>do with it (FC-x is a beta program for RHEL, and you need to fix your >>customers bug reports to make it a useful program). > > > How can you say, "Obviously support has nothing to do with it"? I don't get > that. They have major customers buying expensive support for RHEL. They > offer no paid support for FC. If they choose, they can ignore bug reports on > FC xfs. https://bugzilla.redhat.com/beta/show_bug.cgi?id=150427 http://marc.free.net.ph/message/20050310.085034.9d849d03.en.html Redhat pushes them off to the fs maintainers, as they should. Bugs ignored make for bad practice. If it were a support issue for RH, it should be a support issue for SuSE, for Mandrake, for Debian, for .... But it isn't. > > David -- Joseph Landman, Ph.D Founder and CEO Scalable Informatics LLC, email: landman at scalableinformatics.com web : http://www.scalableinformatics.com phone: +1 734 786 8423 fax : +1 734 786 8452 cell : +1 734 612 4615


text:
Jan. 28, 2006
Complete Resultsresults.html
CAMBRIDGE, Mass. - MIT women's swimming and diving split its annual tri-meet against NESCAC rivals, Amherst College and Connecticut College. While the Engineers topped Conn. College, 166-122, they were defeated by national power Amherst, 173-116, to complete the dual slate with a 9-2 record.
Doria Holbrook swept the diving events for MIT. Although she failed to match her record-breaking performance from last week, two more NCAA qualifying marks ensures Holbrook's place at the national championships in March.
Holbrook authored Tech's only Gold medal performances as the Lady Jeffs dominated with a tremendous display of talent and depth.
Kate Thornton delivered a strong swim in the 1000 free, but her final mark of 10:42.12 managed only a third-place finish. Amherst's Julie Kim won the event in 10:39.11. Thornton just missed on another win in the 100 breast, falling by .08 to finish second with a time of 1:10.38.
Rookie Kristen Felch had a solid race in the 200 fly; but again endured a narrow defeat as her final split of 2:11.58, was less than two-tenths off the winning mark.


text:
Senator John Thune – 'Sequestration Will Happen' [AUDIO]
March 1st is the deadline for our elected leaders in Washington D.C. to get a deal done to avoid sequestration. South Dakota's junior Senator believes it will happen. John Thune took some time during the President's Day Holiday break to see his constituents and returns to work with an uphill climb.
Senator Thune says his chamber will get to vote on a bill prior to the deadline, but it will have little in common with the already-passed House legislation. The Republican-led House has mostly spending cuts in their edition while the Democrats in the Senate want more tax increases.
John Thune Explains What Will Likely Happen With Sequestration Legislation
Sequestration is a legal term which means the action of taking legal possession of assets until a debt has been paid or other claims have been met. So instead of choosing which cuts to make, the budget reductions will be arbitrary. Thune says the Department of Defense will take on 50 percent of the cuts, but Defense only composes 20 percent of the budget. Most federal spending is on entitlement programs and the sequestration measures don't even touch them.
John Thune Predicts That A Deal Won't Get Done
Thune also says the whole concept of sequestration is unnecessary because federal agencies should have enough latitude to reduce their budgets by 2 percent. President Obama according to Thune is cherry-picking departments to drive an emotional point that spending cuts will hurt too much.
John Thune Says Departments Can Easily Find Cuts


text:
What if Hellboy was a silent film star, Iron Man was a World's Fair exhibit, and Galactus was in cahoots with the famed eccentric Rotwang? If any of these unlikely scenarios came to pass, they would certainly look a lot like Grégoire Guillemin's Art Deco crimefighters. Here's a sampling of his many stylish supes.
[Greg Guillemin via Behance via Retronaut]


text:
Home Page
|Airborne particulate matter is a serious threat to both our health and the environment. It is also the primary cause for visibility degradation in urban metropolitan areas. We present the design, implementation, and evaluation of an optical technique to measure visibility using commodity cameras and other sensors commonly found on mobile phones. more..
|Walking is one of the most common activities available to maintain a healthy lifestyle. Accurate detection of walking speeds in free-living conditions would provide a critical parameter to characterize intensity. We present the use of a hip-mounted inertial sensor system that transmits triaxial accelerometer and gyroscope data to a nearby phone. In doing so, we aim to provide a point-of-care solution to the problem of estimating walking speeds. more..
|This is a class project (for CSCI 546) done by Sebastian Goodman and Gokul Ramachandran. We created a robotics platform by combining the iRobot Create with the Android Nexus phone. In a nutshell, Android Phone + Create = Powerful mobile robot platform. more..
|We aim to explore gesture recognition paradigms for portable devices such as Mobile phones for non contact interaction. Our goal is to create an intuitive alternate communication interface using movements of the human body. more..


text:
Leeds committed to tackling malnutrition in older people
Health and social care professionals plus representatives from the voluntary sector in Leeds attended an awareness raising event today (17 October), aimed at reinforcing the link between the wellbeing of older people and good nutrition and hydration.
The second Thirst for Nutrition conference delivered key messages to frontline staff to help them better understand the different nutritional needs of older people, and the processes that are in place to support these needs in health, social care and community settings.
At the first Thirst for Nutrition conference last year, organisations were invited to sign up to the Leeds Food Consensus. This is a pledge that commits organisations to do everything that they can to meet the nutritional needs of older people in their care, and protect their health and wellbeing as well as ensuring that they are able to maintain their independence.
Councillor Lisa Mulherin, executive board member for health and wellbeing re-confirmed Leeds City Council's commitment to the Leeds Food Consensus by re-signing the pledge at the event, which she opened. She said:
"I was shocked to learn that at any one time in Leeds there are around 27,500 people with malnutrition. This is a statistic that often gets overlooked because of the focus on tackling the nation's obesity problem.
"I am absolutely committed to working with the NHS and our other partners across the city to ensure that older people are kept nutritionally well. This means that we will identify and take positive steps to help people in Leeds who are vulnerable and at risk of becoming malnourished.
"This conference will help people that work with and take care of older people to understand their needs, and also demonstrates our commitment with the NHS and other partners to working together on this important issue."
Philomena Corrigan, director of delivery and service transformation for NHS Airedale, Bradford and Leeds commented:
"When people talk about dehydration and malnutrition there is a widely held view that these conditions only affect people living in less developed countries.
"However this is not the case and every year people in Leeds, especially older people, are admitted to hospital as a result of dehydration and malnutrition. That is why we are working with Leeds Community Healthcare NHS Trust and Leeds City Council in developing resources and raising awareness of this issue.
"We hope that this will mean people in our city will receive appropriate care and support so that they can avoid falling ill through something which is preventable."
The conference helped health and social care staff to:
• understand the different nutritional needs of older people in Leeds;
• understand consistent key nutritional messages for older people;
• be aware of the processes in place to support older people with nutritional needs within health, social and community settings;
• be aware of appropriate signposting opportunities, if there are concerns about the nutritional needs of an older person; and
• identify potential training opportunities for staff and their teams.
Case study
An older person was referred by her GP for dietetic intervention in her own home due to weight loss following surgery.
The assessment found that she had been finding it difficult to eat following bowel surgery several months earlier. She was unsure what she could and couldn't eat and this meant her diet was limited and not meeting her requirements. She was also not drinking enough.
She had ongoing problems with her dentures and needed regular dental treatments but struggled to pay for the taxi trips. Going outside was difficult as she had lost her confidence and was afraid of falling. She felt lonely and socially isolated which was causing anxiety.
The dietitian advised the lady about balanced meals, provided her with meal and snack ideas and ways to meet nutritional and fluid requirements. She also advised her about iron deficiency anaemia.
The dietitian used the Infostore website to find out about neighbourhood network schemes to help reduce isolation. The lady was put in contact with a befriending scheme, which resulted in regular visits for 'a chat over a coffee', and social events including parties and lunch time outings. They also provided lifts to the dentist and back which reduced anxiety and helped her financial situation (and meant she had more money to spend on food!).
Dietetic intervention plus support from the voluntary sector resulted in improving the lady's general wellbeing and helped her to regain the weight she had lost.
She said: "Thank you so much for putting me in touch with my local neighbourhood network scheme. I feel much more confident and have a social life again."
Additional info
The Thirst for Nutrition – Next Steps conference took place on Wednesday 17 October 2012 at Shine, Harehills Road, Leeds, LS8 5HS.
For media enquiries, please contact;
Claire Macklam, Leeds City Council press office (0113) 395 1578
Email: email@example.com


text:
Michael Del Rosso of Washingtonville, NY (pictured above, left),
and Francesco Criscuolo of Middletown, NY, spend a lot of time in
the science labs at Mount Saint Mary College in Newburgh, NY.
The senior students are pursuing their dreams of becoming
doctors. At the Mount, 33 percent of freshmen aim for health
professions, including nursing, pre-medicine or pre-veterinary.
A top ranked financial professional, Mary Moran Deatherage hired
Mount student Nure Useinoski as an intern in her Little Falls, NJ
office. The accounting major from Middletown, NY, who will earn an
MBA in 2013, was a "terrific asset" to her team at Morgan Stanley
Smith Barney, said Deatherage.
No matter the situation or emergency, Mount grad Karl Brabenec
(pictured above, right) says he has "the best job ever" as Deerpark
Town Supervisor. He oversees a town of 8,500 at the rural
intersection of New York, New Jersey and Pennsylvania. Brabenec's
passion for politics began in his teen years and was fueled by his
studies and experiences as a Mount student.
These stories and more appear in the current Mount Saint Mary
College magazine. To read and view photos, visit www.msmc.edu/magazine.
Also in the magazine: The Mount is implementing strategic
technology investments across the curriculum, with SMART
classrooms, patient simulators, ecology simulation software,
digital editing equipment. Technology even finds a place in
religious studies and philosophy, bringing whirling dervishes to
the classroom through the internet.
The Mount will hold an open house for prospective students on
Sunday, January 29. For more information or to register visit www.msmc.edu.


text:
Designed by Peggy Riel, the "Symphony" collection is inspired by natural forms like tree branches or tall blades of grass that blow in the wind every which way. These unstructured elements are balanced by the updated square and oval geometric shapes into which they are formed in order become functional. All of these features work in harmony like a symphony.
"Many of my designs are inspired by elements in nature. The challenge in creating successful products is to form interesting design elements into functional items while maintaining the beauty of the original inspiration."
Peggy Riel
Symphony Round Basket$49.99


text:
So my questions are;
- Can 2 CR2016s be used in the T3 and T3B?
Have you done any testing if 6Volts does not damage the T3s?
From the pictures, the brightest setting of 11 seems like it should be enough but thought I would ask. Thanks.
FN Five-seveN, FN PS90 & P90, and FN Weapon Systems Discussion Group
Moderator: M1P90
Users browsing this forum: No registered users and 2 guests