text:
Sew Essential Carry All
- Free Shipping On Orders Over $100
- Low stock - 1 item left
- Inventory on the way
The Sew Essential Carry All has a roomy interior and 5 large pockets for your project needs. Use your imagination for different ribbon combinations making this a one of a kind design. Measures 16 1/2 " wide x 6" deep x 14" tall.
Please allow 1-2 business days for your products to be shipped. We offer a variety of shipping services based on your preferences. You will receive automatic email updates with tracking information so you know exactly where your shipment is and when you will recieve your package!
Fabric, Stabilizer and Thread Purchases.....all sales are final. This applies to website purchases and in-store purchases.
Patterns, Books, Notions and Gifts....all sales are final on website purchases. In-store purchases refunds no----exchanges yes. Within 30 days of purchase and the item needs to be in original wrapping.
Janome Sewing Machines, Janome Quilting Machines and Innova Quilting Machines...all sales are final.
Classes/Retreats.....100% refundable up to 2 weeks before the event date.


text:
Getting high with lenny
From Linux-VServer
Contents |
Getting High with Lenny
The aim here is to set up some high available services on Debian Lenny (at this moment October 1st still due to be released)
There is a lot of buzz going on for a while now about virtualisation and High Availability and while Vserver is very well capable for this job the number of documented examples compared to some other virtualisation techniques are a little lacking so i thought i'd do my share.
I prefer to use Vserver for the "virtualisation" because of its configurability, shared memory and cpu resources and basically the raw speed. DRBD8 and Heartbeat should take care of the availability magic in case a machine shuts down unexpectedly. In my experience it takes a few seconds to have several Vservers fail over to another machine with this setup.
The main attempt here is to give a single working example without going to much in to the details of every option, the scenario is relatively simple but different variations can be made.
For this set up we will have
- 2 machines
- both machines have 1 single large DRBD partition
- primary/seconday there is always 1 machine active and 1 on standby
- 1 LVM partition per Vserver on top of the DRBD partition, for quota support from within the guest and LVM snapshots
- the Vservers /etc/vserver and /var/lib/vservers directories will be placed on the DRBD partition.
In case the main machine that runs the Vservers goes down, the synchronized second machine should take over and automatically start the Vservers.
Basically this is an on-line RAID solution that can keep your services running in case of hardware failure, it is NOT a back-up replacement.
The cost for this setup is that you always have 1 idle machine standby, this cost can be justified by the fact that Linux-Vserver enables you to make full use of the 1 machine that is running, you also could consider to run this on a little less expensive (reliable) hardware.
Also note that i will be using R1 style configuration for heartbeat, R1 style can be considered to be depreciated when using Heartbeat2 but i could not get my head around the R2 xml configuration, so if you want R2 you might want to have a look here. Fail-over)
The partitioning looks as follows
c0d0p1 Boot Primary Linux ext3 10001.95 c0d0p5 Logical Linux swap / Solaris 1003.49 c0d0p6 Logical Linux 280325.77
machine1 will use the following names.
- hostname = node1
- IP number = 192.168.1.100
- is primary for r0 on disk c0d0p6
- physical volume on r0 is /dev/drbd0
- volume group on /dev/drbd0 is called drbdvg0
machine2 will use the following names.
The Volume Group and the Physical Volume will be identical on node2 if this one becomes the primary for r0.
- hostname = node2
- IP number = 192.168.1.200
- is secondary for r0 on disk c0d0p6
Loadbalance-Failover the network cards
Maybe not very specific to Vserver, Heartbeat or DRBD, but loadbalancing your network cards for failover is always usefull. Some more indepth details by Carla Schroder can be found here. [[1]] I did not do it for the DRBD crossover cable between the nodes while this is actually highly recomended. We need both mii-tool and ethtool.
apt-get install ethtool ifenslave-2.6
nano /etc/modprobe.d/arch/i386
To load the modules with the correct options at boot time.
alias bond0 bonding options bond0 mode=balance-alb miimon=100
And set the interfaces eth0 and eth1 as slaves to bond0, also eth2 is set here for the crossover cable for the DRBD connection to the fail over machine.
nano /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto bond0 iface bond0 inet static address 18.104.22.168 netmask 255.255.255.0 network 184.108.40.206 broadcast 220.127.116.11 gateway 188.8.131.52 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 18.104.22.168 dns-search example.com up /sbin/ifenslave bond0 eth0 eth1 down ifenslave -d bond0 eth0 eth1 auto eth2 iface eth2 inet static address 192.168.1.100 netmask 255.255.255.0
This way the system needs to be rebooted before the changes take effect, otherwise you should load the drivers and ifdown eth0 and eth1 first before ifup bond0 but i'm planning to install a new kernel anyway in the next step.
Install the Vserver packages
apt-get install linux-image-2.6-vserver-686-bigmem util-vserver
As usual a reboot is needed to boot this kernel.
With Etch i found that the Vserver kernel often ended up as second in the grub list, not so in Lenny but to be safe check the kernel stanza in /boot/grub/menu.lst especially when doing this from a remote location.
Install DRBD8, LVM2 and Heartbeat
apt-get install drbd8-modules-2.6-vserver-686-bigmem drbd8-module-source lvm2 heartbeat-2
not sure about this, but DRBD always needed to be compiled against the running kernel, is this still the case with the kernel specific modules? I did not check but it would be good to know in case of a kernel upgrade.
Build DRBD8
Although packages are available in the repositorie for DRBD8, the purpose of these packages is that you can built it easily from source and patch the running kernel.
To do this we just issue this command
m-a a-i drbd8
And to load it into the kernel..
depmod -ae
modprobe drbd
Configure DRBD8
Now that we have the essentials installed we can configure DRBD. Again, i will not go in to the details of all the options here so check out the default config and http://www.drbd.org/ to find a match for your set up.
mv /etc/drbd.conf /etc/drbd.conf.original
nano /etc/drbd.conf
global { usage-count no; } common { syncer { rate 100M; } } resource r0 { protocol C; handlers { pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt f"; pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt f"; local-io-error "echo o > /proc/sysrq-trigger ; halt f"; outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5"; } startup { degr-wfc-timeout 120; # 2 minutes. } disk { on-io-error detach; } net { after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect; } syncer { rate 100M; al-extents 257; } on node1 { device /dev/drbd0; disk /dev/cciss/c0d0p6; address 192.168.1.100:7788; meta-disk internal; } on node2 { device /dev/drbd0; disk /dev/cciss/c0d0p6; address 192.168.1.200:7788; meta-disk internal; } }
Before we start DRBD we change some permissions, otherwise it will ask for it. So on both nodes
chgrp haclient /sbin/drbdsetup chmod o-x /sbin/drbdsetup chmod u+s /sbin/drbdsetup chgrp haclient /sbin/drbdmeta chmod o-x /sbin/drbdmeta chmod u+s /sbin/drbdmeta
Create the DRBD devices
On both nodes
drbdadm create-md r0
drbdadm create-md r0
drbdadm up r0
drbdadm up r0
The following should be done on the node that will be the primary!
On node1
drbdadm -- --overwrite-data-of-peer primary r0
watch cat /proc/drbd should show you something like this
version: 8.0.13 (api:86/proto:86) GIT-hash: ee3ad77563d2e87171a3da17cc002ddfd1677dbe build by phil@fat-tyre, 2008-08-04 15:28:07 0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:62059328 nr:0 dw:3298052 dr:58770141 al:2102 bm:3641 lo:1 pe:261 ua:251 ap:0 [===>................] sync'ed: 22.1% (208411/267331)M finish: 4:04:44 speed: 14,472 (12,756) K/sec resync: used:1/61 hits:4064317 misses:5172 starving:0 dirty:0 changed:5172 act_log: used:0/257 hits:822411 misses:46655 starving:110 dirty:44552 changed:2102
Configure LVM2
<note important> LVM will normally scan all available devices under /dev, but since /dev/cciss/c0d0p6 and /dev/drbd0 are basically the same this will lead to errors where LVM reads and writes the same data to both devices. So to limit it to scan /dev/drbd devices only we do the following on both nodes.
cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf.original
nano /etc/lvm/lvm.conf
#filter = [ "a/.*/" ] filter = [ "a|/dev/drbd|", "r|.*|" ]
to re-scan with the new settings on both nodes
Create the Physical Volume
The following only needs to be done on the node that is the primary!!
On node1
pvcreate /dev/drbd0
Create the Volume Group
The following only needs to be done on the node that is the primary!!
One node1
vgcreate drbdvg0 /dev/drbd0
Create the Logical Volume
Yes, again only on the node that is primary!!!
For this example about 50GB, this leaves plenty of space to expand the volumes or to add extra volumes later on.
On node1
lvcreate -L50000 -n web drbdvg0
Then we put a file system on the logical volumes
mkfs.ext3 /dev/drbdvg0/web
create the directory where we want to mount the Vservers
mkdir -p /VSERVERS/web
and mount the volume group to the mount point
mount -t ext3 /dev/drbdvg0/web /VSERVERS/web/
Get informed
Offcourse we want to be informed later on by heartbeat in case a node goes down, so we install postfix to send the mail.
This should be done on both nodes
apt-get install postfix mailx
and go for the defaults, "internet site" and node1.example.com"
We don't want postfix to listen to all interfaces,
nano /etc/postfix/main.cf
and change the line at the bottom to read like this, otherwise we get into trouble with postfix blocking port 25 for all the Vservers later.
inet_interfaces = loopback-only
Get aquinted
Add the other node in the hosts file of both nodes, this way Heartbeat knows who is who.
so for node1 do
nano /etc/hosts
and add node2
192.168.1.200 node2
Get intimate
Set up some keys on both boxes so we can ssh login without a password (defaults, no passphrase)
then copy over the public keys
scp /root/.ssh/id_rsa.pub 192.168.1.100:/root/.ssh/authorized_keys
scp /root/.ssh/id_rsa.pub 192.168.1.200:/root/.ssh/authorized_keys
Configure Heartbeat
Without the ha.cf file Heartbeat wil not start, this should only be done on 1 of the nodes.
nano /etc/ha.d/ha.cf
autojoin none #crm on #enables heartbeat2 cluster manager - we want that! use_logd on logfacility syslog keepalive 1 deadtime 10 warntime 10 udpport 694 auto_failback on #resources move back once node is back online mcast bond0 188.8.131.52 694 1 0 bcast eth2 node node1 #hostnames of the nodes node node2
This one also on 1 of the nodes
nano /etc/ha.d/authkeys
auth 3 3 md5 failover ## this is just a string, enter what you want ! auth 3 md5 uses md5 encryption
chmod 600 /etc/ha.d/authkeys
<note> We will be using heartbeat R1-style configuration here simply because i don't understand the R2 xml based syntax. </note> We only did the above 2 config files on 1 node but we need it on both, heartbeat can do that for us.
Heatbeat behavior
After above 2 files are set, the haresources is where we want to be to control Heartbeats behaviour. This is an example for 1 Vserver that we will set up later on.
nano /etc/ha.d/haresources
node1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::18.104.22.168/bond0 MailTo::email@example.com::DRBDFailure
The above will default the Vserver named web to node1 and specify the mount points, the vserver-web script will start and stop heartbeat, the sendarp is for notifying the network that this IP can be found somewhere else then before. (have added the SendArp an extra time below for better result)
Another example for more than 1 Vserver, We only specify 1 default node here for all Vservers and the same DRBD disk and Volume Group, the individual start scripts and mount points are specified separately, mind the \, its all in 1 line. the last mail command is only needed once.
node1 \ drbddisk::r0 \ LVM::drbdvg0 \ Filesystem::/dev/drbdvg0/web::/VSERVERS/web::ext3 \ Filesystem::/dev/drbdvg0/ns1::/VSERVERS/ns1::ext3 \ Vserver-web \ Vserver-ns1 \ SendArp::220.127.116.11/bond0 \ SendArp::188.8.131.52/bond0 \ MailTo::email@example.com::DRBDFailure
start/stop script
The vserver-web script as specified to be called by heartbeat above is basically a demolished version of the original R2 style agent by Martin Fick from here http://www.theficks.name/bin/lib/ocf/VServer.
To handle ARP properly, a smaller script has been added to make sure the IP brought up on the new host (should fail over occur) can still communicate with the network. Being by installing "arping"
apt-get install arping
/bin/garpand set the gatewayIp to be that of your router/host gateway.
#!/bin/sh gatewayIp="XXX.XXX.XXX.XXX" host=$1 # Send a gratuitous arp to claim ownership of the new IP for i in `cat /etc/vservers/$host/interfaces/*/ip`; do echo "ARPing $i" arping -c 1 -S $i $gatewayIp done; exit
What i did is remove the sensible top part and replace "$OCF_RESKEY_vserver" with the specific Vserver name, also added an extra
/etc/ha.d/resource.d/SendArp 184.108.40.206/bond0 start
to the start part because i had various results when done by Heartbeat in the first tests i did, not sure if it is still needed but i guess it doesn't hurt.
nano /etc/ha.d/resource.d/Vserver-web
#!/bin/sh # # License: GNU General Public License (GPL) # Author: Martin Fick <email@example.com> # Date: 04/19/07 # Version: 1.1 # # This script manages a VServer instance # # It can start or stop a VServer # # usage: $0 {start|stop|status|monitor|meta-data} # # # OCF parameters are as below # OCF_RESKEY_vserver # ####################################################################### # Initialization: # #. /usr/lib/heartbeat/ocf-shellfuncs # #USAGE="usage: $0 {start|stop|status|monitor|meta-data}"; # ####################################################################### # # #meta_data() { # cat <<END #<?xml version="1.0"?> #<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> #<resource-agent name="VServer"> # <version>1.0</version> # <longdesc lang="en"> #This script manages a VServer instance. #It can start or stop a VServer. # </longdesc> # <shortdesc lang="en">OCF Resource Agent compliant VServer script.</shortdesc> # # <parameters> # # <parameter name="vserver" unique="1" required="1"> # <longdesc lang="en"> #The vserver name is the name as found under /etc/vservers # </longdesc> # <shortdesc lang="en">VServer Name</shortdesc> # <content type="string" default="" /> # </parameter> # # </parameters> # # <actions> # <action name="start" timeout="2m" /> # <action name="stop" timeout="1m" /> # <action name="monitor" depth="0" timeout="1m" interval="5s" start-delay="2m" /> # <action name="status" depth="0" timeout="1m" interval="5s" start-delay="2m" /> # <action name="meta-data" timeout="1m" /> # </actions> #</resource-agent> #END #} vserver_reload() { vserver_stop || return vserver_start } vserver_stop() { # # Is the VServer already stopped? # vserver_status [ $? -ne 0 ] && return 0 /usr/sbin/vserver "web" "stop" vserver_status [ $? -ne 0 ] && return 0 return 1 } vserver_start() { vserver_status [ $? -eq 0 ] && return 0 /bin/garp web /usr/sbin/vserver "web" "start" vserver_status /etc/ha.d/resource.d/SendArp 184.108.40.206/bond0 start } vserver_status() { /usr/sbin/vserver "web" "status" rc=$? if [ $rc -eq 0 ]; then echo "running" return 0 elif [ $rc -eq 3 ]; then echo "stopped" else echo "unknown" fi return 7 } vserver_monitor() { vserver_status } vserver_usage() { echo $USAGE >&2 } vserver_info() { cat - <<!INFO Abstract=VServer Instance takeover Argument=VServer Name Description: A Vserver is a simulated server which is fairly hardware independent so it can be easily setup to run on several machines. Please rerun with the meta-data command for a list of \\ valid arguments and their defaults. !INFO } # # Start or Stop the given VServer... # if [ $# -ne 1 ] ; then vserver_usage exit 2 fi case "$1" in start|stop|status|monitor|reload|info|usage) vserver_$1 ;; meta-data) meta_data ;; validate-all|notify|promote|demote) exit 3 ;; *) vserver_usage ; exit 2 ;; esac
To make this file executable by Heartbeat
chmod a+x /etc/ha.d/resource.d/Vserver-web
not needed????
There is some more interesting discussion going on here, Advanced_DRBD_mount_issues) , for those who have multiple Vservers on multiple DRBD devices. Not sure if it also applies for this setup but i'm using it without any drawbacks at the moment.
Below is a changed version of option 4 by Christian Balzer
nano /etc/ha.d/resource.d/drbddisk
stop) # Kill off any vserver mounts that might hog this VNSPACE=/usr/sbin/vnamespace for CTX in `/usr/sbin/vserver-stat | tail -n +2 | awk '{print $1}'` do MPOINT="`$VNSPACE -e $CTX cat /proc/mounts | grep $RES | awk '{print $2}'`" echo Unmounting mount point $MPOINT from within context $CTX ### MOUNT POINT IS COMPULSORY. DEVICE NAME DOES NOT WORK!!! $VNSPACE -e $CTX /bin/umount $MPOINT || continue; done # exec, so the exit code of drbdadm propagates exec $DRBDADM secondary $RES
Create a Vserver
Note that we already have mounted the LVM partition on /VSERVERS/web in an earlier step, we're going to place both the /var and /etc directories on the mountpoint and symlink to it, this way the complete Vserver and its config are available on the other node when mounted.
mkdir -p /VSERVERS/web/etc
mkdir -p /VSERVERS/web/barrier/var
When making the Vserver it will be in the default location /var/lib/vservers/web and its config in /etc/vservers/web
vserver web build -m debootstrap --hostname web.example.com --interface bond0:184.108.40.206/24 -- -d etch -m http://18.104.22.168:3142/debian.apt-get.eu/debian
enter the root password
Create a normal user account now? <No>
Choose software to install: <Ok>
On node1 we move the Vserver directories to the LVM volume on the DRBD disks and make symlinks from the normal locations.
On node1
mv /etc/vservers/web/* /VSERVERS/web/etc/
rmdir /etc/vservers/web/
ln -s /VSERVERS/web/etc /etc/vservers/web
mv /var/lib/vservers/web/* /VSERVERS/web/barrier/var
rmdir /var/lib/vservers/web/
ln -s /VSERVERS/web/barrier/var /var/lib/vservers/web
We need to set the same symlinks on node2, but the we need the Vserver directories available there first. The mounting should be handled by heartbeat by now so we make our resources move to the other machine.
On node1
/etc/init.d/heartbeat stop
On node2
ln -s /VSERVERS/web/etc /etc/vservers/web
ln -s /VSERVERS/web/barrier/var /var/lib/vservers/web
On node1
/etc/init.d/heartbeat start
Vserver web start
and enjoy!

subset: commoncrawl


text:
The Art of Chiropractic
The detection of the vertebral subluxation and deliverance of the chiropractic adjustment to correct the subluxation comprises the art of chiropractic.
The detection and removal of the subluxation is not a matter of using a set of simple tests in a yes-no fashion. Mastering the ability to effectively identify vertebral subluxations takes years of study, practice and observation. Similarly, the chiropractic adjustment is a skilled procedure requiring many years of training and practice. In fact, learning to successfully "adjust" the joints of the spinal column and extremities is one of the more frustrating tasks the chiropractic student encounters.
Learning to properly assess and adjust the spine and extremities safely and effectively, is an extremely refined art and should only be performed by a chiropractor.


text:
Britain is in the grip of a new "flesh-eating bug spread by sneezes and coughs", according to The Sun.
The basis of this news was a laboratory study that investigated why healthcare-acquired methicillin-resistant staphylococcus aureus (MRSA) bacteria rarely cause infections in healthy individuals. The study found that healthcare-acquired MRSA has a high level of antibiotic resistance, but that this property comes at a cost of reduced virulence (being less able to cause infection). Conversely, the study found that the type of MRSA that is usually caught in a community setting is more virulent, but weaker against treatment with antibiotics.
This study has not investigated the transmission, effects or number of cases of community-acquired MRSA in the UK, the discussion of which formed the basis of many news reports on the research. The researchers state that MRSA outside the healthcare system and in the community is a growing concern, but cases are still very rare. This interesting research contributes to our knowledge of MRSA, rather than warning us of an invasion of airborne superbugs.
The study was carried out by researchers from the University of Bath and the University of Nottingham in the UK; University College Dublin in Ireland; and Texas A&M Health Science Centre and the University of Texas in the US. It was funded by the UK Medical Research Council and a Biotechnology and Biological Sciences Research Council Studentship. The study was published in the peer-reviewed Journal of Infectious Diseases.
This story was widely covered. Most reports were alarmist, concentrating on the supposed emergence of a dangerous, highly infectious new form of community-acquired MRSA. Many newspapers suggested that transmission is easy, that it can lead to a "flesh-eating form of pneumonia", and that cases are on the increase. These claims seem to be based on the press release for the research rather than the research paper itself. The study was actually laboratory-based research that had investigated why healthcare-acquired MRSA bacteria rarely cause infections in healthy individuals. Although there was some investigation of community-acquired MRSA, the results do not justify the news coverage.
This was a laboratory-based study. It aimed to examine why healthcare-acquired MRSA bacteria rarely cause infections in healthy individuals. Healthcare-acquired, or hospital-acquired, means that the bacteria cause infections that mostly occur in healthcare environments.
The researchers initially covered the nature of MRSA and how it resists certain types of antibiotics. It is already known that MRSA is resistant to the antibiotics methicillin and oxacillin because it has acquired a piece of DNA called a 'mobile genetic element'. Methicillin is an old antibiotic that is now no longer used and has been replaced by flucloxacillin.
Many staphylococcus aureus bacteria have now also developed resistance to the penicillin group of antibiotics (because they produce enzymes that can make penicillin inactive), but they are usually still susceptible to the antibiotic flucloxacillin. MRSA, however, does not have this susceptibility to flucloxacillin, and is, therefore, harder to treat than most staphylococci bacteria, needing stronger antibiotics still.
One particular genetic element that is key for deciding the properties of MRSA is called the 'staphylococcal cassette chromosome mec' (SCCmec). There are several different versions of this cassette, which each provide bacteria with slightly different properties. The researchers state that healthcare-acquired MRSA have type I, II or III SCCmec elements, whereas community-acquired MRSA have type IV and V elements. These different cassettes all contain a gene (mecA) that codes for a protein called PBP2a, located in the cell wall of the bacteria. PBPs (penicillin binding proteins) are a normal part of the cell wall of many bacteria. Many antibiotics work by inactivating PBPs, which cause the bacteria to die. However, the version of PBP encoded by mecA, PBP2a, is less sensitive to antibiotics, allowing the bacteria to survive.
The researchers initially determined whether deleting the mecA gene, which encodes the PBP2a cell wall protein, affects the toxicity of MRSA. They then took a healthcare-acquired MRSA strain and a version of this strain that they genetically modified to delete the mecA gene, and performed tests to see how each was able to break up a type of immune cell called a T cell in the laboratory.
The researchers then investigated the ability of the different strains to respond to 'signalling molecules', which normally cause the bacteria to activate their production of toxins. The virulence of these strains was confirmed using mouse experiments.
The researchers then compared the production of the PBP2a cell wall protein, T-cell toxicity and the resistance of healthcare-acquired MRSA to antibiotics, compared with community-acquired MRSA.
The researchers found that deleting the mecA gene caused the MRSA to become more toxic. This was because the expression of mecA results in cell wall changes that interfere with MRSA's ability to detect or respond to signals to switch on toxin expression. MRSA with mecA deleted was also more virulent in a mouse model, causing mice to lose weight or die.
The researchers then compared MRSA strains with different SCCmec elements: those with type II elements (typical of healthcare-acquired MRSA) and those with type IV elements (typical of community-acquired MRSA). They found that typical community-acquired MRSAs had lower resistance to the antibiotic oxacillin, were more toxic to the immune system's T-cells and expressed less PBP2a.
"As a direct result of its high level of antibiotic resistance, healthcare-acquired MRSA is impaired in its ability to cause infection, which can explain its inability to cause infection in community settings, where antibiotic usage and the prevalence of susceptible patients are low." In other words, healthcare-acquired MRSA makes a trade-off, sacrificing its ability to spread to healthy individuals in order to fight off a greater range of antibiotics.
This interesting study helps explain why healthcare-acquired MRSA infections are rarely found in healthy individuals. It found that expression of a gene that produces one of the proteins responsible for MRSA's antibiotic resistance caused it to be less toxic. It also showed that typical community-acquired MRSA strains express less of this antibiotic-resistance protein, but are more toxic.
However, this intriguing lab study did not investigate the transmission, effects or number of cases of community-acquired MRSA in the UK, the discussion of which formed the majority of the news reports. On this basis, the research itself does not support the claims that we are under siege from an 'airborne, bacteria-resistant, flesh-eating superbug', as newspapers have today suggested.


text:
Your shopping cart is empty!
All Categories
Published by: eXtasy Books
Author : Carol A. Guy
Page :260
Word Count :62000
Publication Date :2010-07-28
Series : Canid#1
Heat Level :
Available Formats : Night of the Canid (pdf) , Night of the Canid (prc) , Night of the Canid (epub) , Night of the Canid (mobi)
Category : Contemporary Romance , Romance
Will the dark secret buried in the past save or destroy?
Amnesia victim, Talia Coe, has found the perfect haven in the small Pennsylvania town of Arcadia. She lives a quiet life, immersing herself in her art, thanks to her mentor, local art gallery owner, Victor Kane. But Caroline Thomas, Victor's lover, suspects there is more to the relationship. Driven by jealousy, she enlists the aid of local reporter, Craig Lynch, in finding out who Talia is and how she ended up in Arcadia. Talia craves peace and quiet, but is plagued by dreams of a mysterious man, whose presence stirs up uncertainty and fear inside of her. One night during an art show at the Kane Gallery, the man of her dreams appears, shaking her to the core and setting in motion a series of events that will redefine what and who she is. Later, when Craig Lynch is found murdered in the woods near Talia's cottage, things spin out of control for everyone involved as Talia discovers that she is at the center of a terrifying deception that could destroy her.
As Talia got dressed, she thought about her upcoming meeting with Victor. He was a strange man. And she was almost sure something was going on between him and his office manager, Caroline Thomas.For some reason, Talia sensed that Caroline didn't like her, although she couldn't recall doing anything to offend the woman. She almost acts jealous of the attention Victor gives me.She ran a brush through her hair and applied a smattering of lipstick. She needed little else to make herself look presentable. Her skin was clear and smooth, with just a few freckles scattered across the bridge of her nose.A knock at the cottage door startled her and she jumped. When she saw her visitor though the screen door, she muttered, "That will teach me to close both doors."Craig Lynch smiled a greeting from the small stone stoop, which served as a front porch. "Hey, Tally, want to come out and play?" he finally said, the grin widening."No comment," Talia responded. She did not open the door or invite him inside."Good one, very funny. Actually I'm here in my capacity as a reporter. I want to do a story about you and the upcoming art exhibit for the paper. Need to set up a time. How about over dinner tomorrow night. You pick the place."He was, she would guess, somewhere in his mid-thirties. He was partially balding and slightly built. His pale blue eyes ogled her from behind a pair of rimless glasses."I'm just on my way out, Craig. Call me later," she said, opening the screen door. She remembered she didn't have her purse or keys. She went to grab them from the coffee table, and when she turned around, he was standing right behind her."Nice dress, by the way," he said, reaching out to touch the silky skirt. He rubbed the fabric between his thumb and forefinger."I have to go, Craig. As I said, call me and we'll set up a time for me to come by the newspaper office and do the interview."Craig had been flirting with her since she'd moved to town and it hadn't taken her long to grow tired of it. However, he never seemed to get the message that she wasn't interested. In fact, something about him almost repulsed her.He let go of her skirt and moved his hand to her hip. Sidestepping, she walked around him and went to the door, opening it wide.He followed her. "Need a ride?" he asked, his thin lips curling up in a half-smile. They both stepped outside."I'd rather walk into town. It's a great day and I like being outdoors," she said as she locked her door, then strode past him and down the cobblestone walk. When Talia entered the art gallery, the first person she saw was Caroline Thomas, hovering over an older, middle-aged couple who were studying a bronze sculpture.She looked around for Victor, but didn't see him so contented herself with examining some of the pieces that were propped against the far wall. In fact, most of the paintings that usually hung on the walls had been removed and the place smelled of fresh paint. Victor was obviously sprucing things up for the upcoming show."I'm going to use easels for a lot of the paintings, especially yours," Victor said, from the mouth of the short hallway that separated the showroom from the offices.Funny, she could have sworn he hadn't been in there when she'd looked for him a few moments ago.He came to her, then reached out and took both of her hands in his. "You look beautiful as always. So what do you think of the place?" He beamed proudly.It did look good. The new, lighter shades made a world of difference. "It's perfect." She smiled at him, thinking that he really looked more suited to big city life. So why had he tucked himself away in this little village so off the beaten path?Caroline joined them, looking Talia up and down, before turning her attention to Victor. "The Swansons want that sculpture. I'm sending it out tomorrow, but they want a word with you."As Victor went to talk to the Swansons, Caroline leveled her gaze on Talia. "Victor is quite enthused about your paintings. They will be ready, won't they?"The other woman's animosity was obvious. "They'll be ready," Talia replied coolly."See that they are. I wouldn't want to see Victor disappointed," Caroline said before walking away.Suddenly, the hair at the nape of Talia's neck stirred and she shivered. I'm being watched, but from where? Out of the corner of her eye, she caught a fleeting glimpse of someone staring in the front window. But when she turned to look, there was no one there.
$2.50 $4.99
Tags: Mystery, Paranormal, Romance, Shapeshifter, Thriller


text:
As long as you boil them first, fry crisp, and season earnestly, the rest is open to wild experimentation. I've used all sort of blanching liquids, spice blends, and sauces, and never been disappointed.
pinch of salt
Chef John I am addicted to your blog! I am committed to watching EVERY video. They are informative & fun! I'll let you know hen I've finished watching them all! Is a cookbook coming? I hope so.
Please consider doing red beans & rice. You're prime rib is killer.
Your fan, paula
Chef John,
Those looked great. But I'm confused. At times you were cooking potatoes, and at other times you were cooking potatas.
Which is it?
I'm Spanish and I approve of this recipe.
These lil' taters look delicious. I'm liking the sauce ingredients...seems like a grown up version of the fry sauce I used to get at a local drive-in. Fond memories!!
Dear Chef John, I just have to say I love your videos and your voice! I love and hate how you include crunching sounds in your videos. I to make some tuna nuggets and it was awesome! It seems I have to try this one out soon. The crunching sounds made me drool on the keyboard.
Hi John
As always, such a mouth-watering video!
I was just wondering, would adding a little white vinegar (maybe half a tablespoon) to the blanching water help prevent the potatoes from getting to tender/mushy?
I'm asking because your video reminds me of this article on "perfect" French fries: http://aht.seriouseats.com/archives/2010/05/the-burger-lab-how-to-make-perfect-mcdonalds-style-french-fries.html
Either way, I love your recipes: in fact, my meat sauce is currently simmering for a nice "Christmas" lasagna tonight while a NY Sunshine cheesecake is cooling in the oven. :D
Thanks a bunch for the cool recipes!
Never used vinegar, but acid can toughen boiling veggies, so maybe that's it.
Wow! They look great! By the way "bravas" might also mean angry, I've always thought that was rhe meaning of that particular "brava" but I like fierce too.
Thanks Chef John! I couldn't stop myself, I picked up a couple "putatuhs" tonight to make these with dinner. I had to substitute plain Chili powder for the paprika and chipotle, and I wasn't able to effectively turn garlic into paste, but holy moly I had no clue something so overwhelmingly delicious could come from my hands!
The potatoes were heavenly. I have never made fried potatoes that good before. Foolproof, delicious, amazing as always, Chef!
I'm gushing because my friends and I turned into vicious animals around a carcass with this one, as promised. Trance eating. God in potato form.
Everybody : cook this!
I studied abroad in Spain for 4 months and patatas bravas are one of my top cravings. These seem like a cross breed of patatas bravas and patatas alioli and everything about it seems so right.
I had planned to go buy the sherry vinegar after work yesterday then come home and make these, but I was unable to find any (not a surprise because the middle of nowhere looks like a vast city compared to my town). I will order some on Amazon, but it will take awhile to get here and I want these so bad. Is there anything I could substitute in the meantime?
Something I found surprising was how not "spicy" this dish was in Spain. Or so I thought. When I think of the word spicy I imagine the food will be hot; probably because most spicy food in the US is like this. Yet in Spain, spicy took on a whole new definition, one much closer to the dictionary definition. These spuds lack searing heat, but they are still spicy in that they are zesty or piquant. Your mouth tingles like it does when you bite into a hot pepper, but you are never hit with the "ohmygod did I just lick a hot stove?!?" feeling.
Hello Chef John!
Tried these potatoes yesterday and it all turned out beautifully! So crispy!
Love your recipes and videos, keep up with the good work!
Regards from Brazil,
Hi Chef, these and your sauce look awesome. I'm writing to let you know they remind me of part of a picada - one of my favorite dishes - which I've never seen in the states. It's grilled cubes of filet mignon, sausage, pork loin, fried potatoes and plantains over lettuce, with wedges of tomatoes all eaten with toothpicks. Simple but tasty. It's simple but so fun to eat.
I really love your blog. You have great recipes that I'm going to cook for my family.
New Follower!!!
Keep up the good work :-)
Thanks for posting this. :) we are having a christmas party this weekend and about 3/4s of our food that we are serving comes from you. We just needed a spicy aioli sauce abd this will be great. ;)
Hi Chef John. You've helped me out of sticky food situations more than once and these wonderfuly Fierce Patatas are just one example! I made them to perfection following your instructions. I can't tell you how much I enjoy ALL your videos and the pleasing way you narrate same. I'd rather watch your videos than the Food Network any day.
Love the Beyonce ref! lol But the sound of you smacking while eating made me want to go smack the taste out of your mouth! And for added emphasis, I then went to go smack the taste out of my father and my husbands mouth's as well. You will not be alone ;)
I will defiantly make this! It seems simple and I'm in the process of re-seasoning my great^2 grandmother's 60 year old cast iron skillet (my father washed it using soap and water) and this seems like the perfect recipe to help the process along!
Thanks for all your hard work!
(and you still deserve your smack for smacking on camera! lol) :)
Thank you!!
If I could speak for the university crowd here- Chef John, you suck dude. I should be studying, but I just can't stop munching these potatoes. Love this.
These potatoes were SOOOO good. Even though I had tomato paste on hand...I completely spaced out and forgot about it. Instead I used Frank's Buffalo sauce!
We made this (with steak) for a friend. 20 minutes after we were done eating, our friend still hadn't said anything. When I asked him if he was OK he said, "OMG yes....I'm just daydreaming about your potatoes.
He kept asking me about the recipe so I turned him onto your blog.
What happened to my previous comment.
Damn google and blogspot!
Anyway, I loved your recipe!
Here you can see a photo with the final results:
Nice!! Thanks!
Hello Chef John!
I made these last night, for a tapas party, and they where a big hit! Eventhough I didn't have the chipotle or smoked paprika, I just used a mix of spicy paprika and chili powder, they still came out great! Thanks for all the fun, yummy and informative recipies on here!
Kind regards,
Crispy on the outside, super flavor explosion on the inside.
I ate these with a ribeye and some broccoli. They were delicious. They were better than supermarket frozen potatoes. They were also better than restaurant fries because they were fresh, hot, and not over salted.
I finally made these the other day and they were absolutely amazing. I wound up not making the sauce because I was missing a few ingredients, but they were so good I didn't mind. As I was waiting for the oil to heat up I was popping the potatoes like they were candy (so flavorful and I am normally not a huge fan of boiled potatoes). I cannot wait to make these again. Thank you Chef John for another delicious recipe.
Hi Chef John,
I made these as a side with sausage and eggs for breakfast, and they were great. I love how you impart knowledge in your videos. Great Job!!!
Hi Chef John. Because I lived in Zaragoza, Spain for a couple of years, I just had to indulge myself by watching your version of what was one of my favorite tapas durning my stay there (Kinda wierd because there were so many of them!). The first thing I noticed right off the bat was the the name difference. Back in the day (last century circa 1978..hehe), the local tapas bars referred to them as "Papas Bravas" - No biggie, I' still going to try them anyway! Also, yours were prepared a bit different. In the orginal local recipe, the potatoes were cubed and fried in olive oil as opposed to boiling them first. When they were done, the finished product was topped off with their own homemade mayonnaise along with a dash of salt and a little bit of paprika (sometimes cayenne). It was served with a piece of fresh bread (to die for!)and a cold glass of the local brew on tap. I'm still going to try yours! :-)
Dang! I'll have ya' know 'dat these 'taters and 'dat tricked-up mayonaise was gOod!
Not fierce, not brave not bold, but simply GOOD!
Even my finicky lady-friend approved of these 'taters! Thanks!
I have made this recipe for my husband approx 4 times because he loves them so much.
Last night, as we were watching the Bears beat the Packers, my husband was popping these taters in his mouth. He kept saying, "OMG….OMG……OMG…..these are so goooooooood, f'ing Chef John….he knows what's up……OMG…OMG".
I think my husband married me because of my cooking. Thanks for helping me get hitched Chef John…much appreciated!
I made these; soooo delicious.
I'm not sure about you, but I kept thinking bravo instead of bravas.
i did a stupid thing i didnot know how to make the potato dry in air so i wash them and the flavor of the water is gone .. i want to stop them from contiune cooking and think about something what if i didnot cut the potato it will take longer time but maybe then i can take it out of the water when it is 70% done and cut them and let them cool whithout washing them .. what do you think ??
Looks delicious, but it's not "patatas bravas". You're mixing two recipes.
The cut and fry is correct for patatas bravas. The brava sauce is spicy chili, paprika, onion and garlic, with a pork velouté. The salsa also has some brandy and vinegar.
The aliolí potatoes are cut about the same way, maybe a bit bigger, but they are only cooked. Your aliolí sauce is good for "patatas aliolí". Once the aliolí potatoes are cooled, you mix it with the sauce. It's served cold.
Keep up the good work.
Oh chef how I love thee, yet how can you say "recipe from Spain" and in the same video mention cumin and chipotle?
Chef john no puedo desengancharme de ti. Gracias
Hello Chef John.
I made these yesterday for my wife. She's Catalan and has been eating bravas all her life. She said they were amazing and that we didn't need to go out to find bravas any more. I've been eating bravas for 10 years and I agreed. Massive thumbs up! Thank you!
Mine came out not crispy.
Maybe they were under cooked in the water. They were air dried.
I will try try again.


text:
With exemplary quality, we boast that our HP0-S43 exam products are the best of all. Our experts constantly and thoroughly study the HP syllabus for the HP0-S43 exam to adjust your material to the latest. This repute is also corroborated by our customers and it can also be seen in the testimonial we receive.
Good preparation is the key to acing any exam. We offer exceptional preparation material for the HP HP0-S43 exam. This practice material is provided for candidates who aspire to clear the HP HP0-S43 exam in the first attempt. The HP HP0-S43 exam preparation products come in two formats. These include the HP0-S43 exam practice material in PDF format and the practice test software.
The HP0-S43 PDF helps you in using this product across multiple devices including mobiles and tablets. Making to possible to take the HP0-S43 exam reading, questions and answers, with you at ease. Whereas, the HP0-S43 practice test software simulates the real HP0-S43 exam scenario, where you can practice for the actual HP exam. Try the free demo and read documentation to explore the feature
Once you make the purchase, we are fully responsible for your success. The HP exam material included in the software and PDF files is updated regularly to meet the requirements of the latest HP certification syllabus. Our experts strive hard provide you with the latest HP0-S43 exam questions.
Seamless after Sale Services and Customer Support!
We give our customers, support and services that is unmatchable in the industry. Our help is available to you 24/7 and you can forward us any queries that you face with the HP0-S43 exam products.
To keep abreast with the latest HP technology/syllabus upgrades, we provide regular updates to our HP HP0-S43 exam products. These updates are timely launched on the website and can be downloaded for free. Read more on the FAQ page.
We go to great extent to protect your transactions and private information. The top of the line security which make us as safe as a fortress. So you should not worry about the information you share on this site for purchasing HP0-S43 exam study material.
Don't just rush into buying the HP0-S43 exam products from us. We encourage you to check and assure the quality by trying the free demo available. Download the free trial for HP HP0-S43 exam preparation material now. Do give us your feedback on it as well!


text:
Allyson Felix has won the women's 200 meter race in London's Olympic Stadium, running a time of 21.88. Jamaica's Shelly-Ann Fraser-Pryce took the silver medal at 22.09, as she wasn't able to track Felix down in the closing stretch.
The four center lanes were stacked with speed, with Jamaica's Fraser-Pryce and defending gold medalist Veronica Campbell-Brown in lanes 4 and 5, respectively. Just outside of them were Americans Sanya Richards-Ross and Felix, in lanes 6 and 7. And on the outside, in lane 9, was Carmelita Jeter.
As they came out of the final turn, Felix and the two Jamaicans were at the front of the pack, with Fraser-Pryce seemingly poised to challenge Felix for the win. But Felix stayed ahead, maintaining both her focus and her form as the other runners seemed to flag. Fraser-Pryce set a new personal best with her time.
Jeter won bronze, as Campbell-Brown seemed to have trouble matching the other women's accelerations and finished fourth. Sanya Richards-Ross was fifth, at 22.39. The race took place under very calm conditions, with little wind.
Coming into the race, Felix was the current top-ranked runner at the distance. But she had never been unable to unseat Campbell Brown from her Olympic throne in the 200 meters — until Wednesday.
Felix was interviewed by Allison Keyes for an NPR profile in May. Back then, she said, "The 200 is my baby. You know, I love that race..."
Part of the reason she loves it, Felix told Allison, is getting the feeling of being spun off into the straightaway, shooting forward after that final curve.
"I love the 'being whipped-off' feeling — that slingshot when you do it right," she said.
She did it right Wednesday, and finally claimed gold.
Our original post:
There's another star-studded track and field sprint today at the London Summer Olympics, with the women's 200 meter race featuring a bevy of medal winners. The race is slated to start at 4 p.m. ET.
So much talent, so few medals to go around — that sums up the 200.
Let's start with Jamaican Veronica Campbell Brown, who won the last two Olympic gold medals in the event. American Allyson Felix was the runner-up to Brown in both races.
But Felix comes into Wednesday's race after running a blazing 21.69 in her 200 win at the U.S. Olympic trials — the sixth-fastest time in history. She has shown that she has as good a chance as any to claim gold — finally — in her best event.
Also in the field are 100-meter winner Shelly-Ann Fraser-Pryce of Jamaica, American 100-meter silver medalist Carmelita Jeter, and Sanya Richards-Ross of the United States — who has already won gold at the 2012 games, in the 400 meters.
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
By: Associated Press//December 21, 2012//
By TODD RICHMOND
Associated Press
MADISON, Wis. (AP) – Gay rights advocates scored a major win Friday when an appeals court ruled Wisconsin's domestic partnership registry was constitutional, but the victory could be short-lived as conservatives pledged to take the case to the Republican-leaning state Supreme Court.
Conservatives had argued the registry bestows a status similar to marriage on same-sex couples and violates a 2006 state constitutional amendment prohibiting gay marriage or anything substantially similar to it.
The 4th District Court of Appeals disagreed. The court noted that legislators who supported the ban repeatedly said it wouldn't prevent same-sex couples from receiving some benefits and went on to list a range of rights married couples enjoy that same-sex couples still don't, including joint property ownership, joint adoption and the ability to share health benefits even after a divorce.
Fair Wisconsin, the state's largest gay rights group, defended the registry in court. Its executive director hailed Friday's decision.
"It demonstrates that Wisconsin really is about trying to treat people fairly," Katie Belanger said. "That's what we believe in. The amendment was an unfortunate setback for equality in Wisconsin. But we still believe caring and committed couples should have legal protections to take care of each other in times of need."
Democratic lawmakers created the registry in 2009. Same-sex couples who join it are afforded a host of legal rights, including the right to visit each other in hospitals and make end-of-life decisions for one another. About 1,800 couples were on the registry at the end of 2011, according to the latest data from the state Department of Health Services.
Members of the conservative group Wisconsin Family Action filed a lawsuit in 2010 claiming the registry created a legal status substantially similar to marriage for same-sex couples and therefore violated the constitutional ban on gay marriage. The case is the first of its kind in the country, Belanger said; no other states have banned gay marriage and anything similar, while establishing a domestic partner registry, she said.
Republican Attorney General J.B. Van Hollen refused to defend the registry, declaring it was clearly unconstitutional. Former Gov. Jim Doyle, a Democrat, appointed private attorneys to defend it, but Republican Gov. Scott Walker fired them after he took office in 2011 because he, too, believed the registry was unconstitutional. That left Fair Wisconsin as the registry's only defender.
Dane County Circuit Judge Daniel Moeser ruled last summer that the registry was constitutional and not substantially similar to marriage.
Wisconsin Family Action members appealed. The 4th District tried to send the case directly to the state Supreme Court this past July, calling it a novel constitutional issue with statewide significance. The state's high court, which is dominated by conservative justices, refused to hear the case and sent it back to the appellate level.
Austin R. Nimocks, an attorney with the Alliance Defending Freedom, a legal ministry representing Wisconsin Family Action members, said in an email he would appeal Friday's decision to the Wisconsin Supreme Court.
"The people of Wisconsin recognize that marriage provides a strong foundation for a thriving society," Nimrocks wrote. "That's why they approved a constitutional amendment that specifically protects marriage from all imitators. Politicians and activist groups should not be allowed to get around that."
Belanger said her group has always expected the case would end up in front of the state Supreme Court.
"We're confident given two very strong opinions coming from the circuit court and the court of appeals," she said. "We're very well positioned for a successful outcome."
The appeals court issued a unanimous decision in the case, saying voters believed the gay marriage amendment wouldn't block benefits for same-sex couples, in part because Republicans who sponsored the amendment said as much in news releases and newspaper stories.
Specifically, the court pointed to an op-ed piece published in a University of Wisconsin-Madison student newspaper written by Wisconsin Family Action President Julaine Appling, one of the plaintiffs in the case. Appling said in the piece the marriage amendment wouldn't block legislators from considering some "legal construct … that would give select benefits to co-habiting adults."
She released a statement Friday saying her group wouldn't give up.
"The people of Wisconsin have strongly affirmed the lifelong, faithful union of a man and a woman as the fundamental building block of civilization," she said. "Our system of government serves no purpose if politicians can ignore the will of the people with impunity."


text:
Barry "Luckiest guy in the world" Zito vs. Justin "Luckiest guy in the world" Verlander.
Here we are, the nightmare scenario for Dodger fans everywhere (but especially in the Bay Area). The Giants are four wins away from becoming the first team since the Yankees to win two World Series in three years. The Tigers will be able to start likely Cy Young winner Verlander twice in the series, but the Giants are riding another wave of goddamn fairy pixie dust first farted out by Melky "All the benefits, none of the repercussions" Cabrera and continued by the likes of Angel "Mets fans go Whaaaaa?" Pagan and Marco "Plus 50 OPS+ points upon putting on a Giants uniform" Scutaro. So c'mon, Tigers. Act like the badass AL Champions you are and put a stop to this so-called momentum the Giants are riding. We're all counting on you.


text:
In all the negotiations to prevent the fiscal cliff from hurting the economy, potential compromises keep coming apart over the issue of raising income tax rates, especially on high earners. Income taxes stir up strong feelings among voters because of concerns about fairness — and politicians exploit those emotions, whichever party they belong to. As a result, the broader budget discussion keeps getting diverted to focus on tax rates, which actually play only a small role among the causes of current U.S. financial troubles.
In fact, there are really two different budget problems that often get mixed together. One is the current deficit, which totaled more than $1.1 trillion last year, almost double the amount that the U.S. economy can comfortably carry. The other is the long-term accumulation of debt. Even after the U.S. economy fully recovers from the effects of the recession, the federal deficit is projected to remain too high. As a result, the national debt is on course to keep rising as a percentage of GDP until it reaches dangerous levels.
(MORE: Entitlement Cuts Loom as Obstacle to Fiscal-Cliff Deal)
While everyone agrees that growth of the national debt needs to be slowed over the long term, experts are divided over how much the current deficit should be cut. Some commentators even argue that the short-term deficit should be allowed to continue for another year or so to stimulate the sluggish economy.
The best solution to both these problems would be a grand bargain that limits the growth of debt over the long term while trimming the immediate deficit just enough to show that policy is heading in the right direction. What keeps getting in the way are a bunch of misconceptions, chiefly about tax rates. Here are the four biggest:
The Bush cuts in tax rates caused the deficit. Some economists argue that Bush Administration policies taken as a whole, including costly wars in Iraq and Afghanistan, caused much of the borrowing beyond what the U.S. economy can sustain. More often, though, the blame is focused specifically on the cuts in tax rates. Those rate reductions, however, account for only about a fifth of last year's $1.1 trillion deficit.
Where did the rest come from? The temporary cut in payroll taxes for Social Security, introduced in 2010 to bolster the economy, reduced revenues by more than $100 billion in 2012. In addition, federal spending as a percentage of GDP has climbed from 20.8% in 2008 to 24.3% last year. Some of that is because of persistently high joblessness that has resulted in more spending on unemployment benefits and less income tax revenue.
(MORE: Can the Estate Tax Solve the Fiscal Cliff?)
Taxes are lower than they used to be. It's true that the top tax bracket has come down substantially over the past half-century — from 91% when President Kennedy took office, 70% when President Reagan took office and 39.6% when President George W. Bush took office to 35% today. But rates are only one element of income tax policy — the rules for what counts as income and what deductions are allowed are just as important. Mitt Romney enjoyed a low effective tax rate, for instance, because he received much of his income in the form of capital gains.
In the end what really matters is how much revenue the tax system raises. That amount, measured as a percentage of GDP, normally drops during recessions, as it did recently. But once the economy fully recovers, federal revenues are projected to be about the same as they have been for the past half-century.
U.S. income taxes aren't very progressive. In fact, U.S. income taxes are among the most progressive in the industrialized world. Indeed, 46% of households pay no income tax at all. In many other countries, by contrast, income tax begins at lower income levels than in does in the U.S., on the theory that everyone should pay something.
The high progressivity of the U.S. income tax system is offset, however, by relatively flat taxes for Social Security and Medicare, and by the fact that state and local authorities rely on ways to raise revenue that aren't progressive at all (e.g., sales tax). While the U.S. tax system may be less progressive overall than it used to be, that isn't because of federal income tax but because of other types of taxes.
(MORE: Obama Won't Budge on Top Tax Rates)
Raising tax rates will fix America's budget problems. Raising tax rates on households with incomes above $250,000 would produce revenues equal to only 4% of the 2012 deficit. Higher taxes on capital gains and dividends, plus higher estate taxes would produce an additional 4%. A few other current provisions that favor the wealthy are equivalent to 2% of the deficit. So all together, higher tax rates for the rich would reduce the deficit by no more than 10%.
The vast bulk of the money that would be raised by the full fiscal-cliff tax hikes, however, would come from the middle class — and that increase could make a big dent in the current deficit. But it wouldn't permanently solve the long-term budget problem: after five years or so, the relentless growth of health care spending would eat up all the additional revenue.
These misconceptions aren't just academic questions. Intense debate over tax rates has diverted the discussion from the most important budget issues to factors that are only a small part of the equation. Unfortunately, this is a really bad time to be missing the big picture. The fiscal cliff risks tipping the economy back into recession short term, while not really doing much about long-term problems. Any real solution will have to look out beyond 2013 and focus instead on comprehensive reform of both the overall tax system and long-term entitlements.


text:
It's not just about what America's kids are getting in the lunch line.
The Obama administration is moving to phase out junk food advertising on football scoreboards and elsewhere on school grounds — part of a broad effort to combat child obesity and create what Michelle Obama calls "a new norm" for today's schoolchildren and future generations.
"This new approach to eating and activity is not just a fad," Mrs. Obama said Tuesday as she described the proposed rules at the White House.
Promotion of sugary drinks and junk foods around campuses during the school day would be phased out under the Agriculture Department rules, which are intended to ensure that marketing is brought in line with health standards that already apply to food served by public schools.
That means a scoreboard at a high school football or basketball game eventually wouldn't be allowed to advertise Coca-Cola, for example, though it could advertise Diet Coke or Dasani water, also owned by Coca-Cola Co. Same with the front of a vending machine. Cups, posters and menu boards that promote foods that don't meet federal standards would also be phased out.
Ninety-three percent of such marketing in schools is related to beverages. And many soda companies already have started to transition their sales and advertising in schools from sugary sodas and sports drinks to other products they produce. Companies are spending $149 million a year on marketing to kids in schools, according to the Agriculture Department.
The announcement at the White House was part of a week of events marking the fourth anniversary of the first lady's "Let's Move" program. Mrs. Obama also traveled to Miami Tuesday to announce that the Boys & Girls Clubs of America and the National Recreation and Park Association will serve more fruits and vegetables at after-school programs and ensure kids get 30-60 minutes of physical activity a day. NBC's "Parks and Recreation" star Amy Poehler introduced the first lady.
The proposed school marketing rules come on the heels of federal regulations that now require food in school lunch lines to be more healthful than in the past.
Separate rules, which are to go into effect in September, will cover other food around school as well, including in vending machines and "a la carte" lines in the lunch room. Calorie, fat, sugar and sodium limits now will have to be met on almost every food and beverage sold during the school day, as mandated by a 2010 child nutrition law.
Even though diet sodas would be allowed in high schools under the proposed rules announced Tuesday, the rules don't address the question raised by some as to whether those drinks are actually healthful alternatives to sugary soda.
Some healthful-food rules have come under fire from conservatives who say the government shouldn't dictate what kids eat — and from some students who don't like the new alternatives.
Mrs. Obama defended herself against critics, saying that "I didn't create this issue." She said kids will eventually get used to the changes.
"That's our job as parents, to hold steady through the whining," she said.
Aware of the backlash, the Agriculture Department is allowing schools to make some of their own decisions on what constitutes marketing and is asking for comments on some options. For example, the proposal asks for comments on initiatives like Pizza Hut's "Book It" program, which coordinates with schools to reward kids with pizza for reading.
Rules for other school fundraisers, like bake sales and marketing for those events, would be left up to schools or states.
Off-campus fundraisers, like an event at a local fast-food outlet that benefits a school, still would be permitted. But posters advertising the fast food may not be allowed in school hallways. An email to parents — with or without the advertising — would have to suffice. The idea is to market to the parents, not the kids.
The rules also make allowances for major infrastructure costs — that scoreboard advertising Coca-Cola, for example, wouldn't have to be immediately torn down. But the school would have to get one with a different message or product the next time it was replaced.
Schools that don't want to comply could leave the National School Lunch Program, which allows schools to collect government reimbursements for free and low-cost lunches for needy students in exchange for following certain standards. Very few schools choose to give up those government dollars, though.
The beverage industry — led by Coca-Cola Co., Dr. Pepper Snapple Group and PepsiCo — is on board with the new rules. American Beverage Association President and CEO Susan Neely said in a statement that aligning signage with the more healthful drinks that will be offered in schools is the "logical next step."
The public will have 60 days to comment on the proposed rules, which also would allow more children access to free lunches and ensure that schools have wellness policies in place.
The 2010 child nutrition law expanded food programs for hungry students. The rules being proposed Tuesday would increase that even further by allowing the highest-poverty schools to serve lunch and breakfast to all students for free, with the cost shared between the federal government and the schools. According to the Agriculture Department and the White House, that initiative would allow 9 million children in 22,000 schools to receive free lunches.
The department already has tested the program in 11 states.


text:
Golf! The game of the American business people. Some say more business happens on the golf course than in the office. No better way to make sure that work gets done on the course than by providing your customers and clients with personalized golf merchandise such as golf balls, tees, and clubs, or golf caps, gloves, and umbrellas. With logoed golf products you can make sure that business continues even when you or a company representative can't make it for tee time.
Logoed ad specialty golf merchandise is such a great investment simply because the odds that your clients play golf is so high, which guarantees use. Promotional golf items from IASpromotes.com build brand recognition at themed marketing events, golf tournaments, trade show booths, and as golf sales incentives. Their small size makes these imprinted promotional golf merchandise easy to distribute, but their high demand and frequent use makes a big impact. We offer promotional items from the top golf brands, making any custom printed golf product perfect for either the first time golfer or long-time golf enthusiast. Call us at 1-800-780-1962 to speak to a specialist who will be happy to help match a golf related promotional product to your event budget and target audience.


text:
Domain is on IP Number: 126.96.36.199 Server content last refreshed: 2017-03-02
Traffic Volume BacklinksCurrent location of 000.tours host was found to be: Japan. Lower down this page is a map and more details of 000.tours location. We think our information is right, but if you think otherwise then send us a message about it.
Country of Origin: Japan
Metropolitan Zone: Not defined
Post or Zip Code: Not defined
Latitude: 35.69
Longitude: 139.69
http://tools.pingdom.com/fpt/Pingdom Web Speed Downloading Tests
https://www.google.com/analytics/web/Google Web Services
http://www.alexa.com/siteinfo/000.tours000.tours Alexa Web Rank
http://www.similarweb.com/website/000.toursAnalytics from SimilarWeb
https://majestic.com/Majestic Backlinks Service
https://google.com/What is Google currently listing?
http://www.bing.com/search?q=ip%3A18.104.22.168Every domain that is featured on the 22.214.171.124 IP


text:
This Is Me At Age Two
Okay, not really. She was supposed to be Mary Tyler Moore, or a stray Caucasian extra from the Foxy Brown movies, but neither the shag wig nor the afro wig would stay on her head, which is to say, the small person in question pulled said wigs off of her head every time I tried to put them on (which, admittedly, I did while laughing at her, which she didn't appreciate. No Mommy laughing!!!)
So she just ended up thusly, a tiny person in a polyester lounge suit (fabricated in Montreal in 1973, according to the label.) She wanted to wear a squashed little porkpie hat with the outfit, but that just made her look a wee, demented Mr. Furley, and I thought that it was probably more poetic that she do her first trick-or-treating excursion dressed as her mother, circa the mid-seventies:
The problem with a costume like this is that, in the city, you could very well come across some kid dressed like this by their hipster parent, which means that not everybody gets that it's a costume. Again, one or the other of the wigs would have helped, but the child has a hair aversion, obviously, and so we were left with this look, which is either a) very avant-garde children's wear, or b) an obscurely-referenced Halloween costume. The little old Portuguese ladies on my street didn't care. They just shouted look at handsome leetle boy! and gave her extra candy. So, you know, it all worked out for the best.


text:
Andy, you are a talented observer of language. While we've covered a similar topic before (I haven't/I don't have/I haven't got--see the comments too), I'm particularly inspired to do this one today as I've just been reading a paper by Peter Trudgill that cites these constructions as providing evidence that BrE is being influenced by AmE--before concluding based on a broader range of evidence that "there is no conclusive evidence one way or the other for convergence/homogenisation or divergence/disintegration at the level of grammar."I was wondering whether you've done anything on your language blog regarding the uses of the phrases "have you got", "do you have" and "have you". I get the impression that "do you have" is the preferred form in America, whilst "have you got" is more usual in Britain. "Have you" is maybe considered rather old-fashioned in the UK these days; I'm not sure about its status in the US however.
To grammatically achieve a yes/no question in English, the question has to start with a verb. Not any verb, but an auxiliary verb (or 'helping verb'). (Verbs that aren't auxiliary verbs are called lexical verbs.) If you have an auxiliary-less sentence, then you usually have to add an auxiliary to fill that beginning-of-question slot. So, if you want to ask if someone wants a pineapple, you have to add the meaningless (in this case) auxiliary do just to fill out the question structure and make it grammatical: Do you want a pineapple? rather than Want you a pineapple? But have can be either a lexical verb (as in I have a pineapple) or an auxiliary verb (as in I have found a pineapple, where found is the lexical verb and have is there as an auxiliary to carry the tense). Verbs that don't need do-support for question formation and negation are sometimes called operators.
So, let's assume that one needs a pineapple (as I do now that I've thought of pineapples). So you stand on the street corner and ask passing strangers for a pineapple (as I'm about to do).
Starting with the shortest of the possibilities we have:
(1) Have you a pineapple?Here we're using the stative meaning of have, 'to possess'. In the English of England*, only the stative meaning of lexical have can be an operator. (In Scotland and Ireland it may be possible, according to Trudgill, to use a more dynamic meaning of have as an operator, as in Had you pineapple for lunch?) Operator use of stative have is, according to John Algeo, "said to be somewhat old-fashioned British [...], but it is hardly imaginable in American" (p. 30). Americans know of it, of course, from the nursery song Baa, baa, black sheep (have you any wool?), but outside of storybook contexts, they wouldn't expect to run into it.
BrE prefers our next candidate:
(2) Have you got a pineapple?
You can say this in AmE as well, but it's not the default way to ask for pineapple. Have got, of course, is sayable in non-questions as well. But considering that the British say it more than Americans, it's funny that Americans are more particular about what it means. As we've discussed before, AmE makes the distinction between have got for possession (I've got a pineapple) and requirements (I've got to go) and have gotten for acquisition (I've gotten a pineapple from the fridge). Many language pedants (or peevologists, as they have come to be known in the trade) on both sides of the Atlantic (but probably more US than UK) insist that have got should be avoided in the possession or requirement senses because have alone is more elegant. To them, I point out some of the quoted users of have got in the OED: William Shakespeare, Jonathan Swift, Samuel Johnson, W.M.Thackeray, Lewis Carroll...
At any rate, because we can say You have got some pineapple, we can ask Have you got some pineapple? Have is an operator in all dialects in this context. What differs is whether you prefer to say it that way. We'll look at the numbers after considering the final, and most AmE, possibility:
(3) Do you have a pineapple?So, in this case, have is treated as a non-operator lexical verb, and do must come in and fill the operator space. This is the way we usually form questions with lexical verbs in English, and it's the preferred way for AmE speakers to form questions about possession.
Now what surprised me in investigating this was how much AmE prefers (3) over (2) (especially since I've seen have got derided as an ugly Americanism by uninformed BrE speakers). Using Mark Davies' Corpus of Contemporary American English (COCA) and the BYU-British National Corpus (BNC), I searched for 'Do you have [determiner]' and 'Have you got [determiner]'. By putting [determiner] at the end, I got all cases of Do you have any, Do you have some, Do you have those, Do you have a, etc., but none of Do you have to [verb], Have you got to [verb], or Have you got [verbed]. The result:
AmE: Do you have = 3092, Have you got = 99. So 31:1.Now, whether the two corpora are really comparable is debatable, but it's worth noting that COCA is about 20% spoken language and BNC is just under 18% spoken--so it shouldn't be just a difference in spoken-versus-written proportions that is making the differences so stark.
BrE: Do you have = 245, Have you got = 450. So 1:<2.
So, the lessons of today are:
- If you are on a UK street corner, say Have you got a pineapple?
- If you are on a US street corner, say Do you have a pineapple?
- If you say Have you a pineapple?, you risk assault for non-normative behavio(u)r.
Oh, and while I'm here. Lexiophiles is having its annual search for top language blogs. Separated by a Common Language has been nominated in the Language Professionals Blogs category, so if you'd like to support me there (competition is STIFF!), please click on this button and vote!
And if you like what I do on Twitter (following it there, or on the feed in the left margin here), then please consider casting a vote for Lynneguist in the Twitter category as well! (They don't seem to send out nice blog badges for Twitterers, so please follow the link.) Thank you! Mwah!
*I really resist writing English English, as word reduplication (as in Was it a salad salad? or I bought a book but not a book book) implies 'the real thing' or 'a prototypical exemplar'. And before you say 'but it is the real thing', which English English are you talking about?


text:
Chris Capuano (11-10, 3.63) vs. Matt Cain (13-5, 2.98).
How frustrating was last night's loss? I haven't felt so aggravated by the Dodgers since...Wednesday.
Anyhoo, here's how it's going for our Boys in Blue:
- Shane Victorino, acquired to be our leadoff hitter, has a .315 OBP since joining the team and is now batting second.
- Adrian Gonzalez, batting third, has 10 RBIs in 61 PAs as a Dodger.
- Despite his claims to the contrary, Matt Kemp is playing hurt.
- Our second-best starter and our closer are on the DL.
- The rest of our pitching staff is getting minimal run support.
It's becoming increasingly apparent the wild card is our ticket into the playoffs. So we'll drink to that — because there's so little to toast, yet so much to drink about.


text:
When huge tornadoes, like the one that hit Moore, churn, swirl and scream, most people run for cover. Then there are people like Val Castor, who jumps into his truck and heads straight towards it. Mr. Castor is the senior storm tracker for Channel 9 News in Oklahoma City. He's been covering Oklahoma's temperamental and often treacherous weather for the last 22 years. Val Castor, we had the honor of spending a little time with you in your truck a couple of years ago. Thank you for being with us today.
VAL CASTOR: Well, it's good to be here, Scott.
SIMON: Well, what can you tell by looking at a tornado that all the machines and software they have nowadays might miss?
CASTOR: People ask why do you have storm chasers when you have all this technology? But Doppler radar and technology can only go so far. And you need the eyes and ears in the field to see if there really is a tornado on the ground, because radar will not tell you. Radar will tell you if there's rotation in the clouds and it will tell you how strong the rotation at that level, but it will not tell you if there's a tornado on the ground and that's what the storm chasers are for.
SIMON: Could you give us an estimate how many tornadoes you'll see in a spring season?
CASTOR: Well, you know, generally, on any average year, we see anywhere between, I would say, 10 and 20 tornadoes per year. Last year, for an example, was a pretty high-frequency year for tornadoes in parts of our state. And we saw 28 tornadoes last year. This year has been a very slow start to the year early. In March, in April and about the first half of May, there was almost nothing. And then all of the sudden just this last week everything hit all at once. And we've seen 11 tornadoes in the past week.
SIMON: I wonder: when you see tornado after tornado and they don't have the kind of devastating effect that this EF5 one did, does it begin to make people who grow up in that area take their safety for granted?
CASTOR: Well, you know, the people of Oklahoma are very tornado savvy. And so you sometimes get, I think, so accustomed to seeing tornadoes that it becomes less and less of a big deal to us and a lot of people will go out just to see it and maybe to take video of it. And that's why when we get on the air and this tornado, just like the May 3rd of 1999 tornado - I know our chief meteorologist, Gary England, at the station probably made a statement that saved a lot of lives. He said if you're not underground you're not going to survive this tornado. And at that point, people took it seriously. And I know that the storm trackers in the field, including myself, were describing the tornado as strongly as we could.
SIMON: Your wife is also a storm chaser, and you've got six children.
CASTOR: Right.
SIMON: Do you ever think about moving to Maine and opening a quilting shop?
CASTOR: Well, first of all, I don't know how to quilt. Second of all...
SIMON: You can learn, you can learn.
CASTOR: You know, it's not that exciting, and third of all, you know, I storm chase because I feel that God has called me to do that. I feel it is a calling that I have to be a benefit to the public out here to help keep people safe.
SIMON: Do you learn something about life or something by seeing so many tornadoes straight in the face?
CASTOR: Yeah. And, you know, when we go out there and we chase, I mean, you know, we try to keep personal feelings out of it as much as possible because we're trying to do our job. When we see something this big and this strong, immediately we know that there's going to be injuries and there's probably going to be people killed. We don't want to see that. We hate to see that. You know, it really hits closet to the heart 'cause I do have six kids. You know, when I hear stories about kids at elementary schools, that's where it really hits home. You know, I was telling someone else just a while ago that after that long day - I think I got home about 12:30 at night - I woke up every one of my six kids and hugged them.
SIMON: Well, we're glad you're together and grateful that you found some time for us in obviously a very busy and important week. Val Castor, who's the senior storm tracker for News 9 in Oklahoma City. Thanks so much.
CASTOR: You're welcome. Thank you, Scott. Transcript provided by NPR, Copyright NPR.


text:
Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
CDO is both a development-time model repository and a run-time persistence framework. Being highly optimized it supports object graphs of arbitrary size. CDO offers transactions with save points, explicit locking, change notification, queries, temporality, branching, merging, offline and fail-over modes, ... The storage back-end is pluggable and migrations between direct JDBC, Hibernate, Objectivity/DB, MongoDB or DB4O are seamless for CDO applications. You may also want to visit our homepage. |
Model Integration Features
- EMF integration at model level (as opposed to the edit level)
- Supported model types:
- Generated models (just switch two .genmodel properties)
- Dynamic models (just load .ecore file and commit to repository)
- Legacy models (for compiled models without access to .genmodel)
- Ecore meta meta model and descendants
User Interface Features
- Eclipse view for working with CDO sessions, transactions, views and resources
- Package Manager dialog per session
- Eclipse editor for working with resources and objects
- CDO Explorer
Client Side Features
- Multiple sessions to multiple repositories on multiple servers
- Multiple transactions per session
- Multiple read-only views per session
- Multiple audit views per session (an audit is a view that shows a consistent, historical version of a repository)
- Multiple resources per view (a view is always associated with its own EMF ResourceSet)
- Inter-resource proxy resolution
- Multiple root objects per resource
- Object state shared among all views of a session
- Object graph internally unconnected (unused parts of the graph can easily be reclaimed by the garbage collector)
- Only new and modified objects committed in a transaction
- Transactions can span multiple resources
- Demand loading of objects (resources are populated as they are navigated)
- Partial loading of collections (chunk size can be configured per session)
- Adaptable pre-fetching of objects (different intelligent usage analyzers are available)
- Asynchronous object invalidation (optional)
- Clean API to work with sessions, views, transactions and objects
- CDOResources are EObjects as well
- Objects carry meta information like id, state, version and life span
- Support for OSGi environments (headless, Eclipse RCP, ...)
- Support for standalone applications (non-OSGi)
Network Protocol Features
- Net4j based binary application protocol
- Pluggable transport layer (shipped with NIO socket transport, polling HTTP and JVM embedded transport)
- Pluggable fail over support
- Pluggable authentication (shipped with challenge/response negotiation)
- Multiple acceptors per server
Server Side Features
- Pluggable storage adapters
- See DB Store Features
- See Hibernate Store Features
- See Store Feature Matrix
- Objectivity support coming soon
- Native memory storage adapter
- Multiple repositories per server
- Multiple models (packages) per repository
- Multiple resources (instance documents) per repository
- Expressive XML configuration file
- Configurable storage adapter per repository (see below)
- Configurable caching per repository
- Clean API to work with repositories, sessions, views, transactions and revisions
- Support for OSGi environments (usually headless)
- Support for standalone applications (non-OSGi)


text:
This section proposes a selection of inspiring examples, including:
- Quick wins - relatively simple activities that can contribute to tackling early leaving
- Good practices – successful measures implemented in different EU countries to tackle early leaving
- Toolkits and tools that have been developed to help tackle early leaving in Europe.
- Publications, statistics and data on early leaving in Europe.
- Activities on how to use Cedefop's toolkit.
These examples were selected as part of the Cedefop study 'Leaving education early: putting vocational education and training (VET) centre stage'. Would you like to know more about the methodology used to select the examples and the countries covered? Go to About >


text:
Tegra Developer Stories: Bringing BurnZombieBurn to Android
TickTock Games recently ported the PS3 game BurnZombieBurn to Nvidia Shield. In this article Arden Aspinall explains how they did it.
Developer Bio
Arden Aspinall is the CTO of TickTock Games. He specialises in 3D graphic development and code optimisation. With over 25 years' experience, he and his team are constantly looking for new challenges that push forward the boundaries of mobile game development.
TickTock Games Limited
- www: http://www.ticktockgames.com/
- fb: http://www.facebook.com/TickTockGames
- tw: http://twitter.com/ticktockgames
ECg - getting to the heart of the issue
When we started the port of BurnZombieBurn, we knew performance was going to be a massive issue. This was, after all, a game that was designed to look and play amazing on a PS3. However, we also had the small issue that Cg, which the PS3 game uses heavily, was just not available on Mobile devices.
With this in mind, before even attempting to port to the Android we created a PC reference build and ripped out the Cg libraries from the game's beating heart and replaced it with a thin Cg API implementation of our own, which redirected all the Cg calls to GLES compatible functions.
Of course, all the Cg shaders had to be refactored into GLSL. We originally thought this would be a complete nightmare; there were literally hundreds of shaders! Since we did not have the original source game assets we wrote code to extract the source from the game's data files and performed analysis on usage.
We quickly realised we could create a hash from the shader's source code and redirect this to our refactored GLSL code. Not only that but we could reduce the number of unique shaders to a very manageable 30.
ECg worked extremely well, and we very quickly resolved our bugs and our PC/GLSL reference build was running beyond our expectations.
Initial port to Android
Here at TickTock we are no strangers to Android development. Before embarking on this latest adventure we had already shipped six other Android games.
However, our partners at NVIDIA were keen that we should use their newly released TADP (Tegra Android Developer Pack) with Visual Studio Integration. Up until this point we'd had to spend a considerable amount of time streamlining our Android development pipeline.
NVIDIA's single install TADP ( Tegra Android Development Pack ) gives you everything you need for Android native development. 15 minutes of install time and you can start development out of the box, no matter if your preferred development environment is Eclipse or Visual Studio. I just wish it had existed when we started Android development. I can't recommend TADP enough.
With TADP installed, it was just a case of adding a new platform to our PC reference build. As the game was built for the PS3, it would just compile on the Android GCC compilers, right? Well, no. GCC had moved on a bit and we had some very interesting compiler errors. However, being able to work in the familiar environment of Visual Studio meant we could quickly jump around the code, diagnose the issues and fix them.
After stitching in a bit of Java to get the basic Android lifecycle, it wasn't long before we could hit the build solution and spit out an APK ready to start testing on Android.
It's ALIVE!
With great trepidation, we ran the game for the first time. Expectations were very low that anything would work so early on. We'd set the screen to clear with random colours, so if we saw flashing colours on the screen that in itself would be a huge step.
I've been at this point in the development process countless times, but what happened next was a genuine surprise. We had no flashing colours. Out of the blue, the music started playing. The only bit of middleware used in BZB is FMOD. If audio in game development isn't your thing, this result really is testament to how good an API FMOD is.
Despite being a bit perplexed as to why we had no flashing colours, we decided to take things one step further and redirected a screen touch to act as the fire/select button. To our amazement, we found we could get right into the game. We started hearing the groans of the undead and the screams of our invisible hero Bruce as the zombies attacked. Probably a good reason to be scared of the dark.
We felt it was only fair for Bruce to get the game rendering. To do so we took advantage of PerfHUD ES, the tool that gives you complete control of development. As any graphics developer will know, getting things rendering at the beginning of a new project where you have no existing code to draw upon is always tough. Doing so on mobile platforms even more so.
PerfHUD ES, takes all the GL Commands from your mobile device and reconstructs them in its own Windows App. You get performance statistics, the ability to see stage by stage how your scene is built, from the comfort of your own PC. Throughout the development of BZB, we began to see the power of this tool and discovered really cool ways to use the information it provided.
So through looking at the GL callstack and examining our render states, both features of PerfHUD ES, we quickly worked out we needed to modify the way we attached the Z Buffer to the render target and add a little extra code to present the screen.
It wasn't long before we had our parity Android build running at a staggering 0.5fps. It looked amazing. It sounded amazing. The trouble was, it didn't take a super hero to work out it was completely unplayable!
It was a long, hard road getting BZB running at a decent frame rate. When we initially started talking to people about this project, most people thought it was impossible and crazy. A few people at NVIDIA believed that it was possible, but even they knew it would be hard.
Very quickly we worked out we were CPU locked. Unfortunately for us, the Performance Analyser that is now part of the TDK wasn't available. Fortunately, we had our PC parity build, so to understand where our CPU cycles were going we profiled that. It wasn't perfect but it gave us a good view on where best to spend our time.
The biggest bottleneck was somewhat of a surprise. It turned out it was taking a considerable amount of time sorting the game's geometry into depth order. Clearly, on the PS3/PC, this wasn't an issue, so we quickly implemented a few performance counters on the Android version and found the process was taking a minimum of 80ms per frame!
The camera system in Burn Zombie Burn is always above the action, so this was a fantastic opportunity to pre-sort the geometry on load time and cut that whole process out.
With this issue out of the way, we discovered the next CPU bottleneck was the animation and skinning. We'd been advised by NVIDIA that it was probably best to keep the skinning on the CPU, so we set about optimising the old fashion way. First, we wrote code to find the most significant bone blending influence so we could reduce the number of bone influences per vertex from 4 to 1. I can imagine any graphic designers cringing at the thought of this and to be honest our original plan was to implement this as a level of detail. However, we abandoned this idea and stuck with the original optimisation as even the most critical eye couldn't see a difference.
The game was now running between 6 to 9 fps and things were starting to get exciting. The game was playable; now it was just a case of getting the frame rate higher to get the responsiveness and smoothness we wanted.
At the time, we were targeting the Tegra3 chipset, so we knew we wouldn't have the bandwidth to do full screen post process effects. This was something that Burn Zombie Burn needed so we had to come up with alternative solutions for things like fire. Although it didn't quite look the same, we tried to get it looking as similar as possible.
Although we had started doing some heavy duty optimisations to the game, we made sure we could switch these on and off, so we could drop back to the Android Parity build at any time. As a team there were a LOT of arguments about this, but it was the best thing we could have done. It meant that as we found bugs in the game, we could quickly work out if it was due to our optimisation or due to an assumption made during the original porting process.
We'd now got the game up to 12fps; still not fast enough, but the momentum was finally on our side.
It was time to fire up PerfHUD ES again to see what was going on. We started looking at the Polygon count; our brief was to use the original PS3 assets, so reducing them wasn't really on the agenda. However, they did seem ridiculously high. It turned out that all the geometry was rendered with indexed tri-strips, and the extra triangles were the degenerates. Fixing this was simple; on load time we just converted them to index tri-lists. The tri count was literally halved and the frame rate increased slightly.
PerfHUD ES also showed us that we needed to get our geometry into VBOs. Fortunately, the original game engine did allow us to implement this relatively easily. However it took slightly more work than we originally planned as each section of geometry created a different VBO for each type of element within the vertex buffer. Ideally we needed them interleaving.
Being able to see how the textures were rendered allowed us to rule out issues there. Tegra chipsets support DXT1/5 texture compression which is what was embedded into the game assets.
The ability to look at shader usage from within PerfHUD ES gave us an amazing insight for optimisations. The ability to edit them on the fly and upload them back to device was really useful. Initially, it helped to get rid of the issues we introduced when we first refactored the code from Cg to GLSL. Later, it helped us optimise our shaders, moving things from the fragment shader to the vertex shaders to help improve performance whilst ensuring the changes didn't spoil the look of the game.
As we reached the 25fps mark, we finally started to see the light at the end of a tunnel, until one October morning when a mysterious package arrived.
Shields up; it's time for a Zombie BBQ
The contents of the package were several circuit boards and a clear plastic housing. No instructions; this was clearly something cool, new and hot off the press from NVIDIA.
We put our new and mysterious device together to find it was Android based so we did what any developer would do, we ran our game on it. To say we were blown away was an understatement. With no changes from our Tegra3 version BZB was running at 60fps, never dropping a frame. Very exciting!
Our friends from NVIDIA asked us if we could produce a demo of the game which would show off what this hardware could do.
It was time to look at our optimisation switches. Surely this hardware wasn't capable of all the post process effects?
Enabling them was simple, we hit the switch and although the frame-rate dropped significantly, the game was still running at just over 20fps. This was with all the PS3 post process effects enabled. We spent a considerable amount of time on optimising the shaders and talking with NVIDIA's tech team on how we could achieve the same effects using less GPU power. In the end, the game was running at a respectable 40fps.
Our reward was to find out that BZB was going to be shown to the press at the CES when the Tegra4 was announced. The long days and the lost weekends were starting to feel like a price worth paying.
Looking back at the project, handling the Android Lifecycle was something we should have dealt with a bit sooner. We left it until the end of the project. We needed to prove it would fit in memory, run fast enough and be playable from a touch interface. We've done other Android games in the past and we believed we knew how to deal with the Android lifecycle very well.
However, this was not the best of ideas. Getting BZB working with the Android lifecycle was a real challenge. The assets with the game were compressed, so having these assets in an APK lead to abysmally slow load times (we are talking minutes).
We had to then restore the GL context, which meant restoring the VBOs, FBOs and Textures.
A nice little trick we learnt when dealing with restoring the GL context was to use PerfHUD ES to save the GL state to a text file before locking the device. Once the device is locked we allowed the game to restore and use PerfHUD to again save the GL state to a new text file. We then simply used a text comparison tool to see what the difference was. This process must have saved us days of work, as we quickly figured out where the issues resided.
A nasty issue that we had significant issues fixing was with OpenSLES. Previously, for all things sound related, we'd gone down the Java route but FMOD gave us the choice between this and OpenSLES. The Java route gave us a performance hit. However, we found out later OpenSLES has caught a lot of developers off guard with lifecycle issues. In the end, we had to make quite radical changes, shutting down the whole audio system when the game was paused and reloading everything when the game was restored.
It's Alive!
For those who have never played BZB, the game is huge! During the development of the Android version, we played this game a LOT. Even now when playing we see little things in the animations, features of the vast array of weapons and game elements we'd not appreciated. The game is so rich and a true testament to the team who produced the original PS3 game. It really is a work of love.
NVIDIA were very supportive during development, providing us with great hardware and amazing tech support. Their tools and team allowed us to spend less time finding the problems and more time to concentrate on solving them. Their engineers were fantastically helpful and stopped us from taking dead ends when exploring ways to bring this product to market.
I don't think many people would argue; bringing the PS3 version of Burn Zombie Burn to Android was always going to be a tough project. I'm very proud of what our team learnt and achieved during the development of this game. Hopefully, for those who have just started dipping their toes into Android development this article will give you some ideas on how to maximise the platform. Good luck.


text:
Nancy & Dean's Wedding Invitation
Category: Design / Print,
Posted by: Thea
Posted: Jul 31st 2013
No. of comments: 0
Posted: Jul 31st 2013
No. of comments: 0
We love seeing our students' work pop up unexpectedly - so we were excited to see Nancy Lostracco's wedding invitation on lovelystationery. Nancy studied with us in Sydney in 2012, and we love what she came up with for her destination wedding in Bali. Congrats, Nancy!
Comments: 0
Leave a Comment
< previous postnext post >