text:
Games Programming with Cheese: Part One
Rob Miles
Department of Computer Science, University of Hull
Updated: March 2006
Applies to:
Windows Mobile 5.0 for Smartphones
Microsoft .NET Compact Framework version 2.0
Microsoft Visual Studio 2005
Summary: An introduction to the games program on the Windows Mobile powered Smartphones that use the .NET Compact Framework version 2.0 and Visual Studio 2005. The download code sample contains several downloads of the project at different stages of development. (23 printed pages)
Download Games_Programming_With_Cheese_Part1.msi from the Microsoft Download Center.
Adding Cheese and Images
Creating a New Project
Adding an Image to the Project
Drawing Some Cheese
Performing Animation
Adding Speed Control with Menu Buttons
Adding a Bat
Implementing Double Buffering
Moving the Bat
Welcome to the world of programming with cheese. This series of articles will provide instructions about how to make games for Windows Mobile powered Smartphones. There are a few ground rules:
- The games all use the Microsoft .NET Compact Framework version 2.0, so you'll need a device that is running Windows Mobile 5.0.
- The games do not use any of the games libraries. Instead Windows Forms will be used.
- Each game should take a short time to write.
- Every game must involve cheese.
This is supposed to be a bit of fun and will develop over time. You are going to add features one at a time so that at the end you have some little games and a set of tools that can be used to create other games. The techniques this article uses have been chosen for simplicity.
Oh, and I'm sorry if the cheese thing starts to grate (groan); it is just that I like cheese.
Getting Started
You will need Visual Studio 2005.
You don't actually need a phone handset because you will be using techniques that make it possible to do all the work on the emulator provided by Microsoft Visual Studio 2005. Of course, if you have a phone, it will make things much more interesting. You will need one that supports the .NET Compact Framework. Only the most recent Windows Mobile 5.0–based Smartphones work with the .NET Compact Framework version 2.
If you want to deploy programs to an actual device, you need ActiveSync version 4.1.
All of the examples for this project will be in C#, so you may find an understanding about C# programming to be helpful.
Adding Cheese and Images
To start, you are going to create a simple program that only displays a piece of cheese on the screen, as shown in Figure 1. Later, you will move the cheese around the screen, add a piece of bread to hit the cheese with, and set the stage for creating a cheese-oriented breakout game.
Figure 1. A piece of cheese
You can use this piece of cheese, which is supplied as part of the download code sample. (Alternatively, you can use whatever image you choose.) The original image was quite large—around 200 pixels or so wide. This size is far too big for the original 96 dpi Smartphone screen, which gives you 176 x 220 pixels to play with. This image is 25 x 23 pixels in size. If you don't already have an image processing program that you like, you can use the latest version of Microsoft Paint that Windows XP supplies to resize images.
The picture was originally stored as a .jpeg image and was 594 bytes in size. The same image encoded as a .gif started out twice as large at 1.18 KB, so the number of colors was reduced to 16 and some tidying was done to get the image down to 239 bytes. Making the images smaller won't greatly affect the program speed when it runs—because you will be using bitmaps inside the program itself—but it will reduce the size of the program file.
The reduced size of the program file is especially important if you are writing a program to work on a range of devices that each have different screen sizes. In this case, you might want to produce different sized images of each of the game components and then make the program select the most appropriate one when it runs.
Creating a New Project
For the purpose of these exercises, you should use Visual Studio 2005 Standard Edition.
You have your cheese, so now you need to get it onto the screen. First you need a Visual Studio Smartphone project to put everything into.
To create a new project
- Open Visual Studio 2005.
- On the File menu, click New Project. The New Project dialog box appears. You need to create a Windows Mobile 5.0 Smartphone device application, as Figure 2 shows.
Figure 2. Creating the Bouncer solution. Click the thumbnail for a larger image.
In this example, the solution's name is Bouncer and it is saved in the default Visual Studio 2005 Projects directory. You can name the project a different name and save it in a different location on your computer's hard drive disk.
- Press OK to create the project. Figure 3 shows a new project that contains a single form, which is named Form1.cs.
Figure 3. The new project in Solution Explorer
Running the New Project
You should run your new project before adding items to ensure that you are happy about the way that Smartphone programs are made to run. You can select the target device or emulator in Visual Studio, as shown in Figure 4.
Figure 4. Selecting the target device
Note You should only select Windows Mobile 5.0 Smartphone Device if you actually have a physical device that is connected to the computer by means of ActiveSync.
To run the program, select Start Debugging on the Debug menu. If you are running the program on a physical device, you will be prompted by the device to confirm that Visual Studio should run the program, as shown in Figure 5.
Figure 5. Message to confirm the program should be run on a Smartphone. Click the thumbnail for a larger image.
When prompted to confirm, press Yes to run your program. This message appears each time you deploy a new program on the device. Some library files are also loaded onto the device the first time you run a .NET Compact Framework program, which may also result in the confirm message being displayed.
Note Your Smartphone may have been locked to prevent unauthorized programs from being run on it. In this case, you have to unlock the phone. For phone unlocking procedures, you should consult your service provider. For more about the Smartphone Application Security Model, see the article, A Practical Guide to the Smartphone Application Security and Code Signing Model for Developers.
Figure 6 shows the new project running on the emulator.
Figure 6. Running the new project on the emulator
Your program on the Smartphone will not have an exit button, so to stop the program from running, you need to click Stop Debugging located on the Visual Studio 2005 Build menu.
Note Don't turn off the Smartphone emulator to stop your program. This action stops the program—and the emulator itself, meaning that the next time you run your program, you'll have to wait for the emulator to start running before Visual Studio 2005 can deploy and execute your program. Using the Stop Debugging command in Visual Studio works best because it only stops the program.
Adding an Image to the Project
Next, you will want to put all of the resources for the program into the program itself. You need to add the cheese image to the project.
To add an image to the project
- Copy the cheese image into the same directory as your project source files.
- Add the image file to the project by right-clicking the Bouncer item in Solution Explorer, selecting Add, and then selecting Add Existing Item, as shown in Figure 7.
Figure 7. Adding an existing item
This step causes the Add Existing Item dialog box to appear.
- Change the file type selector at the bottom of the Add Existing Item dialog box to select the image files. The cheese image file should be visible. Select this file.
- Click Add. The image is added to your project, as shown in Figure 8.
Figure 8. Project with the cheese.gif image added
The image file is now part of the project, but it is not a part of the program. To do this, you must make the cheese.gif file an embedded resource.
To add an image to a program
- Right-click the image's icon in Solution Explorer, and then click Properties from the menu that appears.
- In the Visual Studio Properties pane, change Build Action from Content to Embedded Resource. The image becomes part of the assembly, so only the single executable file needs to be deployed. The properties for this project should match those that are shown in Figure 9.
Figure 9. Project with the embedded cheese image
Using the Embedded Resource
The cheese image is now inside the assembly file that holds the executable file. When the program runs, it must get the image file out of the assembly file and make it into an image that can be displayed on the screen. To do this, the program must first get a reference to the assembly itself, as the following code example shows.
System.Reflection.Assembly execAssem = System.Reflection.Assembly.GetExecutingAssembly();
The System.Reflection.Assembly.GetExecutingAssembly method returns an assembly reference, which is set to point at the currently executing assembly. After the program has a reference to the assembly, it can use the reference to get elements that are embedded within it, as shown in the following code example.
cheeseImage = new System.Drawing.Bitmap( execAssem.GetManifestResourceStream(@"Bouncer.cheese.gif) );
The GetManifestResourceStream method fetches the specified resource from the assembly file and supplies it as a stream. The method is given the name of the item that is required and also the name of the namespace that contains it—in this case, the "Bouncer" namespace. One of the constructors for the Bitmap object (which is the item to be drawn) accepts a stream and returns a bitmap.
Note that you need to declare a member of the Form1 class to hold a reference to the image that is loaded. The reference must be of type Image. In total, your code should look like the following code example.
private Image cheeseImage = null; public Form1() { InitializeComponent(); // Get the assembly so you can get the cheese out of it. System.Reflection.Assembly execAssem = System.Reflection.Assembly.GetExecutingAssembly(); // Get the cheese. cheeseImage = new System.Drawing.Bitmap( execAssem.GetManifestResourceStream(@"Bouncer.cheese.gif") ); }
Note that the previous code example does not handle what happens if this process fails, but for now it will do.
Drawing Some Cheese
The program now loads the cheese image when it starts. Next, the program must draw the cheese on the display. Windows programs redraw their screens in response to paint events. The developer supplies a paint method that is called by Windows whenever the screen needs to be redrawn.
To capture the paint event and direct it to a method
- In Visual Studio, right-click the form inside the Smartphone simulation in the form designer, and then click Properties. You should now be able to select the Form1 properties information, as shown in Figure 10.
Figure 10. Form1 properties
- Switch to the events by clicking the yellow lightning bolt icon. You should see all of the events that the form can generate and to which you can attach handlers, as shown in Figure 11.
Figure 11. Events in the Properties pane
- Scroll to the Paint event, and double-click Paint. Visual Studio 2005 creates an event handler method for you and places your cursor inside the method in the code designer.
- Add the following code example to make the method draw the image.
private void Form1_Paint (object sender, System.Windows.Forms.PaintEventArgs e) { e.Graphics.DrawImage(cheeseImage,0,0); }
If the operating system on the Smartphone needs to redraw the form, it raises a Paint event on the form. The method runs and is supplied with two parameters: a reference to the object that sent the message and a reference to a PaintEventArgs object. The PaintEventArgs object contains a reference to the Graphics object that is drawing for this event. The Form1_Paint method calls the DrawImage method on that object and gives it a reference to the image to be drawn and its position on the screen. The program draws the cheese at the top left corner of the display (coordinates 0,0), as shown in Figure 12.
Figure 12. The program draws the cheese on the device's screen
If you run the program on the emulator, you should get the same result—the program draws the cheese.
Performing Animation
The program can now draw cheese on the screen. Next, it has to move the cheese by repeatedly drawing and redrawing the cheese image at different positions. If the program does this fast enough, it creates the illusion of movement.
Moving Objects on the Screen
The following code example creates a method, named updatePositions, that moves the cheese. At the moment, the cheese will only move down (and to the right).
/// <summary> /// The X coordinate of the cheese drawing. /// </summary> private int cx = 0; /// <summary> /// The Y coordinate of the cheese drawing. /// </summary> private int cy = 0; private void updatePositions () { cx++; cy++; }
The game program uses cx and cy to keep track of the location of the cheese. At the moment, their values just get bigger each time the update is called, which causes the cheese to move down and to the right. The program uses these values to draw the cheese in a different location each time, as shown in the following code example.
private void Form1_Paint (object sender, System.Windows.Forms.PaintEventArgs e) { e.Graphics.DrawImage(cheeseImage,cx,cy); }
Whenever the Paint method is called, the program redraws the cheese at the proper place.
Ticking Clocks
In the early days, a video game ran at the full speed of the underlying hardware—that is, it drew everything as fast as it could. The program is not going to allow this; instead, it is going to make the game run at a particular rate. The following are some good reasons for running the program at a particular rate:
- The program must control the speed at which things happen.
- The speed of the game must be the same—independent of the processor's speed in the particular device.
- The program must not use the entire processor's time by running at full speed and stopping everything else.
Fortunately, the .NET Compact Framework provides a way of managing the processor's usage in the form of timers. You can add a timer object to a form, so a particular method is called at regular intervals. This method has to update every aspect of the game. When the method completes, the game effectively stops until the next tick of the clock. The game clock ticks 20 times per second.
To add a timer to a form
- In Visual Studio 2005, open the Toolbox, and then find the Timer control.
Figure 13. The Toolbox showing the Timer control. Click the thumbnail for a larger image.
- Drag the Timer control to the component tray and place the control next to the mainMenu1 item. The component tray (located at the bottom of the form designer) should look like Figure 14.
Figure 14. The Timer control added to the form
Note Adding a Timer control to the form means that the processor is always active and that the device cannot go into a power saving mode. These outcomes are generally bad for battery life. For this reason, your game should disable the timer when the user puts the game into the background on the device. The game should restart the timer when the game again becomes active.
The Timer control does not add any indication to the form, but the control becomes part of it. You can adjust the properties of the Timer control by right-clicking the little clock in the component tray, which is located at the bottom of the form designer, and then by clicking Properties. The interval between ticks is originally set at 100 milliseconds, but you must change it to 50 milliseconds (to make 20 ticks a second). As shown in Figure 15, the timer's Enabled property is initially false, which indicates that the timer is off. For now, the Enabled property should be left as is because the timer must not tick until the program has loaded the image that needs to be drawn.
Figure 15. Adjusting the Timer control's properties
You can assign a method to a timer tick in exactly the same way as you assign a method to a Paint event. If you click the yellow lightning bolt icon in the Properties pane (as shown in Figure 15), the Properties pane shows the events that a timer can generate. If you double-click the Tick event, you create a method called timer1_Tick, which is bound to the timer event. Visual Studio places your cursor inside the method in the code view.
When the timer is enabled, this method is called 20 times per second. Initially, it is an empty method. You must change this method to update the position of the cheese and then force the screen to be redrawn.
Starting to Tick
When you created the timer, you didn't enable it because the timer1_Tick method may begin to draw the images before they have been loaded—causing the program to crash with the first tick. You should enable the timer after all of the images have been loaded. In the sample application in this article's download code sample, the timer is enabled in the constructor for the form, as the following code example shows.
public Form1() { // // Required for Windows Form Designer support. // InitializeComponent(); // Get the assembly so you can get the cheese out of it. System.Reflection.Assembly execAssem = System.Reflection.Assembly.GetExecutingAssembly(); // Get the cheese. cheeseImage = new System.Drawing.Bitmap (execAssem.GetManifestResourceStream(@"Bouncer.cheese.gif")); // Start the clock. this.timer1.Enabled = true; }
The constructor calls the Windows Forms supplied method to set up the form. This creates the timers and any other components that the program needs. Then, it loads the cheese image and finally the timer starts ticking.
Forcing a Redraw
Windows redraws the screen only when there is a need to. For example, on a desktop computer, the program redraws the screen when a window is maximized or the user changes its size. However, it is also possible to force a redraw by calling the Invalidate method on that window. A call to Invalidate asks the system to do all of the things that a Paint operation requires including calling the form's Paint event handler. You can place the call to the Invalidate method after the positions have been updated. The screen must be updated each time the timer event fires, so the calls are placed in the method that you bound to the timer events.
private void timer1_Tick (object sender, System.EventArgs e) { updatePositions(); Invalidate(); }
This is the sledgehammer version of the Invalidate method, which forces everything to be redrawn. If you make a version of the program with these changes, you should find that when you run your program, the cheese slides slowly down the screen and vanishes off the right corner. Drawing an image which is not on the screen will not cause a problem, but of course, it will not be visible to the player. You should also notice a bit of tearing as the object flickers during its redraw. This article addresses tearing in the Double Buffering section.
Going for the Bounce
Making items appear to bounce on the screen is simple. The program must hold the current direction the item is traveling in, and then, when a position value reaches the edge of the screen, reverse this direction value. In the first version, the position is updated by +1 when the cheese is moving forward and down and is updated by -1 when the cheese is moving backward and up. The improved version of the updatePositions method looks like the following code example.
/// <summary> /// The direction of movement in the X axis. /// </summary> private bool goingRight = true ; /// <summary> /// The direction of movement in theY axis. /// </summary> private bool goingDown = true ; private void updatePositions () { if ( goingRight ) { cx++; } else { cx--; } if ( ( cx + cheeseImage.Width ) >= this.Width ) { goingRight = false; } if ( cx <= 0 ) { goingRight = true; } if (goingDown) { cy++; } else { cy--; } if ( ( cy + cheeseImage.Height ) >= this.Height ) { goingDown = false; } if ( cy <= 0 ) { goingDown = true; } }
Note that this code example uses the width and height properties of the object and the screen, so any-sized cheese image can bounce around any-sized screen with no problems. Note also that this code example is fairly inefficient. The program is doing more sums than it needs to, and a clever developer could speed up this code a significant amount. However, the purpose of this article is to show the principles of the software rather than the best possible way to get high performance. If you replace the previous updatePositions method in the previous program with this one, you will find that the cheese bounces around the screen.
Adding Speed Control with Menu Buttons
The previous cheese program makes a block of cheese that moves at a rather sedate speed over the screen. At 20 frames a second and with a screen width of over 100 pixels, the cheese is going to take about 5 seconds to move across the screen, which would make for slow game play. Therefore, you can impose some control over the speed at which things move, which means that rather than updating the image position by 1 pixel on each timer tick, you can change the number of pixels that the image moves on each timer tick as shown in the following code example.
if ( goingRight ) { cx+=xSpeed; } else { cx-=xSpeed; }
By changing the value in xSpeed, the horizontal speed of the cheese can be increased or decreased. A similar value for y lets the vertical speed of the cheese change as well.
Speed Control Code
It might be fun to see how fast the cheese can move. The following code example updates the speed values.
private void changeSpeed ( int change ) { xSpeed += change; ySpeed += change; }
You can call this method when you want to update the speed. The value of the parameter gives the change of speed. If you make the value negative, this method reduces the speed.
Using Soft Keys
You can use the soft keys (which are located directly below the Smartphone display) to control the speed of the cheese. You need to provide menu text for them and then assign methods to the menus. In the form designer, click the space at the base of the form above the left soft key (the text Type Here appears), and then type the word Faster. Next, click the space at the bottom of the form above right soft key, and then type the word Slower. The user interface now has two menu buttons, as shown in Figure 16.
Figure 16. Soft keys
Note When you are writing Smartphone programs, do not add submenu commands to the left soft key. The Smartphone User Interface Guidelines indicate that the left soft key should have only one command on it (the most frequently required). The .NET Compact Framework 1.0 throws an exception if your program attempts to add command submenu items to the left soft key. The .NET Compact Framework 2.0 no longer throws an exception when you add submenu commands to the left soft key, but you should avoid adding them so your application maintains consistency with the guidelines and other Smartphone applications. You may use submenu items on the right menu button.
You can use Visual Studio to attach a Click method to each soft key, and when the user presses the soft key, the method runs.
To create the method for a soft key, double-click the menu text (Faster or Slower) in the form designer. The Faster soft key will increase the distance the cheese moves with each press, and the Slower soft key will decrease the distance. Now, you need to add calls to the changeSpeed method for each soft key, as shown in the following code.
private void menuItem1_Click(object sender, System.EventArgs e) { changeSpeed (1); } private void menuItem2_Click(object sender, System.EventArgs e) { changeSpeed (-1); }
When this program runs, the user can speed up or slow down the cheese by pressing the soft keys. In this program, the code does not restrict the values that are passed to the controlSpeed method, which means that if the user keeps reducing the speed, the value may become negative and cause the cheese image to move in a very strange way. You might find it useful to consider how you can correct this behavior.
If you run this version, you should find that when the speed is about five or higher, the movement starts to appear jerky.
Adding a Bat
Now that the program can display cheese that bounces around the screen, next you need to get a bat that you can use to hit the cheese. The program has to draw a second item—the bat. The user also needs to control it.
Drawing with Bread
Figure 17 shows the bread bat. The idea is that the user controls the bread to hit the cheese.
Figure 17. Bread bat
The program draws the bread on the screen in the same way as it draws the cheese. You simply add the image to the project and then have the code get it from the assembly. You also need to add two variables that control the x and y position where the program draws the bread. For the moment, the program draws the bread at the top-left side of the screen, as shown in Figure 18.
Figure 18. Bread and cheese
Flickering and Drawing
What Figure 18 doesn't show is the horrendous flickering that occurs when the program runs. The cheese and the bread flash on and off most unpleasantly. This flickering is due to the very primitive way that the program draws the screen. Every twentieth of a second, the screen is drawn with white, and then the two objects (bread and cheese) are drawn separately. This process is very visible and looks terrible. Thus must be fixed before proceeding any further; otherwise, nobody will want to play the game.
Implementing Double Buffering
Video games solve the flickering screen problem by a technique known as double buffering. The idea is that the program doesn't draw on the frame the user can see. Instead, it draws on a buffer in memory. Then, when the picture is complete, the entire picture is copied onto the visible screen. The copy process is very quick, and the flicker is removed.
In the case of the flickering game, you have to create another bitmap area, draw on it, and then copy the new bitmap into position. You have to modify the Form1.Paint method, as shown in the following code example.
/// <summary> /// Background buffer bitmap. /// </summary> private Bitmap backBuffer = null ; private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { // Make a new back buffer if needed. if(backBuffer==null) { backBuffer=new Bitmap(this.ClientSize.Width,this.ClientSize.Height); } using ( Graphics g=Graphics.FromImage(backBuffer) ) { g.Clear(Color.White); g.DrawImage(breadImage,bx,by); g.DrawImage(cheeseImage,cx,cy); } e.Graphics.DrawImage(backBuffer,0,0); }
The very first time that this method runs, it creates a back buffer (the backBuffer bitmap variable in the preceding code example) to draw into. Then, it uses the graphics context from that buffer to draw the bread and cheese. Finally, the DrawImage method of the form's graphic context is used to copy the back buffer into position.
If you use this draw method in your program, you will find that it hasn't removed the flicker. It has replaced a small amount of flicker with a large amount of flicker. The reason this technique doesn't work has to do with how Windows behaves when it redraws. When the program paints the screen, Windows fills the screen with the background color (in this case, white). Then, it causes a Paint event to put the game elements on top of the background. The program draws the pictures on the top of the cleared white screen. The result is a large amount of flicker.
The solution to this problem is to stop Windows from doing the redrawing. The program must override the method that normally clears the screen and must replace the method with one that does nothing. The method is OnPaintBackground, and you can override it as shown in the following code.
protected override void OnPaintBackground(PaintEventArgs pevent) { // Don't allow the background to paint. }
If you add this method to the Form1 class, you find that everything works as you expect—the cheese and bread smoothly move around the screen. Problems still arise when the cheese moves over the bread (it seems to cut a square chunk out of the bread as it passes over), but, for now, you have to use a workaround: ensure that the two objects never pass over each other. Later, you will see how to make the cheese slide smoothly over the bread.
Moving the Bat
Next, the program must move the bat around so the player can hit the cheese with it. This action requires the user to use the device's navigation pad as a joystick. All Smartphones have a navigation pad, and the navigation pads always interact with the program in the same way.
Key Events
When users interact with a Smartphone navigation pad, they are exposed to an application in the same way as when they press keys on the keyboard. Basically, when users move the cursor with the navigation pad, this action appears to the application as if the user is pressing a direction key. Normally, a program responds to a keyboard when users press and release keys—treating the press and release as a single action. However, when playing a game, users press the navigation pad in a particular direction and hold it—expecting the bat to move in that direction until the they release the navigation pad. The common behavior of treating the press and release of the key as a single action is not sufficient in this case.
To solve this problem, you have to understand how Windows Forms manages the keyboard. User actions on the keyboard generate events. These events become method calls in the form, like the timer events that make the game tick.
Usually a developer uses the KeyPress event. This event does exactly what you would expect. When a user presses and releases a key, the event is raised so the program can respond to it. In the case of a word processor program, the action might be to put the character that the user pressed into the document or perhaps to move the cursor. The KeyPress event can be bound to a method in the form, but, unfortunately in the case of this game, it doesn't provide the required control.
However, there are two other events, KeyDown and KeyUp, that are very useful. The first event fires when the user presses a key. The second event fires when the user releases the key. You can get into trouble with auto-repeat on some keys (where Windows makes repeated keystrokes when a key is held down), but my experience has been that the joystick does not behave in this way.
The program must to set a flag when the user presses the joystick in a particular direction (that is, when a KeyDown event is raised). While the flag is set, whenever the position of the objects is updated, the program moves the bat in the direction of the joystick. When the user releases the joystick and the second event is raised, the program clears the flag and the object stops moving.
You need to capture the KeyDown and KeyUp events in the same manner that you captured the other events on the form. These events include a member of the Keys enumeration indicating which direction the user moved the navigation pad. The possible values that the navigation pad generates are Keys.Up, Keys.Down, Keys.Left and Keys.Right. Figure 19 shows how the form event properties appear after the events have been captured.
Figure 19. KeyDown and KeyUp event handlers
When the events occur, the methods are called. The methods themselves are shown in the following code example.
/// <summary> /// Use the keyArgs reference as a flag. If it refers to a key event /// instance, you must act on the information because the user is /// holding down that key at the moment. /// </summary> private System.Windows.Forms.KeyEventArgs keyArgs = null; private void Form1_KeyDown (object sender, System.Windows.Forms.KeyEventArgs e) { keyArgs = e; } private void Form1_KeyUp (object sender, System.Windows.Forms.KeyEventArgs e) { keyArgs = null; }
This code actually uses the event argument as the flag itself. When the program receives the Form1_KeyDown event call, the program sets keyArgs to refer to the event item. When the program gets the Form1_KeyUp event, it sets keyArgs to null, so it is ignored. The contents of the updatePositions method are shown in the following code.
private void updatePositions () { // The cheese. // The cheese code as above here. // The bread. if ( keyArgs != null ) { switch ( keyArgs.KeyCode ) { case Keys.Up: by-=ySpeed; break; case Keys.Down: by+=ySpeed; break; case Keys.Left: bx-=xSpeed; break ; case Keys.Right: bx+=xSpeed; break; } } }
This code example uses a switch that is driven by the KeyCode property of the event arguments. Depending on which key code is signaled, the program changes the appropriate bread coordinate. The bread is presently moving at the same speed as the cheese.
If you add the new version of the updatePositions method to your program, you should find that you can move the bread around the screen with the direction keys while the cheese bounces around it.
Diagonal Danger
Note that this program does not handle diagonal movement. Most game console and desktop computer game joysticks can be pulled in two directions at the same time—for example, down and left to create diagonal movement. When developing games for Windows Mobile devices, diagonal movement is not a problem because no Smartphones or Pocket PCs on the market that has a navigation pad that can move in this way.
In this article, you've seen how to paint graphics to the screen so they don't flicker and how to intercept key presses to move the bat. You've also laid the groundwork of the physics of the game. You can now move a bread bat around the screen and chase the cheese with it. In the next article, you'll have a chance to consider what the program should do when cheese and bat collide, and you'll see how to create the breakout game.


text:
Just sitting around with nothing to do? Why not watch some TV on your Android device? The new Watch ABC app offers access to a large number of on-demand shows and even does live TV streaming in Philadelphia, New York City, Chicago, Los Angeles, Raleigh-Durham, and San Francisco. The obvious downside here is almost no devices are currently supported.
Microsoft is on a roll today – first a Skype update, and now OneNote for Android is on the receiving end of a fairly major update, as well. Those who rely on Microsoft's note-taking service should find that the update brings some rather favorable and useful changes, including support for Office 365 notebooks and new formatting options. Here's a look at the full changelog:
* New note formatting options and full fidelity viewing
* Support for Office 365 based notebooks
* Support for roaming "Most Recently Used" list
* Home screen Widgets with quick actions for capturing photo and audio notes
* Create audio notes
* Search
Unfortunately, the official blog post is very iOS-centric, but the details should translate across all versions of the application.
So here's the thing, Skype just received a major 4.0 redesign introducing a whole new look and feel that would feel at home on any Metro device. It just so happens that Metro's UI is pretty Holo-friendly. Windows Phone influence or no, the new version of Skype should still feel right at home on your Android phone of choice.
The new release doesn't usher in a wave of new features along with the new coat of paint, but Skype does boast that it is much faster and reliable, with emphasis placed on improving performance and load times.
The Quell games are some of the most consistently engaging puzzlers on a mobile device, and the newest installment has finally reached Google Play after being an Amazon Appstore exclusive. Quell Memento has a ton of polish and more zen puzzles than you can shake a Bonsai Tree at.
Quell Memento is a compelling experience that urges the player to help an old man reclaim his lost memories across 140 masterfully designed levels and 20 hidden stages.
Seeking to make presenting rich media on Android devices a little easier, Adobe has released Presenter Mobile. As the name implies, Presenter Mobile works with Adobe Presenter which, for those who don't know, is a tool that can take your media-packed Powerpoint deck and turn it into easy-to-manage, interactive eLearning or presentation material. Presenter's desktop software can also create videos "capturing both yourself and your screen" for demonstrations or instructional sessions.
Magic 2014 is the new and updated version of the less headline-friendly Magic: The Gathering: Duels Of The Planeswalkers, gracing Android for the first time. It's a digital translation of the uber-popular Magic: The Gathering card game, a staple of schoolyards and table gaming for the last two decades. Magic 2014 is a free download (though it needs a massive 1.2GB of space), but requires a $10 in-app purchase to unlock the full game.
If you haven't already abandoned one of those other streaming music services for Google Music All Access, today's the last day to do so for the introductory price of $7.99. As of tomorrow, July 1st, the price will jump up to the standard $9.99 per month, which rivals that of All Access' main competitor, Spotify. Unfortunately, All Access is US-only for now, so international users will have to wait for Google to roll the service out globally – hopefully they'll offer the same $7.99 incentive as it becomes available in more locations.
It's Sunday. You shouldn't be reading your go-to Android site, you should be spending time with your children. But since you are reading this, you might as well grab some cheap children's book apps from Loud Crow Interactive for when you feel like seeing them again. Unless you don't have children, in which case you can get some cheap games and a sweet live wallpaper instead. Or I suppose you could do both.
Welcome to the latest entry in our Bonus Round series, wherein we tell you all about the new Android games of the day that we couldn't get to during our regular news rounds. Consider this a quick update for the dedicated gamers who can't wait for our bi-weekly roundups, and don't want to wade through a whole day's worth of news just to get their pixelated fix. Today we've got an impressively stylish puzzler, a snowball fight simulator, a game that lets you empathize with the TSA, a strategic take on World Of Goo, and a game that mixes solitaire with golf to surprisingly OK results.

subset: commoncrawl


text:
Does anyone know why many lambic bottles are so thick? What size caps do the standard ones need (Oude Gueuze, Lindemans, etc.)?
I have a couple and would like to reuse them.
Sent from my iPad using Home Brew
I think they take 29mm caps.
You may well find the thickness is required to withstand high levels of carbonation.
Well...that would make sense, except the ones I've had were not very carbonated at all. The Hanssens Oude Geuze and the Lindeman's Framboise had way less carbonation than the beers I enjoy.
That's why I asked the first question.
Sent from my iPad using Home Brew
Because they do refermentation in the bottle. Sometimes they've even got a cap and a cork.
Elämämme tarkoitus lienee murheen karkoitus.
Yes, all of these had a cap and cork. And there was hardly any pressure behind the cork when the bottles were opened.
Sent from my iPhone using Home Brew
It's "CYA" for the bottler, I would imagine, for a worst case scenario.
Corned Beef............The other pink meat.
Research Armand's thermostat incident at Drei Fonteinen. That will tell you just about all you need to know concerning being extra cautious with lambic fermentations and bottle conditioning.


text:
The number of reports of murders, attacks and unrest from the Chinese province of Xinjiang has been on the rise for months. The province's Uighur population has long complained about being disadvantaged in religious, cultural and social terms. The authorities claim unspecified "terrorists" are responsible for the violence, but the public almost always remains in the dark about the true background to the attacks. By Ulrich von Schwerin.More
Their persecution by Islamic State has put the Yazidis in the international spotlight. In her book on the Yazidis, Birgul Acikyildiz provides insights into the culture and faith of this endangered community. By Ulrich von SchwerinMore
In view of the stubborn hurdles on the path to a permanent nuclear treaty, Iran and the five UN veto powers plus Germany have agreed to continue their talks. Hope for a settlement remains. Yet the risks are not necessarily getting any smaller. By Ulrich von SchwerinMore
For many Sunnis in Iraq, the country's Shia prime minister, Nouri al-Maliki, is a puppet of Iran. In the West too, the view that Tehran is pulling the strings in Iraqi politics is widely held. But what influence does Tehran really have in Iraq, and what role is it playing in the current crisis? Answers from Ulrich von SchwerinMore
A year on from his election victory, the Iranian president Hassan Rouhani has a success story to show for himself that barely anyone would have expected him to pull off: the breakthrough in the nuclear talks with the West. However, Iran's economic situation remains difficult and there have been few improvements in terms of freedom of speech and human rights. By Ulrich von SchwerinMore
Having already served two terms, Afghan President Hamid Karzai cannot run for president in the election in early April. The end of his twelve years in office marks the end of an era for the country. Ulrich von Schwerin spoke to Thomas Ruttig of the "Afghanistan Analysts Network" about the political situation in Afghanistan after over a decade of KarzaiMore
Narendra Modi was chief minister in the Indian state of Gujarat when anti-Muslim pogroms took place there 12 years ago. Today, he is the Hindu nationalist BJP party's candidate for the post of prime minister. Will this exacerbate India's inter-religious tensions? By Ulrich von SchwerinMore
The interim deal agreed at negotiations in Geneva is a breakthrough that would have seemed impossible just six months ago. By permitting stricter controls and limiting uranium enrichment, Iran has made concessions. But sharp criticism from Israel shows that the path to a final agreement is still strewn with obstacles. By Ulrich von SchwerinMore
The Iranian President's latest overtures in the nuclear row are being followed with great interest in the West, where the attitude that Iran must now follow up its words with deeds still prevails. But if the negotiations are to succeed, the West must also signal a readiness to make concessions, says Ulrich von SchwerinMore
Many believe an Israeli attack on Iranian nuclear facilities is simply a matter of time. The need to halt Tehran's nuclear programme is justified by what is claimed to be the direct threat to the existence of Israel posed by an Iranian nuclear bomb. But the cogency of this theory is rarely scrutinised. An essay by Ulrich von SchwerinMore
Every year, groups of Shia men parade through the centre of Nabatiyeh, where Lebanon's major Ashura rituals take place. These rituals include the controversial bloodletting rite known as "tatbir". Although frowned upon by religious and political authorities, Shia communities still practice tatbir as a vital part of their communal act of mourning Imam Hussein, who was martyred at the pivotal Battle of Karbala in 680 AD. Text and photos by Maya Hautefeuille


text:
- Freeport murder suspect Damon Dixson taken into custody in Rockford
- Local gas station employee arrested for selling liquor to minor
- Renewable Fuel Standard delay 'a mixed blessing,' Bustos says
- Rockford delegation presents inaugural 'Rockford Award' to Norwegian Air
- Education in Illinois making slow progress, according to report
- Illinois GOP Congressional delegation: Obama's immigration plan undermines rule of law
- Suspect, 17, charged in Halloween hit-and-run in Roscoe
- Saint Anthony College of Nursing president to retire
- Man found guilty in deadly August 2013 crash at Mulford and Garrett Lane
- 'The Price is Right Live!' at Coronado March 1; tickets on sale Nov. 21
Auburn students to participate in U.S. Army Recruiting Battalion health and fitness event Sept. 13
Online Staff Report
Rockford Auburn High School students will participate in an interactive fitness event run by the U.S. Army Recruiting Battalion of Milwaukee from 9:20 a.m. to 3:30 p.m., Tuesday, Sept. 13.
Students will encounter professionals who embrace health and fitness as a way of life.
Engaging activities include physical fitness and mental challenges; team-building exercises and leadership development; motivational presentations by drill sergeants; demonstrations by wrestlers from the World Class Athlete Program; educational activities from a combat support hospital unit; and fitness exhibitions from a local agency.
"This fitness promotion is a major undertaking comitted toward a single school," said Lt. Col. Frank O'Donnell, battalion commander. "Yet, we are compelled to address the increased obesity rates among our nation's youth.
"One in five youth 12 to 19 years old is currently overweight, compared to one in 20 in the 1960s," O'Donnell added. "Changing the course of that tide begins at the community level with a high-impact event to promote health and fitness."
Through personal interaction with those whose profession is anchored in health, fitness and strength, the students of Auburn High School will have a vision for which to strive.
"Motivation is what our youth need and Soldiers are America's greatest source of strength and motivation," O'Donnell said. "We are here to serve the youth for a better future."
The teams supporting the Pathway to Success campaign are living examples and professionals who embody health, fitness and strength.
Auburn High School is at 5110 Auburn St., Rockford.


text:
Posts Tagged 'Phone Contract'
HTC Desire: Android unloads in KitGuru's face3 CommentsPosted by faith on May 17, 2010 under Blackberry, iPhone, Media PhoneKitGuru loves HTC and has done for a long time, in spite of the absolutely rubbish ability of Windows Mobile to actually do email. With so many great multi-function phone on the market, we wanted to s... more.
Loading ...
KitGuru FacebookLatest News
- Samsung asks ITC to ban sales of Nvidia GeForce GPUs, Tegra SoCs in the U.S.... Filed under: APU, CPU, Graphics, Tablet PC
- SK Hynix adds HBM DRAM into catalogue, to start production in Q1 2015... Filed under: Graphics, Memory
- KitGuru visits Logitech's G Labs in Switzerland... Filed under: Highlights 2
- Google will provide 1TB of storage with new Chromebooks... Filed under: Android, Laptop / Mobile, Netbook, Notebook
- SK Hynix begins to mass-produce 8GHz GDDR5 memory... Filed under: Graphics, Memory
- MSI X99S Gaming 7 (LGA 2011-v3... Filed under: Highlights, Motherboard
- Gigabyte X99 SOC Force (LGA 20... Filed under: Highlights V, Motherboard
- Asus X99 Deluxe (LGA 2011-v3) ... Filed under: Highlights 2, Motherboard
- Windows 9 preview could arrive... Filed under: Operating Systems
- Asus Z97-A Motherboard Preview... Filed under: Highlights-new, Motherboard
Similar Posts
Related Posts
KitGuru Gaming - Reviews and News
28nm amazon AMD Android Apple arm Asus ATI core ea facebook GCN geforce Google haswell Intel ios ipad iPhone kim dotcom kitguru KitGuru News Launch microsoft New news nintendo nvidia piracy Playstation 4 ps4 radeon Review samsung sony ssd steam technology news valve wii u WIndows windows 8 windows phone xbox xbox one


text: breakfat, coffee, morning Added: Sept. 7, 2012 | Image size: 500 x 314 px | More from: weheartit.com | Source: linkRELATED IMAGES:This image is in 6 setsfirstby lvskiraKosmosby Kate_Ndownloaded picturesby thomsett5No comments Please log in or sign up to post a comment. add to set Views: 3355 Likes (**Who?): 6 Comments: 0 Tagged with :breakfat 2coffee 11361morning 4178Log in or Sign upLog In" or Sign Up


text:
(11/9/14) $100 Off Membership For Next 200!
You SHOULD NOT Have To Pay A Monthly Fee Forever For A Brazilian Jiu Jitsu And Grappling Premium Site!
Get Access To The MOST FULL FEATURED And DIVERSE Grappling and BJJ Learning Site Ever WITHOUT a Monthly Fee And NO HIDDEN FEE BULLCRAP! Limited To 200 Members!
There Is A Reason Why 1,000′s Of Grapplers Are On The Grapplers Guide!
100% This Is The Best Grappling Learning Site You Can Join And There Are ZERO Monthly Fees.
Since 2007 The Grapplers Guide Has Been Setting The Stage For Membership Sites. The Other Sites Can't Catch Up!
You Can Look At Content And Watch Videos On Both Our Desktop Version And Our Very User Friendly Mobile Version As Well!
More Site Features That No Other BJJ and Grappling Membership Site Has!
Community Focused Features
You will find features and sections all over the community promoting interaction and learning.
Save Favorites
Save your favorite videos, posts, documents, articles, tracking sheets, and more to your favorites so you can come back and review them.
Create Blogs / Training Logs
We have a dedicated section where you can create your own blog or training log. This is another feature that promotes learning, community, and accountability.
Categories and Sections
Our community is organized in common category and sections so you can easily look for a particular topic to study or discuss.
Customizable Profile
Like no other site the Grapplers Guide has the most customizable profile and we have many members who are proud to show their experience and we look forward to seeing promotion of our members.
Personal Photo Gallery
Grapplers Guide 2.0 members can share their training experiences through photos and imagery. Post on other members photos and interact with the community.
Private Messaging System
Send experts and users private messages and discuss training with them one on one. We encourage open interaction but we also understand the need for personal interaction as well.
Member Tagging
This is one of our best features, where you can "mention" and "tag' members in conversations or posts and then that user will get notified that they have been mentioned. This is a great feature for promoting community interaction.


text:
You are currently browsing ari's articles.
I have a new author's website: arikelman.org. All are welcome.
This article in Vanity Fair left me thinking that it's only a matter of time before performance-enhancing drugs become the norm rather than the exception in the academy. I mean, what happens you realize that the assistant professor that your department just hired can concentrate for hours and hours without taking a break for weeks on end? What happens when you realize that s/he is far more productive than you are because of these extraordinary powers of concentration? And then, what happens when you learn that the secret to her or his success is a prescription for methylphenidate? What are you going to do about it*? As for me, I'll probably go out for a bike ride and then take a nap. But that's because I'm old and pretty much past my prime already. But if I could still be a contender — whatever being a contender means — I wonder if I'd think twice and call my doctor.
Here's the thing: I've long known that there are people in the profession who are smarter than I am (some of these people have offices near mine). My response to such cruel realities has been, on the one hand, to acknowledge my limits and, on the other hand, to work my ass off to try to make up the stagger. Put another way, I've accepted that nature is fickle (Bill Cronon is a once-in-a-generation intellect; I'm not) and tried to overcome the vagaries of genetics with a response rooted in nurture (my willingness to work hard)**. That said, I think I'm going to find it pretty difficult to take when it turns out that people are outperforming me because they're relying chemical enhancements*** to help them publish.
Now wait, before you give the obvious reply, yes, I know this already happens. Eric drinks coffee. I don't. And that's the only reason he's written four books and I haven't. Really, though, if there were a pill that would allow me to be significantly more productive, I worry that I'd think long and hard about taking it. Actually, I suspect that choice is already here. It's just that I don't have the right dealer.
* Whitey.
** The nature/nurture divide is far too simple here, I know. Some people are smarter and harder working than I am. Oh well.
*** Especially when it turns out that some people process these chemicals more efficiently than other people and thus have better results when they ingest them. Oh, nature, you are truly cruel!
Given what an ignorant slut* he seems to be, I guess I'm willing to be more charitable than Timothy Burke and accept that David Levy (not the good one, mind you) only worked fifteen hours/week during his academic career.
Really, though, rebutting this sort of disingenuous crap is beneath my dignity. But I do think Corporate Spokesperson Levy should be shunned. Beyond that, take a look at the Burke post. It's smarter and more thorough than Levy deserves. And unlike Levy's pat drivel, Burke opens up some avenues of discussion.
* Corporate category; I don't care about the man's sex life.
I've probably never said this here before, but having finished my book on Sand Creek, I'm now co-authoring* a graphic history of the Civil War. As a consequence, I've been following this discussion with some interest. I don't have much to add except this: I decided, very early in the process of writing the book, that we would NEVER put fictional words into the mouths of non-fictional historical figures. Which is to say, although my co-author badly wanted to insert a couple of gold bug stanzas into the Gettysburg Address, I put my foot down. On the one hand, this seems very much like what Silbey suggests should serve as best practices (both in literature and scholarship, if I understand him correctly). But on the other hand, I have to admit that we worked around the attendant problems by making up characters left and right to voice the dialogue and carry the weight of the story we're trying to tell. I'm reasonably sure that this makes me a lousy historian in Silbey's eyes and a lousy storyteller in Eric's. Mission accomplished!**
* With Jonathan Fetter-Vorm. Who also worked on this project. Which is awesome.
** (Note to self: wear flight suit and codpiece, not academic regalia, to graduation this year. Unfurl self-congratulatory banner at key moment. Bathe in applause.)
Students in my Civil War class tend to be fascinated by the disjuncture between the Lincoln of memory, who stands tall as the Great Emancipator, and the Lincoln of history, who only very gradually embraced emancipation as a necessity of war and then later as a moral imperative.* One of the crucial moments in that evolution was the controversy over treating slaves as contraband of war, an episode during which several of Lincoln's generals, in fall 1861, outstripped their Commander-in-Chief and began practicing not-quite-emancipation on the ground. They refused to return slaves that crossed the Union lines to their former owners, leaving those people in an odd situation: not quite free, but no longer enslaved either.
The BBC has a story up about one of the sites where that controversy played out: the South Carolina Sea Islands. I have to admit that this is the kind of article that threatens to get under my Civil War historian's skin but then ends up totally tickling my historian of memory's fancy. The story is "little known" and a "secret history," says the Civil War historian? Not so! There's a great book on the subject! And Chandra Manning is working on a new monograph about contraband camps! But then the historian of memory says, "stop being such nit-picking jerk and check out the stuff about the two Mitchels discussing their sense of shared heritage."
Anyway, it's an interesting (and annoying, yes) story that's at least in part about the enduring nature of a certain kind of reconciliationst Civil War narrative.
* This formulation is decidedly too simple, I know. Consider it a kind of shorthand for the sort of thing about which scholars write long books that win prizes.
Charles Pierce (who is awesome) included this in his touching remembrance of Don Cornelius. Ad agencies really should use historical figures as pitchmen more often.
Or so it seems. No, I'm not talking about Joe Paterno again [spits]. I'm talking about the description of the United States as a Grand Experiment in democracy or sometimes as a lower-case grand experiment in democracy. I always assumed that one of the founders* said that, that it was a quote in other words. But no, it seems that's not the case. Unless I'm missing something — which is entirely possible; no, really, it's entirely possible — the whole thing is a charade.
* Probably Jefferson [spits], right? I mean, he's usually the guy who said the stuff about the things, isn't he? But apparently not in this case. Unless, again, I've missed something. Which is to say, this is chance for you to note that somebody is Wrong on the Internet! And not just any somebody, but me.
David Greenberg's review of Chris Matthew's new Kennedy biography is, like everything Greenberg writes, worth reading. It's a wonderful takedown, I think, because it's not entirely captivated by the search for the perfect snark (they're wily, snarks are, and should be hunted at dawn and dusk, when they typically rest).
If Mark Wahlberg had been seated in first class on that fateful day, there would have been no 9/11. Yes, seriously. I dare you to challenge his logic.
Over the past month, I've been finishing — as in, putting the final, no really, the final! — touches on my book. It's been a huge pain because of the narrative structure I've adopted this go round. Lots of flashbacks means lots of moving parts. Change one thing, you have to change many things. Very annoying.
Anyway, because of my present circumstances (to recap: annoyed), I've been paying more attention even than usual to storytelling and editing. Which prompts two observations: first, J.K. Rowling should have edited her books. If another one of her characters "pants", I'm going to assume Hermione or Gilderoy is trapped in a low-budget pr0n film (ick). And second, the opening twenty or so minutes of the Star Trek reboot is a model of narrative economy. Like the much-praised, and deservedly so, montage in Up (No, I'm not crying. But hang on a sec, okay? I have something caught in my eye.), the scenes, starting from when the lights go down until Kirk and crew begin their adventures on the Enterprise, are incredibly taut. The number of characters and story lines introduced (though they couldn't wedge Scotty in until later) is admirable. I haven't done that well with my book, I'm afraid. But then again, my budget was smaller than J.J. Abrams's.
Overheard at the swim meet today.
Kid 1: "When Matt Damon is elected president, the country's going communist. Seriously, wait and see."
[Editor's Note: Bob Reinhardt, a PhD candidate in our department, submitted this TDIH before the late unpleasantness on our campus. He then asked if I would hold off on posting for a bit. Well, a bit has passed, and it's time to talk about smallpox. Really, though, when isn't it the right time to talk about smallpox? Thanksgiving dinner, I suppose. Anyway, thanks, Bob, for doing this.]
23 November
On this day in 1965, President Lyndon Johnson declared all-out war on a universally despised enemy. The announcement didn't concern Vietnam — Johnson had escalated that police action months before — nor poverty, against which the US had allegedly been fighting an "unconditional war." This particular declaration targeted a different enemy, older and perhaps more loathsome than any ideological or socioeconomic affliction: smallpox. As the White House Press Release explained, the US Agency for International Development and the US Public Health Service (specifically, the Communicable Disease Center, now the Centers for Disease Control and Prevention) had launched an ambitious campaign to eradicate smallpox (and control measles) in 18 West African countries.* That program would eventually lead to the first and only human-sponsored eradication of a disease, and would also demonstrate the possibilities — and limits — of liberal technocratic expertise.
Not to pat myself on the back, but I've become a somewhat better lecturer in the past couple of years. The improvement is mostly an outgrowth of comfort. I know the material well enough now that I can focus more on performance: projecting my voice with emotion, hitting the laugh lines, etc. At the same time, I'm able to build narrative arc in most of my lectures while maintaining analytical continuity.
This is all to the good, of course, but there is a problem: I fear that my course management may be slipping a bit. In short, as I've grown more confident about giving my lectures, I've become a bit less careful about making sure that my instructions for papers and other assignments are crystal clear; about clarifying for my readers and TAs, before they begin their grading, what I think constitutes an outstanding essay; and about making sure that classes begin precisely on time.
The thing is, I suspect that even though I'm more entertaining and maybe more edifying in some ways, my students would rather have me focus my attention on management and logistics. I don't know this for sure, but I'd be willing to bet that I'm right. I'll let you know after my course evaluations come in and are tabulated.
In some ways, this is just me musing as the end of the quarter draws near. But in others, I think it's worth my remembering that teaching hinges on organization and attention to detail as well as deft presentation of information — or perhaps that these things are complementary. Probably everyone knows this already, and I've just embarrassed myself. ("Wait, I've had that piece of spinach in my teeth all day?") But nobody ever taught me this stuff, so maybe it's worth mentioning.
This was the chancellor's address yesterday on the Quad. It may be that I'm being uncharitable, but I hear her invoking her experiences in Greece in 1973 as a way of claiming solidarity with the pepper-sprayed UC Davis students while expressing ostensibly genuine contrition over what happened to them. But then I juxtapose those sentiments, shared as they were through tears, with Eric's post, which seems to indicate that Chancellor Katehi was one of the architects of a policy allowing the police back onto Greek campuses for the first time since the 1973 uprising.
Nick Perrone is a PhD candidate in the Department of History at UC Davis. This is the speech that he gave on the Quad earlier today.
My name is Nick Perrone and I am a graduate student in the history department here at UC Davis. I am also the recording secretary for the UAW Local 2865, the union that represents the majority of graduate student employees across the UC system. So I am a student here, I am a worker here, and I am a union representative for my colleagues across campus, and I want to make a couple quick points.
First of all, the movement to occupy the Quad here at UC Davis is not an attempt to replicate Occupy Wall Street or any other movement. Students here at UC Davis and at universities across the country have been occupying administrative buildings and open spaces in response to injustices both on and off university campuses for decades. Chancellor Katehi has worked hard to try and characterize this current occupation as being influenced by "non-UC Davis affiliated individuals." Let me be clear, THIS IS OUR MOVEMENT. Look around you, these are UC Davis students, faculty members and workers. Chancellor Katehi, just because our movement is growing, that does not mean that it must be the result of some outside influence, some "rogue element". You and the regents that you work for have provided the fuel that drives the movement that you see today.
The second point that I want to make is that the police brutality we have witnessed over the past two weeks at Cal State Long Beach, UC Berkeley, and UC Davis is only a symptom of the privatization of these universities. Chancellors Katehi and Birgeneau want safe and inviting spaces on campus, but not for students, for private companies and corporations. When they suppress dissent on our campuses it is in the interest of privatization and clearly not student safety. We must be careful not to treat the symptom alone, but attack the disease itself, the disease of privatization.
Chancellor Katehi, we will not allow you, President Yudoff, the regents or anyone else to strangle the students at this university with debt and mediocrity while you simultaneously direct police to suffocate any remaining dissent. It is clear to us that you are no longer an advocate, you are no longer an ally. We need a chancellor who will stand with students against police violence. Our struggle is not your struggle. We want the rich to pay their fair share. We want to lower tuition, not raise it. We want to end the privatization of our university. And we want to stop the use of police to remove peaceful protesters on college campuses. Chancellor Katehi, you have lost the confidence of the students, the faculty and the workers on this campus and it's time for you to go.
Sometimes you learn from your students rather than teaching them.
This is a better video of Chancellor Katehi exiting a campus building after her impromptu press conference yesterday. I post this not only to highlight, once again, the extraordinary discipline of the students, but also to share this letter, "Why I walked Chancellor Katehi out of Surge II tonight". The letter was written and posted to Facebook by Reverend Kristin Stoneking, the director of CA House. Kristin is the woman you see walking with the chancellor in the video above.
At 5pm, as my family and I left Davis so that I could attend the American Academy of Religion annual meetings in San Francisco, I received a call from Assistant Vice Chancellor Griselda Castro informing me that she, Chancellor Katehi and others were trapped inside Surge II. She asked if I could mediate between students and administration. I was reluctant; I had already missed a piece of the meetings due to commitments in Davis and didn't want to miss any more. I called a student (intentionally not named here) and learned that students were surrounding the building but had committed to a peaceful, silent exit for those inside and had created a clear walkway to the street. We turned the car around and headed back to Davis.
When I arrived, there was a walkway out of the building set up, lined on both sides by about 300 students. The students were organized and peaceful. I was cleared to enter the building along with a student who is a part of CA House and has been part of the Occupy movement on campus since the beginning. He, too, was reluctant, but not because he had somewhere else to be. For any student to act as a spokesperson or leader is inconsistent with the ethos the Occupy movement. He entered as an individual seeking peace and resolution, not as a representative of the students, and was clear that he had called for and would continue to call for Chancellor Katehi's resignation.
Once inside, and through over an hour of conversation, we learned the following:
– The Chancellor had made a commitment that police would not be called in this situation
– Though the message had been received inside the building that students were offering a peaceful exit, there was a concern that not everyone would hold to this commitment
– The Chancellor had committed to talk with students personally and respond to concerns at the rally on Monday on the quad
– The student assistants to the Chancellor had organized another forum on Tuesday for the Chancellor to dialogue directly with students
What we felt couldn't be compromised on was the students' desire to see and be seen by the Chancellor. Any exit without face to face contact was unacceptable. She was willing to do this. We reached agreement that the students would move to one side of the walkway and sit down as a show of commitment to nonviolence.
Before we left, the Chancellor was asked to view a video of the student who was with me being pepper sprayed. She immediately agreed. Then, he and I witnessed her witnessing eight minutes of the violence that occurred Friday. Like a recurring nightmare, the horrific scene and the cries of "You don't have to do this!" and students choking and screaming rolled again. The student and I then left the building and using the human mike, students were informed that a request had been made that they move to one side and sit down so that the Chancellor could exit. They immediately complied, though I believe she could have left peacefully even without this concession.
I returned to the building and walked with the Chancellor down the human walkway to her car. Students remained silent and seated the entire way.
What was clear to me was that once again, the students' willingness to show restraint kept us from spiraling into a cycle of violence upon violence. There was no credible threat to the Chancellor, only a perceived one. The situation was not hostile. And what was also clear to me is that whether they admit it or not, the administrators that were inside the building are afraid. And exhausted. And human. And the suffering that has been inflicted is real. The pain present as the three of us watched the video of students being pepper sprayed was palpable. A society is only truly free when all persons take responsibility for their actions; it is only upon taking responsibility that healing can come.
Why did I walk the Chancellor to her car? Because I believe in the humanity of all persons. Because I believe that people should be assisted when they are afraid. Because I believe that in showing compassion we embrace a nonviolent way of life that emanates to those whom we refuse to see as enemies and in turn leads to the change that we all seek. I am well aware that my actions were looked on with suspicion by some tonight, but I trust that those seeking a nonviolent solution will know that "just means lead to just ends" and my actions offered dignity not harm.
The Chancellor was not trapped in Surge II tonight, but, in a larger sense, we are all in danger of being trapped. We are trapped when we assent to a culture that for decades, and particularly since 9/11, has allowed law enforcement to have more and more power which has moved us into an era of hypercriminalization. We are trapped when we envision no path to reconciliation. And we are trapped when we forget our own power. The students at UC Davis are to be commended for resisting that entrapment, using their own power nonviolently. I pray that the Chancellor will remember her own considerable power in making change on our campus, and in seeking healing and reconciliation.
Kristin's courage and commitment to non-violence, coupled with the dignity of the protestors, serve as a reminder that the brutal tactics of the police are not the only inheritance we still have with us from the long and ongoing struggle for civil rights.
The apostropher brings this video to our attention and remarks, "This…might be the most powerful and effective shaming I have ever witnessed". Indeed.
I'm annoyed enough lately with the state of the world that I've decided it's time to embrace shunning as an appropriate form of social sanction. Joe Paterno? Shun him. Peter Orszag? Shun him. I could go on.
With that in mind, today we're going to shun Whitney Blodgett, a student at Princeton who decided that nothing could be funnier than yelling at a bunch of Occupy protestors that, speaking of his buddies, "We're the 1 percent!" His ever-so-clever buddies followed up with, "Get a job!"
Oh, the revelry! The hijinks! As a friend points out:
You really need to click the article to get a picture of this kid. He's a freshman, by the way. Nothing like an 18-year-old Ivy League kid, who with a name like "Whitney Blodgett III" is almost certainly a legacy admit, lecturing people on the meritocracy.
Seriously, shun him. And shun his buddies, too.


text:
Tag: IphoneBluetoothKeyboard
Another hardware keyboard solution for iPhone
There are many iPhone detractors who still won't let go of the fact that the iPhone doesn't have a physical keyboard. Whether it's because the on-screen keyboard is too difficult to use, or the move away from "the norm" is too jarring, it's what holds back many from making the switch or from liking ...
Subscribe to Newsletter
Software Updatesmore updates
- Vizzywig 8xHD price tag now a very affordable $49.99
- Automatic targets teen drivers with License+ service
- Dropbox adds support for TouchID
- YouTube for iOS gets updated with full support for iPhone 6 and 6 Plus
- iOS 8.0.1 update now available (Updated -- Don't update!)
- NFL Mobile updated for 2014 Season with new Fantasy Football features, NFL Now integration


text:
Results 1 to 6 of 6
- 11-26-2012, 11:55 PM Thread Author #1
- Posts
- 62 Posts
Email Update Not Working Properly
So I just recently got a galaxy s3 and the major issue I'm having with it right now is with receiving emails. It seems no matter what setting I set it at, whether it be every 5 mins, 10 mins, etc., the only way I can determine if I have a new email is if I go into the actual email app. Does anyone else have this issue? I would think that every email I receive would give me a notification, which I have checked to notify me when I receive an email.
- Posts
- 472 Posts
- Stock: Unrooted
Re: Email Update Not Working Properly
Hi nobodyisherenow, that's interesting. If you have 'Email notifications' + 'Select ringtone' checked � then it should, as fas as I think I understand it, give you an audible ringtone notification along with placing a notification icon up in the notification bar. Of course, if you have the 'Select ringtone' set to 'Silent' . . then you won't get the audible ringtone notification.
I was wondering if mine was working properly as well, but then realized that since I have 'Sync email' set to 'never' � mine only syncs email when I open the email app � and thus my GS3 DOES NOT ring a tone or even put the icon up in the notif-bar. Which seems a little strange. But maybe it doesn't because I've got the email app open, watching the emails download, I guess. Anyone else know if that's typical?
- Posts
- 1,527 Posts
Re: Email Update Not Working Properly
I use gmail, so I don't know about the other email app that is on the phone , but with gmail, there is also a setting for "Labels" and that is each box, inbox, priority, sent, etc. When you go to each of those, there is a setting for sync'ing and notifications. So you can set it to notify and sync in the main setting and it can be turned off there is you don't have notifications checked there also. Don't know if it is the same for the other email app or not.
- Posts
- 261 Posts
- Global Posts
- 294 Global Posts
Re: Email Update Not Working Properly
I hate the stock email app. On a perfect day it's slow and aggravating. Try K9 and don't forget to use a widget that has an unopened message counter. When I had message count issues with the stock app I deleted and re-added the mail account. Even then it acted stupid for a while until it decided to behave. If your email supports imap you can set it to push via K9. Sexy time.
- 11-29-2012, 01:09 PM Thread Author #5
- Posts
- 62 Posts
Re: Email Update Not Working Properly
i have a gmail and aol account. neither seem to update with the stock email app unless i go into the app and hit refresh. only then will i receive my new emails. i'll try deleting and re-adding my accounts to see if that fixes the problem.
edit: just tried deleting the email accounts and re-adding them. the stock email app still is not notifying me every 5 mins as i selected. i did download that k9 email app and that DID notify me when i received emails. so i guess i'll start using that more often than the stock email app. thanks for the help all!
Last edited by nobodyisherenow; 11-29-2012 at 01:47 PM.
- Posts
- 1,527 Posts
Re: Email Update Not Working Properly
I have gmail but am using the gmail app, maybe that is the difference.
Similar Threads
Email widget not working properly on galaxy tab 10.1 in ICSBy ssaslow in forum Android 4.0 Ice Cream SandwichReplies: 2Last Post: 09-15-2012, 03:13 AM
Streaming Audio not Working Properly after Update 3.70.651.1By mikevillain in forum HTC EVO 4GReplies: 27Last Post: 05-16-2011, 05:14 PM
sirius radio not working properly?By StayFly in forum Android AppsReplies: 11Last Post: 09-14-2010, 09:59 AM
Contact specific ringtones not working properlyBy akt83 in forum Sprint Epic 4GReplies: 6Last Post: 09-02-2010, 02:24 PM
MMS not working properly on my Att NexusBy MRGQ in forum Google / HTC Nexus OneReplies: 15Last Post: 04-02-2010, 02:51 PM


text:
News from WTOP
News from the AP
Mike Causey
Shows & Panels
- Agency of the Month
- Business of Government Hour
- The CFO Agenda: Delivering value from financial transparency and audit efforts in the public and private sector
- CXO Surveys
- Federal News Countdown
- Government Perspectives on Mobility and the Cloud
- Reducing Risk in the Cloud
- Reimagining the Next Generation of Government
Shows & Panels
- AFCEA Answers
- American Readiness: Renewable Power and Efficiency Technologies
- Ask the CIO
- Delivering the Digital Government Mission
- Federal Executive Forum
- Federal News Radio's National Cyber Security Awareness Month Special Panel Discussion
- Federal Tech Talk
- The Future of Government Data Centers
- Government Perspectives on Mobility and the Cloud
- Mitigating Insider Threats in Virtual & Cloud Environments
- Moving Agency Applications to the Cloud with PaaS
- Reducing Risk in the Cloud
- Security in the Age of Targeted Attacks
- Air Traffic Management Transformation Report
- Cloud First Report
- General Dynamics IT Enterprise Center
- Gov Cloud Minute
- Government in Technology Series
- Homeland Security Cybersecurity Market Report
- The Intersection: Where Technology Meets Transformation
- Modern Mission Critical Series
- National Cybersecurity Awareness Month
- Technology Insights
- The Cyber Security Report
- The Next Generation Cyber Security Experts
Shows & Panels
Search Result
Search Tags: Cybersecurity
Money Mules Targeted
Cyber criminals know how to steal online funds, but the criminals who know how to convert those funds into cash are now being targeted specifically by the FBI.
Agency officials say they're targeting - what they call - the "money mules" who receive the transfers of stolen funds into their bank accounts. They then make the transaction appear legitimate, sending the money to associates in other countries.
The FBI hopes to raise public awareness and dissuade people from becoming mules. The FBI hopes to raise public awareness and dissuade people from becoming mules.
Tags: technology , Cybersecurity Report , cybersecurity , FBI , Scott Carr
Opportunities grow for cyber contractors
A cutting-edge forum addresses public-private partnerships, R&D innovations, and contracting opportunities to protect our country's cyber infrastructure. CyberSecurity Seminars CEO Tom Billington has details.
Tags: Federal Drive , Cybersecurity Update , cybersecurity , contracting , R&D , CyberSecurity Seminars , Tom Billington
OMB seeks comments on FISMA metrics
GPS glitch hit some military systems in January.
Tags: Federal Drive , Cybersecurity Update , cybersecurity , OMB , Air Force
OMB wants agency input on FISMA
Learn more in today's cybersecurity update.
Tags: technology , cybersecurity , Cybersecurity Update , daily debrief
Laptop stolen from VA contractor
Facebook rolling out new security features, House panel to consider cybersecurity overhaul
Tags: Cybersecurity Update , cybersecurity , Facebook , VA , stolen laptop , White House
DHS tries sharing cyber threat data differently
The agency is working with different industry sectors to improve how and the kinds of IT security information that flows in both directions. DHS has a pilot with DoD and financial services companies to exchange threat and malicious activity from their networks. DHS also has installed Einstein 2 software on 12 agency networks to improve how they recognize risks.
Tags: technology , Greg Shaffer , Anna Eshoo , John Denning , DHS , DoD , GAO , Computer and Communications Industry Association , Financial Services Information Sharing and Analysi , cybersecurity , Einstein , information sharing , Jason Miller
Industry Chatter: Lisa Mascolo of Accenture
The concept of doing "even more with even less" is a step beyond "doing more with less." Lisa Mascolo of Accenture has some ideas for doing it.
Tags: In Depth , Industry Chatter , management , technology , best practices , cybersecurity , Lisa Mascolo , Accenture , contracting
DHS pilot programs look at cyber info sharing
WFED's Jason Miller reports.
Tags: technology , DHS , cybersecurity , Jason Miller
FBI investigates cyber 'money mules'
Learn more in today's cybersecurity update.
Tags: technology , cybersecurity , Cybersecurity Update , FBI
How to fight through a digital meltdown
How would the military carry on in the event that an enemy manages to meltdown the DoD's digital information infrastructure? We get thoughts from Air Force Major General Kevin Kennedy, Director for Joint Capability Development (J8), U.S. Joint Forces Command.
Tags: Federal Drive , cybersecurity , DoD , Kevin Kennedy , Air Force , AFCEA , security , Suzanne Kubota


text:
Black Friday Week Starts Now!
New Customer ? Start Here.
Can't find what you're looking for? Shop all ink and toner cartridges by brand
Black Friday Week Starts Now!
Item: 541077 Model: 25775
Durable 11 pt. Manila stock. 1/3 cut assorted tabs. Acid Free. SFI Certified, 30% Total Recycled fiber, with 30% post consumer fiber.
|File Folder/Paper Size
|# of Tabs
|3 tab
|File Folder Pack Size Filter
|Color of File Folder
|Folder Material
|Paper Stock
|Folder Type
|Color Family
|File Folder Expansion (inches)
|File Folder Material
|Paper Stock
|File Folder Pack Size
|File Folder Type
|Top Tab
|Number of Tabs
REVIEW SNAPSHOT®by PowerReviews
Staples® Manila File Folders, Letter, 3 Tab, 50/Box
Reviewed by 2 customers
Sort by
File Folders, 3 Tab
Comments about Staples® Manila File Folders, Letter, 3 Tab, 50/Box:
Great quality file folders, perfect for every day use.
The real thing!
Comments about Staples® Manila File Folders, Letter, 3 Tab, 50/Box:
Look people, I kid you not, when you order this product, you get the real thing. If you're into filing, this is the stuff you need. You get like 50 of them and for those who can't decide if they want the tab on the far right or near left, it even comes in the middle if you can believe it! They come wrapped in clear plastic too, so you know they're sterile! Real, manila, folders!!!
Staples® Manila letter size file folder available in single ply tab that used to change the organization and comes with ...
Staples® Manila end tab letter file folder features 9 1/2" high front with labels sold separately. Folder is 10 percent recycled ...
Staples® Letter size 2 tab assorted position file folder in manila color has 5/8" undercut that offers ample room for file folder ...
Oxford® Tab file folder features two 2" capacity fasteners which is used to secure your important letter size documents. Folder ...
Smear® SuperTab® File folder in manila color helps to organize files and documents. Smear® SuperTab® File folder has 3 tabs in ...
This Web site is intended for use by US residents only. See International Sites. See our delivery policy for full details. Copyright 1998-2014, Staples, Inc., All Rights Reserved.


text:
subsidiarityLine breaks: sub|sidi|ar¦ity
Pronunciation: /səbˌsɪdɪˈarɪti /
Definition of subsidiarity in English:
noun[mass noun]
(In politics) the principle that a central authority should have a subsidiary function, performing only those tasks which cannot be performed at a more local level: [as modifier]: the Maastricht Treaty reasserts the rights of member nation states through the subsidiarity principle
More example sentences
- They have also applied the principle of subsidiarity to empower sub-national and not merely national governments vis-à-vis Brussels.
- Social policy as embodied in the welfare state belongs, following the principle of subsidiarity, to the member states.
- Most groups now also suggest localization and subsidiarity as key principles opposed to globalization.
What do you find interesting about this word or phrase?
Get more from Oxford Dictionaries
Subscribe to remove adverts and access premium resources
Top searches
= trending
Word of the day Sprachgefühl
Pronunciation: ˈʃprɑːxɡəˌfuːl
intuitive understanding of a language's natural idiom…


text:
- Syrian Electronic Army posts hacking message on several news sites
- Over 23,000 Web servers infected with CryptoPHP backdoor
- Siemens patches critical SCADA flaws likely exploited in recent attacks
- Cheap Android tablets riddled with security flaws, test finds
- UK security sector warned over risk of selling to oppressive regimes
Ten Critical Steps for Building a Business Case for Data Governance
In this white paper, readers will learn how to leverage a blend of processes, technology, and industry best practices to successfully make and sell a business case for data governance. Ten critical steps will be outlined, from strategy development through presentation. This paper will also highlight Information Builders' intelligence, integration, and integrity solutions, and how they can aid in effective data governance. Read now.
Please supply your email address to access the content.
Market Place


text:
Where's the beef?
You may remember about two years ago Keyshia released a statement revealing that she'd had to kind of take a break from her family members, specifically her Mom Frankie and sisters Elite and Neffe.
In recent interviews while promoting her upcoming "Family First" reality show along with hubby Daniel Gibson, Keyshia says she's mended fences with her mom, who is making a go at sobriety, but that while Frankie will appear on some episodes of her new show — Neffe, won't be on the program because they're still not on the best of terms.
We spoke to Neffe exclusively about how reality tv helped hurt her relationship with her sister, what life has been like since her BET show ended and why she decided to take a break from Reality TV for two years.
Hit the flip for the full interview.
More On Bossip!
Celebrity Cribs: Chipotle Coppin' Fly-'Em-Out Baller Javale McGee Buys $800,000 High-Rise Vegas Condo [Photos]
Awkward Thanksgivings: Celebrities Who Got Alienated From Their Families
This Guy: A Look Back At Don Lemon's Biggest Ferguson Coverage Fails
Busted: A Gallery Of Celebs Caught Stealing Pics On Instagram
This Is America: Chilling, Gripping And Powerful Images From Ferguson After The Grand Jury Decision


text:
By Roxana Tiron, Michael C. Bender and Heidi Przybyla, Bloomberg |
October 4, 2013
U.S. House Speaker John Boehner is trying to unite Republicans around a plan to reopen the federal government, raise the debt ceiling and achieve as many of the party's priorities as they can.
How would crude handle an Iranian comeback?
Institutional interest in bitcoin surges as trading products mature
Can today's break be confirmed by volume?
6 mistakes to avoid when investing in ETFs
Getting into gold with bull spreads
Simplifying fibonacci for traders
Central banks take center stage