text:
Welcome to PokeDream's Drawing Board, a place to doodle, chat with friends, and have fun!
Inappropriate drawings will not be tolerated. Persons responsible for will be permanently banned from the Drawing Board. This is a serious issue and will not be tolerated. Remember, this Board is PG-13.
Main Drawing Board
Drawing Board #2
Drawing Board #3
Drawing Board #4
Drawing Board #5

subset: commoncrawl


text:
A wave of nostalgia sweeps over me every time I crack open the pages of two new books, Crafting Fun and Cooking Fun by author Rae Grant. The books with their retro design and classic recipes and crafts, send me back to my childhood and remind me of days spent crafting and cooking with my mom and grandma. Both my mom and grandma can cook up a storm and are just as accomplished sewers and crafters. My own skills can't even begin to compare. Luckily, my kids have also been able to witness the magic in their kitchens and at their sewing machines. Now with the help of Grant's vintage-styled books, I can continue the legacy of good home cooking and simple, classic crafting.
Cooking Fun: 121 Simple Recipes to Make with Kids by Rae Grant. St. Martin's Griffin (October 2008); 144 pages; ISBN 9780312377793If you've been searching for the perfect children's cookbook, Rae Grant's Cooking Fun: 121 Simple Recipes to Make with Kids is worth a look. Old-fashioned, comfort food type recipes fill the book, and Grant shares all those familiar recipes that every mother should hand down to her children. Sloppy Joes, pancakes, strawberry shortcake, banana bread, and broccoli soup are a few of the 121 mouth-watering recipes. Nothing fancy and everything homemade, that is how my grandmother cooks and apparently Rae Grant's grandmother as well. The beginning of the book includes a section of kitchen basics and tips, cooking terms, measuring equivalents and even suggestions on keeping a "green" eco-friendly kitchen. Grant's artful use of vintage graphics throughout makes the book eye-pleasing and enticing.
The recipes are divided into the following sections:
Beverages • Toasts, Sandwiches, and Soups • Eggs for Breakfast, Lunch or Supper • Salads and Vegetable Dishes • Meals • Quick Breads and Cakes • Cookies and Simple Desserts
My daughter and I tried out the snickerdoodles recipe on page 124. The name snickerdoodles has always cracked me up since I was a little girl and they really are a perfect snack with milk, a good change from chocolate chip cookies. They turned out excellent, by the way!
Crafting Fun: 101 Things to Make and Do With Kids by Rae Grant. St. Martin's Griffin (September 2008); 144 pages; ISBN 9780312377809My mom ran a licensed daycare out of our home, so I grew up making plenty of crafts. She searched books and magazines for little projects and activities to do with the kids. Some of the classic crafts I remember making can be found right in Crafting Fun: 101 Things to Make and Do With Kids like paper drinking cups, waxed paper leaves, snow globes, and tussie-mussies. A few crafts include accompanying factual information like a U.S. State Tree Chart along with the skeleton leaf prints activity. All the projects are ordered by seasons: Autumn, Winter, Spring and Summer.
Vintage style illustrations grace the pages of the book skillfully arranged by Grant, an experienced book designer. Kids will have fun using simple household materials to construct their crafts, and the easy-to-follow directions tell them exactly what steps to take. Crafting is a perfect way to keep kids occupied during summer vacation!
Related Links:
Macmillan Books Rae Grant Author Page
Win a copy! Rae Grant and St. Martin's Press have kindly offered to give away (1) copy of Cooking Fun and to a Brimful Curiosities reader and (1) copy of Crafting Fun to a different Brimful Curiosities reader. If you have a preference, leave it in your comment.
To enter, visit cookingfunforkids.com, click on "Recipes to Try" and let me know which recipe name from the list reminds you of food from your childhood. (If you can't access the page, let me know what food brings back childhood memories for you.)
• For contact purposes, if you are a non-blogger or your email is not accessible in your blog profile, please leave a valid email address within the comment section.Three more ways to gain extra entries (Maximum total entries is 4):
• Contest is open to US and International (yes, everyone!)
• Contest ends on Monday, June 22th, 2009 at 11:59 PM CST.
• Winner will be chosen at random
1st extra entry: Follow Me! or subscribe by email or RSS reader
2nd extra entry: Blog about this contest then post your link in the comment section.
3rd extra entry: Follow me on twitter (iambrimful) and tweet about the contest.
(Sample tweet: Looking for activity ideas for the kids? "Cooking Fun" and "Crafting Fun" by Rae Grant book Giveaway @iambrimful http://bit.ly/4fQoO2 )


text:
It's easy to assume you're pregnant when you realize your period is late. If you're trying to conceive, you may feel excitement and a sense of disbelief. If you're not, you might feel fear or disappointment, not to mention utter confusion if you know there's no way you could be pregnant.
The truth is, although many women assume they're pregnant if they miss a period, there are plenty of other things that can cause them to be late. Here are the 11 most common reasons for a missed period:
- Pregnancy
- Stress
- Illness
- Weight
- Excessive exercise
- Change in schedule
- Breastfeeding
- Medication
- Hormonal imbalance
- Thyroid disorder
- Perimenopause
Sometimes a late period means exactly what you think: You're pregnant! Because the early symptoms of pregnancy — like cramping, bloating, nausea, spotting, fatigue, breast tenderness and even aversion to certain foods — are similar to what you may experience in the days before menstruation, it can be difficult to tell if your cycle is simply off by a few days or you're pregnant.
The fastest and easiest way to find out if pregnancy is the cause of your missed period is to take an at-home pregnancy test. These tests detect human chorionic gonadotropin (better known as hCG, the hormone released during pregnancy) in your urine. These tests are most reliable the day after your missed period, but some tests can detect a pregnancy up to five days before you've missed your period.
You already know that stress can trigger a number of unpleasant side effects, like headaches, weight gain and acne — and it can also affect your menstrual cycle. When you're under physical or emotional stress, your body produces the stress hormones adrenaline and cortisol. Elevated levels force the brain to decide which bodily functions are essential and which are nonessential until the anxiety-inducing event is over.
More About Early Pregnancy
While blood flow to the muscles and oxygen to the lungs will increase (part of the "fight-or-flight" response you've likely heard of), while others bodily functions, like digestion and those in the reproductive system, may stop temporarily in extreme cases. When the reproductive cycle is delayed, so is your period.
Think back to the time you should have ovulated. If you were sick, whether with a simple cold or something more serious, the stress could have put your body into that "which-function-is-most-important" phase mentioned above. So ovulation could happen later than usual or might not appear at all — meaning, your period will also be late or nonexistent. If illness around the time of ovulation is what caused you to be irregular, Aunt Flo' will likely return once things are back to normal.
Your weight can affect your hypothalamus, a gland in your brain responsible for regulating various processes in the body — including your menstrual cycle. Extreme weight loss, a low caloric intake or being very underweight stresses the hypothalamus, and your body won't release the estrogen needed to build the lining of the uterus. The same happens with eating disorders like bulimia and anorexia, which also cause estrogen levels to dip too low.
On the other hand, being overweight or gaining a lot in a short amount of time can cause your body to produce too much estrogen. The overload may cause you to go for months without ovulating or cause the endometrial lining to overgrow and become unstable, resulting in heavy, irregular or missed periods. Usually, gaining weight if you're underweight or losing if you're overweight should help your periods to return to normal.
Excessive exercise
Of course working out is good for you. However, when you overdo it (and possibly also restrict meals to lose weight), your body doesn't produce enough estrogen to complete the menstrual cycle. Some women — such as ballet dancers, gymnasts and professional athletes — are at greater risk for amenorrhea (missing a period for three or more months in a row). But you don't have to be a pro for exercise to mess with your system. Working out excessively without taking in enough calories can also cause disruptions.
Some signs that you're overdoing it include extreme or rapid weight loss; decreased physical performance; or forcing yourself to work out through injury, illness or severe weather. Slowing down a bit and gaining a little weight if needed should get things back on track.
Change in schedule
Believe it or not, switching things up — for instance, working the night shift instead of the day, or travelling across the country — can throw off your internal body clock, which regulates your hormones. Sometimes this results in a missed or late period, but it should return when your body gets used to the change or your schedule goes back to normal.
If you're breastfeeding, you may not see your period for some time, since prolactin — the hormone responsible for breast milk production — also suppresses ovulation. Many moms don't have a period for months (or at all) while breastfeeding. But a lapse in your cycle doesn't mean you can't get pregnant. Remember, ovulation occurs before you get your period. It's possible for you to ovulate and then get pregnant before you ever see your period. So if you don't want back-to-back babies, use protection. Your period should return within about six to eight weeks after weaning your child. If you haven't gotten it three months after you stop breastfeeding, talk to your doctor.
Probably the most common medication to cause menstrual changes is birth control. Hormonal contraceptives such as the pill or patch work by stopping the body from ovulating — and no ovulation means no period. But what about that monthly bleeding you have while using one of these methods? What you're really experiencing is withdrawal bleeding, a "fake" period caused by the drop in hormones when you take the placebo pills in your pack or go patch-free during the fourth week of your cycle. Sometimes, though, the birth control suppresses the hormones so much that you have very light bleeding or no period at all during that week off. And some pills are even designed to stop your period for a longer amount of time (three months or more). Other hormonal birth controls, such as the Depo-Provera shot or the Mirena IUD, thin the lining of the uterus to such a degree that there may be no lining to shed monthly.
Emergency contraception, or the "morning after pill," can also affect when or if you ovulate, so if you've taken it recently you may experience a late or skipped period (bring this up with your doctor).
Some other medications that can cause you to be irregular are antidepressants, some antipsychotics, corticosteroids and chemotherapy drugs.
If you've recently gone off the pill in the hopes of getting pregnant, you may notice that it takes a month or so for your cycle to regulate itself — in which case a skipped period might just be your system getting back on track. If you're not sure whether it means you're expecting, visit your doctor.
Hormonal imbalance
Polycystic ovarian syndrome (PCOS) is a condition where the female sex hormones are out of balance. It can cause cysts on the ovaries and prevent ovulation from occurring regularly. In addition to missed or irregular periods, PCOS can also cause excess hair growth, acne, weight gain and possibly infertility. Your doctor can do a blood test to check your hormone levels if you think PCOS may be the reason for your menstruation problems. If PCOS is the cause, your doctor may recommend birth control to regulate your periods.
Thyroid disorder
When the thyroid, the gland responsible for your body's metabolism, doesn't function properly, it can cause abnormal menstrual changes. An overactive thyroid (hyperthyroidism) can cause periods to be lighter and less frequent; additional symptoms include weight loss, rapid heartbeat, increased sweating and trouble sleeping. An underactive thyroid (hypothyroidism) may also cause periods to be less frequent but heavier; it may also cause weight gain, fatigue, dry skin and hair loss. A blood test can help your doctor determine if you have a thyroid disorder.
The average age of menopause is 51. Anywhere from two to eight years before that, a woman experiences what's known as perimenopause, the period when the body gradually makes less estrogen and moves toward menopause. During this time, it's not uncommon to have changes in the menstrual cycle — periods may come more or less frequently, be shorter or longer, or be lighter or heavier. But you'll also likely experience hot flashes and night sweats, sleeping difficulties, vaginal dryness and mood swings. If you're concerned about your symptoms, your doctor can check your hormone levels with a blood test.Though a missed period can be emotional, try not to jump to conclusions until you find out what's really going on. A visit to your doctor can help pinpoint the cause, and if you're not pregnant, coax your next period along and get things back to normal.


text:
The smart solution for single-sided hearing
How it works
CROS stands for 'Contralateral Routing of Signal' and consists of two parts:
- the CROS device with a microphone to pick up sounds and voices from the non hearing ear and wirelessly transmit them to the hearing aid
- the hearing aid to receive the signal from the non hearing ear and play it to your good ear
CROS B will transmit sound and voices to let your good ear hear for both your ears. If you have good hearing in one ear and impaired hearing in the other, then CROS B will work for you.
Wherever you want
Enables you to have a conversation in quiet and noisy surroundings without having to reposition yourself.
Just switch it on
Requires no surgical procedures. Simply switch it on and enjoy hearing from both sides.
Almost invisible
So small and discreet you can wear it without it being noticed.


text:
Elisha Wine Shimmer Belted Jacket
Elisha Shimmer Belted Jacket
Perfect smart casual wear
Gorgeous shimmer detail with added belt
Collared neck with long sleeves
Approx length:26"(66cm)
95% Polyester 5% Elastane
Made in the U.K
Model wears a U.K size 6
|Delivery Option
|Delivery Information
|Delivery Cost
|UK Next Day
|Order before 8pm Mon – Thu. Delivered next working day. Does not include Fridays, weekends or bank holidays. Tracked & Signed For. *Post code restrictions apply.
|UK Saturday
|Order before 8pm Friday. Guaranteed Saturday delivery. Tracked & Signed For. *Post code restrictions apply.
|UK Standard
|Arrives in 2-3 working days. Fully tracked service. *Valid UK Postcodes only.
|From £2.99
|Republic of Ireland
|Arrives in 2-3 working days. SMS & Email updates. Fully Tracked.
|EU & International
|We ship to Europe in 2-5 days. USA & Canada 2-5 days. Australia 3-5 days.
|From £4.99
Please visit our Delivery Page for more information & Post Code Restrictions.
We hope that you are happy with your purchases from Dress Address, but if you ever need to return an item, you can do so within 14 days from the date your parcel was dispatched.
We understand that sometimes you change your mind about a style if you're not lovin' the look when it arrives and we've got no problem with that! You can return any item you don't want to keep.
Items that you wish to return must reach us no later than 14 working days from the date you receive them. We will not accept returns after this time has passed.
Please note before making a purchase that any item returned will take up to 21 working days to be refunded back to you.


text:
With the Pokémon Global Link service, Pokémon Black and White players can sync their game data with their PC and enter a magical world that exists in the dreams of pocket monsters. Join me on my first trip to this Pokémon Dream World.
I haven't played much Pokémon Black since I picked it up on launch day last month. I raised my squad to the mid-teens, scored a pair of Gym badges, and spent several hours trying to capture the elusive legendary Pokémon Victini. I honestly had no idea how to connect to the Dream World, let alone explore it. Lucky for me that Pokémon Company's J.C. Smith and Nintendo of America's Joel Simon were willing to give me the guided tour.
The first steps to entering the Dream World are setting up an account on the Global Link website, creating a Global Link ID number and syncing your game with the Global Link servers. This is easily accomplished by access the C-Gear on the bottom screen of your Pokémon Black or White game. My tour guides warned me that the ID number was unique not only to my copy of the game, but the system I was playing it on, so one needs to make sure they are playing on their own DS when connecting.
Once these administrative duties are taken care of, you need to put one of your Pokémon to sleep. My guides call it tucking a Pokémon in, which I have to admit sounds a great deal more humane. Any Pokémon from the in-game storage system can be laid to rest (sorry). Once that's taken care of, you can log into their Dream World via the Global Link site.
The Dream World is a colorful cartoon world with many different activities aimed at extending the player's Pokémon experience beyond the game. There's a garden where players can grow berries, a feature purposefully left out of the Black and White versions of the game. Berries act as currency in the Dream World, used to purchase furniture to decorate your Pokémon's dream house. Players can visit their friends' dream houses, exchanging items via a share shelf. It's a place where the more social aspects of the Pokémon series can flourish.
It's also a place to obtain rare items and Pokémon not obtainable anywhere else.
With each visit to the Dream World, players get ten turns to explore the island of dreams. Arrows transition between forest scenes, populated with trees and bushes that hold many secrets. Should a bit of foliage sparkle, that means a rare item is inside. Should it shake, there's a rare Pokémon hiding within.
The Pokémon encountered in Dream World may look like normal, everyday pocket monsters, but they'll have access to skills that they've never been able to use in previous iterations of the game. For the serious Pokémon battler, the element of surprise alone would be a serious advantage, which is likely why this year's Pokémon Video Game Championships limits teams to Pokémon encountered in the new Unova Region.
When you encounter a Pokémon in the Dream World they will challenge you to a mini-game. Perform well, and they will befriend you, giving you the ability to bring them into your Black and White game. There is a catch to catching them all, however. No matter how many new Pokémon populate the friend board in your dream house, you can only export them one at a time. While this wouldn't be an issue if you could go in and out of the Dream World at will, but players are limited to one hour-long visit every 24 hours. That's one bonus Pokémon a day.
As I write this I am staring at the Global Link website. I have another hour before I can log back in. Needless to say, it's a little addictive.
Once you've returned from the Dream World you can warp to a special area of Black and White using your C-Gear, capture your new Pokémon friend with a Dream Ball, and it's your slave until the end of time.
[gallery 5794839] The Pokémon Dream World is a rather innovative way to extend the Pokémon experience beyond the confines of your dual-screened Nintendo handheld. It's an entertaining diversion that should prove fruitful to fans whether or not they choose to become berry farmers. The time limit is a bit harsh, but there's plenty of other features to explore on the Global Link website while you're waiting out the countdown timer, including customizing your game screens with new wallpapers, vying for a spot on the global leaderboards, and sending simple email messages to your Global Link friends.
It's an all-new way to play Pokémon, and it's only just begun.


text:
My (Second) Duke Dumont Interview
His new EP, Blasé Boys Club, Pt. 1, was released this past Friday (October 2). He's also on tour in the States through the rest of the month. You can catch my latest chat with him here, and the previous one I did with him last October here.
Labels: Duke Dumont


text:
Andrei Alexandrescu is a graduate student in Computer Science at the University of Washington and author of Modern C++ Design. He can be contacted at [email protected].
After skipping an installment of "Generic<Programming>" (it's naive, I know, to think that grad school asks for anything less than 100 percent of one's time), there has been an embarrassment of riches as far as topic candidates for this article. One topic candidate was a discussion of constructors; in particular, forwarding constructors, handling exceptions, and two-stage object construction. One other topic candidateand another glimpse into the Yaslander technology [2]was creating containers (such as lists, vectors, or maps) of incomplete types, something that is possible with the help of an interesting set of tricks, but not guaranteed by the standard containers.
While both candidates are intriguing, they couldn't stand a chance against lock-free data structures, which are all the rage in the multithreaded programming community. At this year's Programming Language Design and Implementation conference (http://www.cs.umd.edu/~pugh/pldi04/), Michael Maged presented the world's first lock-free memory allocator [7], which surpasses at many tests other more complex, carefully designed lock-based allocators.
This is the most recent of many lock-free data structures and algorithms that have appeared in the recent past.
What Do You Mean, "lock-free?"
That's exactly what I would have asked only a while ago. As the bona-fide mainstream multithreaded programmer that I was, lock-based multithreaded algorithms were familiar to me. In classic lock-based programming, whenever you need to share some data, you need to serialize access to it. The operations that change data must appear as atomic, such that no other thread intervenes to spoil your data's invariant. Even a simple operation such as ++count_ (where count_ is an integral type) must be locked. Incrementing is really a three-step (read, modify, write) operation that isn't necessarily atomic.
In short, with lock-based multithreaded programming, you need to make sure that any operation on shared data that is susceptible to race conditions is made atomic by locking and unlocking a mutex. On the bright side, as long as the mutex is locked, you can perform just about any operation, in confidence that no other thread will trample on your shared state.
It is exactly this "arbitrary"-ness of what you can do while a mutex is locked that's also problematic. You could, for example, read the keyboard or perform some slow I/O operation, which means that you delay any other threads waiting for the same mutex. Worse, you could decide you want access to some other piece of shared data and attempt to lock its mutex. If another thread has already locked that last mutex and wants access to the first mutex that your threads already holds, both processes hang faster than you can say "deadlock."
Enter lock-free programming. In lock-free programming, you can't do just about anything atomically. There is only a precious small set of things that you can do atomically, a limitation that makes lock-free programming way harder. (In fact, there must be around half a dozen lock-free programming experts around the world, and yours truly is not among them. With luck, however, this article will provide you with the basic tools, references, and enthusiasm to help you become one.) The reward of such a scarce framework is that you can provide much better guarantees about thread progress and the interaction between threads. But what's that "small set of things" that you can do atomically in lock-free programming? In fact, what would be the minimal set of atomic primitives that would allow implementing any lock-free algorithmif there's such a set?
If you believe that's a fundamental enough question to award a prize to the answerer, so did others. In 2003, Maurice Herlihy was awarded the Edsger W. Dijkstra Prize in Distributed Computing for his seminal 1991 paper "Wait-Free Synchronization" (see http://www.podc.org/dijkstra/2003.html, which includes a link to the paper, too). In his tour-de-force paper, Herlihy proves which primitives are good and which are bad for building lock-free data structures. That brought some seemingly hot hardware architectures to instant obsolescence, while clarifying what synchronization primitives should be implemented in future hardware.
For example, Herlihy's paper gave impossiblity results, showing that atomic operations such as test-and-set, swap, fetch-and-add, or even atomic queues (!) are insufficient for properly synchronizing more than two threads. (That's surprising because queues with atomic push and pop operations would seem to provide quite a powerful abstraction.) On the bright side, Herlihy also gave universality results, proving that some simple constructs are enough for implementing any lock-free algorithm for any number of threads.
The simplest and most popular universal primitive, and the one that I use throughout, is the compare-and-swap (CAS) operation:
template <class T> bool CAS(T* addr, T expected, T value) { if (*addr == expected) { *addr = value; return true; } return false; }
CAS compares the content of a memory address with an expected value, and if the comparison succeeds, replaces the content with a new value. The entire procedure is atomic. Many modern processors implement CAS or equivalent primitives for different bit lengths (the reason for which we've made it a template, assuming an implementation uses metaprogramming to restrict possible Ts). As a rule of thumb, the more bits a CAS can compare-and-swap atomically, the easier it is to implement lock-free data structures with it. Most of today's 32-bit processors implement 64-bit CAS; for example, Intel's assembler calls it CMPXCHG8 (you gotta love those assembler mnemonics).
A Word of Caution
Usually a C++ article is accompanied by C++ code snippets and examples. Ideally, that code is Standard C++, and "Generic<Programming>" strives to live up to that ideal.
When writing about multithreaded code, however, giving Standard C++ code samples is simply impossible. Threads don't exist in Standard C++, and you can't code something that doesn't exist. Therefore, the code for this article is "pseudocode" and not meant as Standard C++ code for portable compilation. Take memory barriers, for example. Real code would need to be either assembly language translations of the algorithms described herein, or at least sprinkle C++ code with some so-called "memory barriers"processor-dependent magic that forces proper ordering of memory reads and writes. I don't want to spread the discussion too thin by explaining memory barriers in addition to lock-free data structures. If you are interested, refer to Butenhof's excellent book [3] or to a short introduction [6]. For purposes here, I assume that the compiler and the hardware don't introduce funky optimizations (such as eliminating some "redundant" variable reads, a valid optimization under a single-thread assumption). Technically, that's called a "sequentially consistent" model in which reads and writes are performed and seen in the exact order in which the source code does them [8].
Wait-Free and Lock-Free versus Locked
A "wait-free" procedure can complete in a finite number of steps, regardless of the relative speeds of other threads.
A "lock-free" procedure guarantees progress of at least one of the threads executing the procedure. That means some threads can be delayed arbitrarily, but it is guaranteed that at least one thread makes progress at each step. So the system as a whole always makes progress, although some threads might make slower progress than others. Lock-based programs can't provide any of the aforementioned guarantees. If any thread is delayed while holding a lock to a mutex, progress cannot be made by threads that wait for the same mutex; and in the general case, locked algorithms are prey to deadlockeach waits for a mutex locked by the otherand livelockeach tries to dodge the other's locking behavior, just like two dudes in the hallway trying to go past one another but end up doing that social dance of swinging left and right in synchronicity. We humans are pretty good at ending that with a laugh; processors, however, often enjoy doing it until rebooting sets them apart.
Wait-free and lock-free algorithms enjoy more advantages derived from their definitions:
- Thread-killing Immunity: Any thread forcefully killed in the system won't delay other threads.
- Signal Immunity: The C and C++Standards prohibit signals or asynchronous interrupts from calling many system routines such as malloc. If the interrupt calls malloc at the same time with an interrupted thread, that could cause deadlock. With lock-free routines, there's no such problem anymore: Threads can freely interleave execution.
- Priority Inversion Immunity: Priority inversion occurs when a low-priority thread holds a lock to a mutex needed by a high-priority thread. Such tricky conflicts must be resolved by the OS kernel. Wait-free and lock-free algorithms are immune to such problems.
A Lock-Free WRRM Map
Column writing offers the perk of defining acronyms, so let's define WRRM (Write Rarely Read Many) maps as maps that are read a lot more than they are mutated. Examples include object factories [1], many instances of the Observer design pattern [5], mappings of currency names to exchange rates that are looked up many, many times but are updated only by a comparatively slow stream, and various other look-up tables.
WRRM maps can be implemented via std::map or the post-standard unordered_map (http://www.open-std.org/jtcl/sc22/wg21/docs/papers/2004/n1647.pdf), but as I argue in Modern C++ Design, assoc_vector (a sorted vector or pairs) is a good candidate for WRRM maps because it trades update speed for lookup speed. Whatever structure is used, our lock-free aspect is orthogonal to it; let's just call the back-end Map<Key, Value>. Also, for the purposes of this article, iteration is irrelevantmaps are only tables that provide a means to lookup a key or update a key-value pair.
To recap how a locking implementation would look, let's combine a Map object with a Mutex object like so:
// A locking implementation of WRRMMap template <class K, class V> class WRRMMap { Mutex mtx_; Map<K, V> map_; public: V Lookup(const K& k) { Lock lock(mtx_); return map_[k]; } void Update(const K& k, const V& v) { Lock lock(mtx_); map_[k] = v; } };
To avoid ownership issues and dangling references (that could bite us harder later), Lookup returns its result by value. Rock-solidbut at a cost. Every lookup locks/unlocks the Mutex, although (1) parallel lookups don't need to interlock, and (2) by the spec, Update is much less often called than Lookup. Ouch! Let's now try to provide a better WRRMMap implementation.
Garbage Collector, Where Art Thou?
The first shot at implementing a lock-free WRRMMap rests on this idea:
- Reads have no locking at all.
- Updates make a copy of the entire map, update the copy, and then try to CAS it with the old map. While the CAS operation does not succeed, the copy/update/CAS process is tried again in a loop.
- Because CAS is limited in how many bytes it can swap, WRRMMap stores the Map as a pointer and not as a direct member of WRRMMap.
// 1st lock-free implementation of WRRMMap // Works only if you have GC template <class K, class V> class WRRMMap { Map<K, V>* pMap_; public: V Lookup (const K& k) { //Look, ma, no lock return (*pMap_) [k]; } void Update(const K& k, const V& v) { Map<K, V>* pNew = 0; do { Map<K, V>* pOld = pMap_; delete pNew; pNew = new Map<K, V>(*pOld); (*pNew) [k] = v; } while (!CAS(&pMap_, pOld, pNew)); // DON'T delete pMap_; } };
It works! In a loop, the Update routine makes a full-blown copy of the map, adds the new entry to it, and then attempts to swap the pointers. It is important to do CAS and not a simple assignment; otherwise, the following sequence of events could corrupt the map:
- Thread A copies the map.
- Thread B copies the map as well and adds an entry.
- Thread A adds some other entry.
- Thread A replaces the map with its version of the mapa version that does not contain whatever B added.
With CAS, things work pretty neatly because each thread says something like, "assuming the map hasn't changed since I last looked at it, copy it. Otherwise, start all over again."
This makes Update lock-free but not wait-free, by my definitions. If many threads call Update concurrently, any particular thread might loop indefinitely, but at all times some thread will be guaranteed to update the structure successfully, thus global progress is being made at each step. Luckily, Lookup is wait-free.
In a garbage-collected environment, we'd be done, and this article would end on an upbeat note. Without garbage collection, however, there is much pain to come. This is because you cannot simply dispose of the old pMap_ willy-nilly; what if, just as you are trying to delete it, many other threads are frantically looking for things inside pMap_ via the Lookup function? You see, a garbage collector would have access to all threads' data and private stacks; it would have a good perspective on when the unused pMap_ pointers aren't perused anymore, and would nicely scavenge them. Without a garbage collector, things get harder. Much harder, actually, and it turns out that deterministic memory freeing is quite a fundamental problem in lock-free data structures.
Write-Locked WRRM Maps
To understand the viciousness of our adversary, it is instructive to try a classic reference-counting implementation and see where it fails. So, think of associating a reference count with the pointer to map, and have WRRMMap store a pointer to the thusly formed structure:
template <class K, class V> class WRRMMap { typedef std::pair<Map<K, V>*, unsigned> Data; Data* pData_; ... };
Sweet. Now, Lookup increments pData_->second, searches through the map all it wants, then decrements pData_->second. When the reference count hits zero, pData_->first can be deleted, and then so can pData_ itself. Sounds foolproof, except...except it's "foolish" (or whatever the antonym to "foolproof" is). Imagine that right at the time some thread notices the refcount is zero and proceeds on deleting pData_, another thread...no, better: A bazillion threads have just loaded the moribund pData_ and are about to read through it! No matter how smart a scheme is, it hits this fundamental Catch-22to read the pointer to the data, you need to increment a reference count; but the counter must be part of the data itself, so it can't be read without accessing the pointer first. It's like an electric fence that has the turn-off button up on top of it: To safely climb the fence you need to disable it first, but to disable it you need to climb it.
So let's think of other ways to delete the old map properly. One solution would be to wait, then delete. You see, the old pMap_ objects will be looked up by less and less threads as processor eons (milliseconds) go by; this is because new lookups use the new maps; as soon as the lookups that were active just before the CAS finish, the pMap_ is ready to go to Hades. Therefore, a solution would be to queue up old pMap_ values to some "boa serpent" thread that, in a loop, sleeps for, say, 200 milliseconds, wakes up and deletes the least recent map, and then goes back to sleep for digestion.
This is not a theoretically safe solution (although it practically could well be within bounds). One nasty thing is that if, for whatever reason, a lookup thread is delayed, the boa serpent thread can delete the map under that thread's feet. This could be solved by always assigning the boa serpent thread a lower priority than any other's, but as a whole, the solution has a stench that is hard to remove. If you agree with me that it's hard to defend this technique with a straight face, let's move on.
Other solutions [4] rely on an extended DCAS atomic instruction, which is able to compare-and-swap two noncontiguous words in memory:
template <class T1, class T2> bool DCAS(T1* p1, T2* p2, T1 e1, T2 e2, T1 v1, T2 v2) { if (*p1 == e1 && *p2 == e2) { *p1 = v1; *p2 = v2; return true; } return false; }
Naturally, the two locations would be the pointer and the reference count itself. DCAS has been implemented (very inefficiently) by the Motorola 68040 processors, but not by other processors. Because of that, DCAS-based solutions are considered of primarily theoretical value.
The first shot at a solution with deterministic destruction is to rely on the less-demanding CAS2. Again, many 32-bit machines implement a 64-bit CAS, often dubbed as CAS2. (Because it only operates on contiguous words, CAS2 is obviously less powerful than DCAS.) For starters, let's store the reference count next to the pointer that it guards:
template <class K, class V> class WRRMMap { typedef std::pair<Map<K, V>*, unsigned> Data; Data data_; ... };
(Notice that this time the count sits next to the pointer that it protects, a setup that eliminates the Catch-22 problem mentioned earlier. You'll see the cost of this setup in a minute.)
Then, let's modify Lookup to increment the reference count before accessing the map, and decrement it after. In the following code snippets, I ignore exception safety issues (which can be taken care of with standard techniques) for the sake of brevity.
V Lookup(const K& k) { Data old; Data fresh; do { old = data_; fresh = old; ++fresh.second; } while (CAS(&data_, old, fresh)); V temp = (*fresh.first)[k]; do { old = data_; fresh = old; --fresh.second; } while (CAS(&data_, old, fresh)); return temp; }
Finally, Update replaces the map with a new onebut only in the window of opportunity when the reference count is 1.
void Update(const K& k, const V& v) { Data old; Data fresh; old.second = 1; fresh.first = 0; fresh.second = 1; Map<K, V>* last = 0; do { old.first = data_.first; if (last != old.first) { delete fresh.first; fresh.first = new Map<K, V>(old.first); fresh.first->insert(make_pair(k, v)); last = old.first; } } while (!CAS(&data_, old, fresh)); delete old.first; // whew }
Here's how Update works. It defines the now-familiar old and fresh variables. But this time old.last (the count) is never assigned from data_.last; it is always 1. This means that Update loops until it has a window of opportunity to replace a pointer with a counter of 1, with another pointer having a counter of 1. In plain English, the loop says "I'll replace the old map with a new, updated one, and I'll be on the lookout for any other updates of the map, but I'll only do the replacement when the reference count of the existing map is one." The variable last and its associated code are only one optimization: Avoid rebuilding the map over and over again if the old map hasn't been replaced (only the count).
Neat, huh? Not that much. Update is now locked: It needs to wait for all Lookups to finish before it has a chance to update the map. Gone with the wind are all the nice properties of lock-free data structures. In particular, it is easy to starve Update to death: Just look up the map at a high-enough rateand the reference count never goes down to 1. So what you really have so far is not a WRRM (Write-Rarely-Read-Many) map, but a WRRMBNTM (Write-Rarely-Read-Many-But-Not-Too-Many) one instead.
Lock-free data structures are promising. They exhibit good properties with regards to thread killing, priority inversion, and signal safety. They never deadlock or livelock. In tests, recent lock-free data structures surpass their locked counterparts by a large margin [9]. However, lock-free programming is tricky, especially with regards to memory deallocation. A garbage-collected environment is a plus because it has the means to stop and inspect all threads, but if you want deterministic destruction, you need special support from the hardware or the memory allocator. In the next installment of "Generic<Programming>," I'll look into ways to optimize WRRMMap such that it stays lock-free while performing deterministic destruction.
And if this installment's garbage-collected map and WRRMBNTM map dissatisfied you, here's a money saving tip: Don't go watch the movie Alien vs. Predator, unless you like "so bad it's funny" movies.
David B. Held, Michael Maged, Larry Evans, and Scott Meyers provided very helpful feedback. Also, Michael graciously agreed to coauthor the next "Generic<Programming>" installment, which will greatly improve on our WRRMap implementation.
[1] Alexandrescu, Andrei. Modern C++ Design, Addison-Wesley Longman, 2001.
[2] Alexandrescu, Andrei. "Generic<Programming>:yasli::vector Is On the Move," C/C++ Users Journal, June 2004.
[3] Butenhof, D.R. Programming with POSIX Threads, Addison-Wesley, 1997.
[4] Detlefs, David L., Paul A. Martin, Mark Moir, and Guy L. Steele, Jr. "Lock-free Reference Counting," Proceedings of the Twentieth Annual ACM Symposium on Principles of Distributed Computing, pages 190-199, ACM Press, 2001. ISBN 1-58113-383-9.
[5] Gamma, Erich, Richard Helm, Ralph E. Johnson, and John Vlissides. Design Patterns: Elements of Resusable Object-Oriented Software, Addison-Wesley, 1995.
[6] Meyers, Scott and Andrei Alexandrescu. "The Perils of Double-Checked Locking." Dr. Dobb's Journal, July 2004.
[7] Maged, Michael M. "Scalable Lock-free Dynamic Memory Allocation," Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation, pages 35-46. ACM Press, 2004. ISBN 1-58113-807-5.
[8] Robison, Arch. "Memory Consistency & .NET," Dr. Dobb's Journal, April 2003.
[9] Maged, Michael M. "CAS-Based Lock-Free Algorithm for Shared Deques," The Ninth Euro-Par Conference on Parallel Processing, LNCS volume 2790, pages 651-660, August 2003.


text:
If you install the module and execute it via CLI it will not produce any errors when not enabled. It took me quite a bit of time until I realised that by default the module is disabled, http://www.php.net/manual/en/inclued.configuration.php.
This example demonstrates the process of implementing inclued into an existing application, and viewing the results.
Example #1 Getting the data within the PHP application itself (function)
// File to store the inclued information
$fp = fopen('/tmp/wp.ser', 'w');
if ($fp) {
$clue = inclued_get_data();
if ($clue) {
fwrite($fp, serialize($clue));
Now that some data exists, it's time to make sense of it in the form of a graph. The inclued extension includes a PHP file named gengraph.php that creates a dot file that requires the » graphviz library. However, this form is not required.
Example #2 Example use of gengraph.php
This example creates an image named inclued.png that shows the inclued data.
# First, create the dot file $ php gengraph.php -i /tmp/wp.ser -o wp.dot # Next, create the image $ dot -Tpng -o inclued.png wp.dot
Example #3 Listing data via inclued dumps (configuration)
When using the inclued.dumpdir directive, files (include clues) are dumped with every request. Here's one way to list those files, and unserialize() them.
$path = ini_get('inclued.dumpdir');
if ($path && is_dir($path)) {
echo "Path: $path", PHP_EOL;
$inclues = new GlobIterator($path . DIRECTORY_SEPARATOR . 'inclued*');
if ($inclues->count() === 0) {
echo 'No clues today', PHP_EOL;
foreach ($inclues as $inclue) {
echo 'Inclued file: ', $inclue->getFilename(), PHP_EOL;
$data = file_get_contents($inclue->getPathname());
if ($data) {
$inc = unserialize($data);
echo ' -- filename: ', $inc['request']['SCRIPT_FILENAME'], PHP_EOL;
echo ' -- number of includes: ', count($inc['includes']), PHP_EOL;
echo PHP_EOL;
} else {
echo 'I am totally clueless today.', PHP_EOL;
The above example will output something similar to:
PATH: /tmp/inclued Inclued file: inclued.56521.1 -- filename: /Users/philip/test.php -- number of includes: 1 Inclued file: inclued.56563.1 -- filename: /tmp/none.php -- number of includes: 0 Inclued file: inclued.56636.1 -- filename: /tmp/three.php -- number of includes: 3
If you install the module and execute it via CLI it will not produce any errors when not enabled. It took me quite a bit of time until I realised that by default the module is disabled, http://www.php.net/manual/en/inclued.configuration.php.
Note that inclued does not work correctly when xdebug is enabled (the includes array remains empty; consequently, graphing the classes works but graphing the files does not). Bug report: https://bugs.php.net/bug.php?id=59419
The new gengraph.php has « -t » parameter set to « includes » by default. Don't forget to specify it to « classes » for most of all projects.
Since PHP 5.3, namespace operators are stripped by Graphiz when the graph is generated. Add the following tips to escape namespace operators:
// Around line 254
else /* classes */
$filemap = array();
foreach($data["classes"] as $k => $v) {
$class = $v;
// Here is the tip to remove namespaces
$class['name'] = str_replace('\\', '\\\\', $class['name']);
$class['mangled_name'] = str_replace('\\', '\\\\', $class['mangled_name']);
// ...
By the way, if you are looking for an easy way to use inclued, take a look at my library: http://www.eexit.net/projects/inclued.html


text:
Natural Harvest Dress
Seeker X Retriever
- Loose fit
- Pull on
- Self-tie
- 2 side hidden pockets
Color: Natural.
Fabric: 100% handwoven cotton.
Due to natural material being used, slight variation of colors may occurs from season to season. Meaning your garment is one of a kind, embrace it!
Hand wash or machine wash on gentle cycle
Regular cycle is OK when using a wash bag
Wash with like colors
Hang dry in the shade
Do not tumble dry
Warm iron
For Indigo Garments, wash separately with dark colors in mild detergent the first three times
Fading, slight wrinkles and imperfections are only natural—embrace them!
Should there be any loose threads due to the handwoven process, please do not pull them out. Simply clip the loose string with scissors.
One Size
|Total Length
Founded in 2016, Seeker x Retriever are an Australian-Thai fashion label that specializes in garments made in small batches from 100% handwoven cotton and recycled materials. All their garments are made with love by small artisan groups in the North and Northeastern regions of Thailand, where creative director Nan Tohch's mother originated. Seeker x Retriever work with Nammorn Design, a small-scale weaving collective in Chaeson, Northern Thailand. Here, all pieces are made from handwoven cotton, using only natural dyes from seasonal plants that are native to this area; for example, their grey colour comes from the leaves of the local Takian tree while their mango colour comes from actual mango leaves! Seeker x Retriever garments are not produced in an assembly-line style, as they work with only a couple of self-employed tailors in Bangkok (Aunty Duang and Aunty Nid) who sew each piece from start to finish. This process may take longer, but it ensures better craftsmanship, better pay rates and no unreasonable production demands.


text:
|....1025 Old Farm Road, Thousand Oaks, CA 91360•••••• Main, 805-497-2761•••Fax, 805-374-1167••••••• www.ConejoAdultEd.org•••••••WASC-accredited
|Questions about our Medical Programs? Contact Professional Development coordinator Wendy Summerfield:
805-497-2761 x1011 or email@example.com She will give you complete information about our programs,
as well as arrange for a tour of our beautiful, safe campus.
Questions about Medical Dept. classes? Contact dept. coordinator Daren Iezza:
805-497-2761 x1401, email@example.com
Medical Billing questions? Call 805-497-2761 x1402 ..... Externship questions? Call 805-497-2761 x1404
NO REFUNDS for any Medical classes unless cancelled by Conejo Valley Adult School.
|Questions? Comments? Email us at firstname.lastname@example.com
Webmaster | Terms of Use | Privacy Policy
© 2020 Conejo Valley Adult School


text:
Let's just assume that everything you think you know about "The Dark Knight Rises" is wrong. Since production began on Christopher Nolan's third installment in his Batman trilogy, the internet has been aflame with rumors that are, quite frankly, complete nonsense.
If we believed everything we read, then Joseph Gordon-Levitt is playing everyone from The Riddler to Robin to Black Mask to Bat Mite. And Heath Ledger will be making a CGI-enhanced cameo. And Christian Bale is playing the entire movie as Bat-Dicky Eklund.
In other words, we've been pretty much ignoring the most egregiously outrageous internet speculation.
U.S. & World
Until now.
Why? Because someone, somewhere, claims to have seen ADAM WEST in England. And, um, "Dark Knight" is currently shooting in England. COINCIDENCE? I mean, he's in the same country where a movie is being shot. Do you need it spelled out for you?
OK, this is ridiculous, but we couldn't resist it because, well, it makes us think of this...
And when is that ever bad?


text:
John Nelson took his camera, Ryan Keeling his pen, to one of Europe's best festivals this past weekend, as Lyon's Nuits Sonores celebrated its tenth anniversary.
Back in 2001 Lyon's nightlife was in an abject state. Promoters of any form of music were subject to constant pressure and restrictions from the local government. Parties were forced to close at 1:00 AM. Local DJs like Sébastien Devaud, AKA Agoria, were regularly being arrested for breaking laws on opening hours. The situation remained fairly bleak, until in March of that year socialist mayoral candidate Gérard Collomb came to power with a mandate to boost Lyon's nightlife and therefore its student population. The city's key cultural figures were gathered and asked to give their thoughts on improving the situation. A small group of people including Devaud and Vincent Carry (now the Nuits Sonores director) campaigned for a dedicated electronic music festival. Carry eventually convinced the mayor to join them on a night out, looking to give him a greater insight into their nocturnal culture. Ten years on and Collomb is still in office, and Nuits Sonores is France's most important electronic music event.
It has been a gradual process, but the level of trust and integration the festival enjoys within the city is unparalleled; a fact that is immediately apparent upon arrival. Lyon's stunning main square—the Place des Terreaux—serves as Nuits Sonores' central hub, which includes Hôtel de Ville, its 17th century-built city hall. Parties take place in any imaginable space right across the city, with no apparent restrictions on sound. This has led to an almost overwhelming five-day program.
The main NS day (Hotel-Dieu) and night (Aciennes Usines Brossette) venues provided welcome focal points, which, in line with Nuits Sonores' commendably progressive approach, change each year. Sections of the far-reaching Hotel-Dieu building date back to the 15th century and it was an active hospital until 2010. Stages were erected in two of its splendid main courtyards, hosting a program which split its time between house/techno/bass and more indie/band-orientated entertainment. Brossette, a former factory, had the look and feel of Sonar's gargantuan night venue, Fira Gran Via, albeit in a more manageable form. Nuits Sonores production credentials were most closely tested here—and in the main succeeded—with giant projections, stadium-sized stages and more than adequate (save for the third space) soundsystems.
In addition to the daytime action at Hotel-Dieu, a different outdoor space was utilized each day for a free one-off party, Apéro Sonore. Locations ranged from a wooden shack in a sun-filled park decorated with bunting, to a weighty dub soundsystem parked on a rain-swept street, to Isloee playing live in front of thousands in Place des Célestins, one of the city's central squares. In all cases there was a harmonious mix of mainly French club kids and curious locals. Friday night's Circuit Electronique saw 13 Lyon venues host parties, each loosely themed on a different city. It was difficult to draw any conclusions as to the state of the city's permanent club infrastructure (unless you had a driver handy) but the two we visited—La Platforme and First—seemed to suggest that the range runs from intimate and interesting to mainstream and trashy.
Mini Sonores / Extras
Mini Sonores spoke to the lengths that the festival has gone to integrate itself into the wider Lyon community. Parents brought their children to one of Hotel-Dieu's many courtyards to enjoy a surf rock soundtrack, a mini DJing school and various other bits of interactive fun.
The Extra! program, meanwhile, was an opportunity to get out and see some more of the city. Matters of gastronomy, photography, roller skating, cycling, cinema, musical chairs and much more besides were explored daily from Thursday to Sunday. There were also some good old-fashioned parties, with a soundsystem under a bridge beside the river Rhône being a particularly clever use of the space. However, this portion of the festival did serve to highlight a general flaw of Nuits Sonores: its communication. Attendees were confusingly offered as many as five different versions of the overall program, with none of them containing an all-important map that detailed locations.
As you might have gathered at this stage, France's second-largest city plays an integral role in every aspect of Nuits Sonores. If you don't mind travelling by foot, most venues in the city are accessible in less than 30 minutes, and if not, are usually just a short cab journey away. Both the Rhône, and its tributary the Saône, snake through the city, with the picturesque old town splayed steeply uphill from the banks of the latter. It's also worth noting that Lyon is known as France's food capital, although it's probably advisable to revisit outside of the festival schedule in order to fully indulge in its delicacies.
Lyon and Airflex Lab's Opti warmed up for Hudson Mohawke, Julio Bashmore and Joy Orbison at NS Days 1, and after his set spoke eloquently about his and others' struggles to bring UK sounds to the city. Peoples' ears have gradually been opened over the last few years, he says, but what was striking from an outsider's perspective was his dedication to remain and educate, rather than leave Lyon. This type of spirit had been evident in the past through figures such as local hero Agoria, who, after claiming he would not be playing this year, closed the main stage at Brossette on the Saturday, DJing alongside Laurent Garnier and Brodinski to an enormous and ecstatic crowd. Elsewhere Lyon artists played largely supporting roles, but the festival has been—and evidently will be—a continuing source of grassroots inspiration.
Christine Kakaire noted in her review of Nuits Sonores last year that there was "no single show-stopping act" and this was again the case in 2012. The lesser discussed indie portion of the program seemed to fall flat on NS Day 2, while over on the second stage, Berghain's Ben Klock and Marcel Dettmann gave one of the weekend's most feel-good performances. (Yes, you read that right.) Both beamed from ear-to-ear as they took a track each, interacting with a buoyant crowd (Klock was regularly grabbing cameras to take pictures for people) as they moved through cuts like Bam Bam's "Where's Your Child?" and a thumping techno remix of "Ghetto Kraviz." The main stage the day before had seen Joy Orbison dexterously rattle through a crowd-pleasing set—"Getting Me Down," "Ye Ye," "Swims"—before Maya Jane Coles closed things out capably on a tough house tip. Pachanga Boys (Rebolledo and Superpitcher) resembled a latter-day Wighnomy Brothers as they tossed their hair about on the Kompakt stage and dropped Basement Jaxx's "Flylife."
After he was inexplicably left to sort out his own technical issues, James Murphy proved that disco can move a massive main stage crowd with his DJ set at Brossette on Night 1. Chris & Cosey took things to ear-splitting levels with a surprisingly danceable performance that night on the third stage, while Theo Parrish pushed his singular blend of funk, soul, disco and house on the same system two nights later. Following recent tragic events, Beastie Boys and Donna Summer were well represented over the weekend, with Flying Lotus dropping "Intergalactic" during a hip-hop heavy set. Running Back's Gerd Janson was a standout of the Circuit Electronique program on the Friday night, fuelling his continually growing reputation as a DJ who makes people lose their shit.
Ricardo Villalobos and Max Loderbauer's Re:ECM performance at the majestic Théâtre des Célestins looked on paper to be a welcome experimental aside. The reality was that its scheduled slot on the Saturday evening (the fourth day of the festival) was ill-timed, with most in the warm auditorium fidgeting to fight fatigue as the pair improvised in one continuous movement on modular synths. Villalobos then reappeared later that night under wildly different circumstances as part of the secret program on the main stage at Brossette, with both him and fellow surprise guest Dixon expertly moving the biggest crowd of the weekend
Before his closing set that night, Agoria discussed how the attitudes of the Nuits Sonores founders have changed down the years. "We were all kind of 'punk' when we started out...[but we realized] we can only change the establishment from the inside." While it's true that the festival is subject to a unique (and highly enviable) symbiotic relationship with the local government, the years of trust building and careful micro-management have resulted in a globally relevant festival and a superlative advert for the city of Lyon.


text:
SANTA MONICA, Calif. - "Call of Duty: Black Ops II" crossed the $1 billion mark in worldwide retail sales 15 days after its Nov. 13 release, Activision Blizzard Inc., the video game's publisher, said Wednesday.
Last year's "Call of Duty: Modern Warfare 3" hit the $1 billion sales mark in 16 days.
The company cited data from U.K.-based retail researcher Chart-Track, which tracks sales through retailers, and internal company estimates.


text:
Dartmouth Digital Library Collections
These manuscripts (circa 1743-1794) have been assembled as part of an NEH-funded project to document Samson Occom's education and his relationship with Eleazar Wheelock.
These materials elucidate a number of other subjects including the Great Awakening; attitudes toward Indians in the 18th century; missionary work among the …
Photographic Records is a collection of thousands of images that are a visual record of Dartmouth College life (locale, people, and events). These images were created by College Photographers Adrian N. Bouchard (1938-1976), Stuart Bratesman (1985-1993), Joseph Mehling (1993-2011), Eli Burakian (2011-present) and Robert Gill …
Dartmouth College Photo Files are a diverse collection of approximately 80,000 photographs related to Dartmouth College, Hanover, and the surrounding area. Images date from the early years of photography (ca. 1850s) to the present and include images of nearly all aspects of Dartmouth College life, including:
The Encyclopedia Arctica is the typescript of a proposed 20-volume reference work on the northern arctic and subarctic regions. The project was begun in 1947 under the sponsorship of the Office of Naval Research, Department of the Navy and drew on the expertise of governments (especially Canada), learned societies, and scholars from all …
The Richard E. Stoiber Papers, of which these slides are a part, comprise of 23 boxes of material (34.5 linear ft.), and also contain books, manuscripts, class lectures, published articles and abstracts, correspondence, student papers and research reports, photographs, negatives, videotapes and films, annotated maps, and personal …
The Dartmouth Digital Library Program promotes innovative scholarship and teaching through the digitization of selected Library holdings and the open access publication of new digital scholarship. The Program responds to increasing demand for global access to our collections, and is aligned with our mission to foster intellectual growth by supporting excellence in education and research, and with our vision of "inspiring ideas for personal transformation and global impact".


text:
Investors pull another $2.7 billion out of stocksAugust 23, 2012: 11:16 AM ET
The retreat from the U.S. stock market continued last week, as investors refrained from making any big bets amid the market's summer doldrums.
Another $2.7 billion was pulled from U.S. stock market mutual funds during the week ended Aug. 15, according to the Investment Company Institute, bringing the 2012 outflow total to more than $69 billion. By comparison, those funds lost in the neighborhood of $40 billion during the first seven months of 2010 and 2011.
While stock mutual funds have been bleeding money, investors have shown a voracious appetite for bonds, which are considered safe haven investments. In fact, bond funds raked in $7.2 billion last week, the most since early April, according to ICI data.
Hedge funds are betting on disaster
Hybrid funds, which invest in both stocks and bonds, have also been in favor among investors. Hybird funds brought in $949 million last week, the most since early July.


text:
I hope you're ready, ladies and gents. It's Versus mode week here at the Kotaku Game Club. Today we'll be sharing our experiences playing the competitive multiplayer modes of Gears of War 3.
Everyone seemed to have a lot to say about the end of the story during last week's discussion; I hope you guys are just as revved up about the multiplayer, despite the lack of expanded fiction. There are six Versus modes to choose from. That's a lot of different types of play. I'm sure each of you has a favorite: Now's the time to tell us why.
Side note: In honor of last Thursday's Myrrah-centric discussion, I've been using the queen as my Locust skin all week.
Next week will be our final discussion of Gears of War 3. We'll be looking at the game's new and improved Horde Mode, along with the brand new Beast Mode. Also, make sure you bring a couple of ideas for what you'd like KGC to play next! We'll meeting on Kotaku next Thursday, October 13th, at 4pm Eastern.
You can contact Mike Epstein, the author of this post, at email@example.com. You can also find him on Twitter and Facebook.


text:
Sharks, Sharks Everywhere: Large Shark Spotted in Taunton River
It feels like this summer has been full of shark sightings near the state's beaches, but the latest spotting hits a little closer to home: Nearly 10 miles inland in the Taunton River.
Sooo...there's a Basking #Shark about 20 miles up the Taunton River in Dighton, Massachusetts! http://t.co/xWOQufklQE pic.twitter.com/KLJe7xyiNX— Tobey Curtis (@Mojoshark) August 28, 2014
The sighting was first reported at approximately 6:30 p.m. on Wednesday when, according to a report from the Taunton Daily Gazette, Dighton Harbormaster Ronald Marino received a call from local police about a shark in shallow water nearby.
Marino told the Gazette that the 10- to 12-foot-long shark was a sand tiger shark that had likely been tracking a school of small fish. He added that it had likely gotten stranded on a sandbar after the tide went out.
But on Thursday, the type of shark came under dispute after Gregory Skomal, a senior marine biologist with the Massachusetts Division of Marine Fisheries, told the Gazette he had determined it was a basking shark. Basking sharks can grow to be over 30 feet long, but are harmless to humans and only feed on plankton.
Wednesday's sighting is the third in ten days after sharks were spotted near Duxbury Beach and off the coast of Chatham, and the recent slew of sightings closes out a summer that felt like it was full of sharks.
Sharknado 2's premiere in July, the annual Shark Week celebration in August, a similar streak of sightings in June, and even the recent sunfish-being-confused-for-sharks incidents have kept our famously dorsal-finned friends on the mind throughout the summer months. And apparently that is how it should be: According to the Associated Press, the Great White shark population in the Atlantic off the coast of the United States and Canada is on the rise and shark sightings off Cape Cod have risen with it.
Of course, even though open bodies of water full of potential predators can be terrifying, the increases in shark population and shark sightings aren't necessarily bad. According to that same AP report on Cape Cod sightings, the spike in shark-related news has been a big boon for local businesses. And so long as there aren't any actual shark attacks, there's nothing wrong with businesses making a killing with their shark swag.
Be civil. Be kind.Read our full community guidelines.


text:
Apple has finally stepped in to put an end to the increasing incidents of fraudulent purchases in the iTunes App Store. Last week, we reported that someone called Thuat Nguyen was purchasing his own applications using hacked iTunes accounts. In fact, apps developed by Nguyen managed to claim 42 of the top 50 spots in the App Store rankings for the Books category.
Apple has now banned Thuat Nguyen and issued the following statement to Engadget:
The developer Thuat Nguyen and his apps were removed from the App Store for violating the developer Program License Agreement, including fraudulent purchase patterns.
Developers do not receive any iTunes confidential customer data when an app is downloaded.
If your credit card or iTunes password is stolen and used on iTunes we recommend that you contact your financial institution and inquire about canceling the card and issuing a chargeback for any unauthorized transactions. We also recommend that you change your iTunes account password immediately. For more information on best practices for password security visit http://www.apple.com/support/itunes.
According to Clayton Morris, about four hundred iTunes accounts were compromised. Apple's statement indicates that the hacking resulted out of callousness on the part of the user and not due some inherent vulnerability in iTunes. Nevertheless, Apple will be beefing up its security measures to make it harder for hacked accounts to be exploited.


text:
To add items to your bag, click the "Add To Bag" button from a product page, or move items from your wishlist.
Don't see all your shopping bag items? Please sign in.
Our beloved mikado dresses are timeless. The classic fabric is high quality and holds its shape, making it perfect for a structured dress. Dramatic details reign throughout our collection of mikado gowns and dresses. Featuring boat necklines, v-backs, high low skirts, and tea-lengths, these stylings are only a few that can be found in this dress collection. In a range of styles and silhouettes, mikado styles can be shopped in sizing from petite to plus size. Among this dress collection, you will find a look for every style and occasion in fits like fit and flare dresses and sheath dresses to midi dresses and ball gowns. Sweeping accents make every mikado dress unique. Check out our ruffled mikado cocktail dresses for a trend-driven styling, or reach for a mikado dress with contrasting lace trim for a romantic look. Prints or embellishments such as, bows, beading or buttons can take the design to the next level, but mikado fabric stands on its own gorgeously -- even a simple solid-color black A-line mikado dress promises a memorable look. Whether you have a dressy occasion coming up or you are simply looking to stock a go-to dress in the case of a last-minute night out, browse our selection of mikado dresses to find your perfect piece.


text:
Osama bin Laden's son-in-law has been convicted in New York of conspiring to kill Americans by serving as al-Qaida's spokesman after the Sept. 11 attacks.
The verdict came after about five hours of deliberation in the case against Sulaiman Abu Ghaith, the highest-ranking al-Qaida figure to face trial on U.S. soil since the attacks. The Kuwaiti imam had testified during a three-week trial that he answered bin Laden's request in the hours after the attacks to speak on the widely circulated videos used to recruit new followers willing to go on suicide missions like the 19 who hijacked four planes on Sept. 11, 2001.
"The storm of airplanes will not stop," Abu Ghaith was heard warning in an October 2001 video that was played for the jury.
Also shown repeatedly to the jury during the trial were frames of a video made Sept. 12, 2001, that showed Abu Ghaith seated next to bin Laden and two other top al-Qaida leaders as they tried to justify the attacks.
Sentencing was set for Sept. 8. The charges carry a potential penalty of life in prison.
On Monday, during closing arguments, Assistant U.S. Attorney John Cronan underscored the importance of Abu Ghaith's post-9/11 status.
"Going to that man was the very first thing Osama bin Laden did on Sept. 11 after the terror attacks," he said. "The defendant committed himself to al-Qaida's conspiracy to kill Americans, and he worked to drive other people to that conspiracy."
He added: "During the most important period of time in al-Qaida's savage history, Sulaiman Abu Ghaith was Osama bin Laden's principal messenger. ... He used his fiery oratory to incite al-Qaida's growing army of terror in this war with America."
The jury returned a guilty verdict on three charges: conspiracy to kill Americans, conspiring to provide support to al-Qaida and providing support to al-Qaida.
Captured in Jordan last year and brought to New York, Abu Ghaith actively participated in his trial. He listened to testimony and arguments through headphones linked to an Arabic translator.
Taking the witness stand in his own defense, Abu Ghaith in a calm voice denied he was an al-Qaida recruiter and claimed his role was a religious one aimed at encouraging all Muslims to rise up against their oppressors. He insisted he agreed to meet with bin Laden in a cave on the night of Sept. 11 out of respect for bin Laden's standing as a sheik.
"Despite knowing that he was responsible for the deaths of hundreds of Americans, you met with him to be polite, correct?" prosecutor Michael Ferrara asked on cross-examination.
"I didn't go to meet with him to bless if he had killed hundreds of Americans or not. I went to meet with him to know what he wanted," Abu Ghaith said.
Abu Ghaith's defense lawyer, Stanley Cohen, argued there was "zero evidence" that the 48-year-old former teacher knew of the conspiracies the government claimed he knew about. Citing the videos of his client, Cohen warned jurors not to let prosecutors "intimidate you and to frighten you into returning verdicts not based upon evidence, but fear."
Prosecutors used Abu Ghaith's testimony and closing arguments as an opportunity to reshow the image of the burning towers to jurors.
In his closing, Cronan used the defendant's testimony against him.
"Accept it as totally true. If you do that, he's guilty," Cronan said.


text:
Part 2: Actor/activist Mia Farrow on the continued slaughter, China's role, and what we can do to help the people of Darfur
The following Guernica program took place at PEN World Voices Festival of International Literature, on April 29, 2008, at Flourence Gould Hall in New York City. This is the second of three parts. To listen to the program in its entirety, please go to here. Runs about 90 minutes.
Dinaw Mengestu: Thank you very much, Mr. Lévy. Our next speaker this evening is Mia Farrow, who probably actually doesn't need that much of an introduction. She has become one of our greatest advocates of human rights and is also one of our greatest and best known actresses. Mia Farrow has appeared in more than 40 films and has won numerous awards. In 1997, she published a memoir, What Falls Away. Ms. Farrow is also a UNICEF Goodwill Ambassador and has worked extensively to draw attention to the plight of children. Ms. Farrow has traveled to Darfur eight times to advocate for an end to the crisis there and has published multiple op-eds in the Wall Street Journal and the LA Times. Her website miafarrow.org focuses on the Darfur crisis. Here is Mia Farrow. (applause)
Mia Farrow: Thank you, thank you very much. Thank you to Guernica. Thank you to PEN. Thank you Bernard Henri-Lévy for sharing what you have witnessed. It is impossible not to be shaken by what we hear from you. I have recently returned from my eighth journey into the Darfur region of Sudan. Incomprehensibly, more than five years have passed since the government of Sudan and its proxy killers, the Janjaweed, launched their campaign of destruction upon the non-Arab population of Darfur. Only the perpetrators dispute that hundreds of thousands of men, women, and children have been slaughtered. It is all the more appalling, as you have said, that we cannot count the dead. The UN figure remained at, hovered at, 200,000; for two or three years, no one died in Darfur. And suddenly people are saying probably half a million. Our Sudan expert has said it's in excess of half a million. But we don't know and the travesty and disrespect of that is beyond comprehension.
But also in keeping with what we know about Darfur, one of the first images that preceded this said "Never again." After the Nazi Holocaust, the world vowed never again. How obscenely disingenuous those fine words sound today. We see Sudan. It is the largest country in Africa. The Darfur region, as you see, is in the western part of Sudan, the darkened areas. Note the borders. Note the borders with Chad and the Central African Republic, because they are completely porous or nonexistent. Villages literally straddle the borders and eastern Chad is an inferno, as is the northeast corner of the Central African Republic. Many people ask why? And I'm just going to fill that in a little bit so that we don't have to cover that later.
Oil was found in the south part of Sudan, many years ago. There was a war that waged for two decades, as Mr. Lévy said, in which some two million people died. The west intervened and sponsored, eventually, the North-South Agreement which was signed in 2005. Oil revenues were to be shared and southerners were to have significant representation in the Khartoum-based government. But the Darfur region was left out of that agreement, left essentially in the dark ages, where the British had left it when they left Sudan.
In 1956, they left it and they left governance to an Arab government in Khartoum. They favored the Arabs. The people in the Darfur region are non-Arab. In 2003, some young men formed a rebel group and there was an uprising in the center of the Darfur region. They incinerated a couple of planes, they killed some government soldiers and in response to this uprising, the government of Sudan launched an all-out assault upon the civilian population of Darfur. The justification for attacking civilians in this manner was that civilians were the base of this rebel movement. The people of Darfur, they wanted hospitals, they wanted compensation, they wanted representation in the government, they wanted schools, they wanted electricity, they wanted to be included.
Of course there was an uprising. But the slaughter that followed is what was wrought… The word Darfur is now synonymous with suffering. I took these pictures over my eight trips into the region. What you see here is a typical village in Darfur in the year 2004. You see mature fruit trees, walled gardens. There would be animals, and despite the arid soil, people have sustained themselves through the centuries through agriculture. It is an agricultural community.
Same village, 2006. 80-90 percent of Darfur's villages are ashes today. The ashes of the village of Tamadjour, the village that you saw first, really is notable for the fact that it existed. No longer. I met Mr. Joseph Omar going through the still smoldering ashes of his village searching to find anything that could be of use to those members of his family who survived the attack. There was a tiny group of people huddled a few kilometers away, dazed, terrified, surrounded by their attackers. Not knowing which way to turn without food, without water. Mr. Omar returned at great peril to himself to try to salvage something, but really found almost nothing…a pot and a lid. The food was gone, the village was gone, children had been thrown into burning huts, people had been mutilated, women had been raped. Two and a half million people have been driven from villages such as the first picture you saw, into camps, such as this…
This is Kalma Camp in West Darfur. I took this in 2004 from a helicopter, and it was my first sighting of an internally displaced persons camp. If a person is in their own land, they're not a refugee. The technical term is "internally displaced person." They are displaced people and what you are seeing here is sheeting lashed to the desert floor. Not a tree, nor a blade of grass, nor scarcely a shred of hope. The lack of trees is significant because where the camps are, there are no trees and whatever shrubbery had existed would have been used to build fires. The world food program distributes sorghum. Sorghum requires more than two hours cooking on an open fire and fire requires wood.
As you can see from this camp of 90,000 people, there was no wood. This means that the women—and the population of the camps are primarily women and children—they have to leave the relative safety of the camps, and I say relative because the camps themselves are continually attacked. The camps are cauldrons of despair and rage. And people have to leave to get the firewood. As of June 2006, when I encountered a UN assessment team, the average deforestation around the camp was ten miles. Obviously considerably further today. Meaning, a woman had to travel an excess of ten miles, being exposed for twenty miles, to attacks, mutilations, abductions, rapes, by what Mr. Lévy has told you [about], Janjaweed. Literal translation: evil, or devils on horseback.
They encircle the camps and pick off women who leave the camps. This is—I couldn't capture the size of this camp—it is the largest camp in the world. It is Garetta, 175,000 (people). It is near Nialla, and because of the attacks on aid workers, there were only 7 aid workers, no doctors, no medical personnel, addressing the needs of 175,000 human beings. The getting of the firewood, I took this (photo) in 2004 when you would see donkeys in Darfur, it is the Sophie's Choice of who will get the firewood today. In this case, an older woman chose to spare her daughters the danger and horrors of (it), and in an Islamic culture, a Muslim culture where the victims of rape are held culpable. As horrific as rape is to us in our culture, it is a thousand times worse for a Muslim woman. Behind the woman you can see, it looks like an airplane, but actually it was an attack helicopter of Darfur going about the grim business of bombing the villages.
Getting the firewood. I have to say that, more often than not, I could not bring the camera to my eyes to take the photograph. My sisters in Darfur showed me their mutilations, the branding of when they were raped, the tendons sliced in their legs, so the markings of when they were raped how they had to hobble now when they went to get the firewood, breasts burned. I felt then two things. One is, I should not be taking this picture. And the overriding one is that I am a witness of these atrocities and it should not be easy to turn away. The women wanted, they asked me to tell our sisters in my country what is happening to them. I have around my neck, actually, a hijab, a necklace with a piece of the Koran. A woman named Halima gave it to me in 2004. She insisted that I have it for my protection. I, who could offer her no protection. She had been wearing it on the day her village was attacked and she had been holding her infant son who was torn from her arms and bayoneted before her eyes. Three of her five children were similarly killed on that same day and her husband, too. "Janjaweed," she said, "they cut them, and threw them into the well." And then she clasped my hands and said, "Tell people what is happening here, tell them we will all be slaughtered." And I, if my moral mandate wasn't clear by that moment, it was certainly clarified from that time on. And unfortunately, Halima's story is identical to the stories of countless women I have met on my journeys into the region. The stories of this woman when she was raped. She said she was raped by twenty to thirty men. And they put firesticks out on her body as they raped her and also they called her the worst kind of racial slurs, and said, "Now you will give birth to a light-skinned child."
The camps. The camps, after five years, you can see the sheeting handed out in 2004, has disintegrated, and people are now using the last line of defense, which is their blankets. The relentless sun, the rainy season, the sandstorms, have ripped the sheeting to nothing and it's disintegrated. And people shelter there, under the blankets. But I have to say the camps are so unsafe that humanitarian work is grinding to a halt.
Last December, Oxfam, the head of Oxfam in Sudan said, read this: "Our staff are being targeted on a daily basis. They are being shot, robbed, beaten, and abducted. The security situation is the worst since the conflict began. These are not conditions we can keep working in. Attacks on aid workers rose 150 percent in the last year. The region has become so dangerous that an unprecedented two million people are now out of humanitarian access. We don't know where they are. We don't know how they are."
UNICEF reports that in many or most of the camps, thirty to fifty percent of the camp is suffering from acute malnutrition. Acute malnutrition. This is what acute malnutrition looks like, in case you haven't seen it. Acute malnutrition. And in the face of acute malnutrition, last week the world food association announced that it had cut its food rations going into Darfur by half. Because it is too insecure to deliver by the roads, and the airdrops are unsustainably expensive. So what little people were getting has now been halved.
Saroya Adom, my friend, I see her whenever I go to the region, is twenty seven years old, and I think in her face is all of Darfur. She walked for 22 days to reach a camp on the borderland in Eastern Chad, but when the village was attacked first by bombs, then by Janjaweed, she gathered her children and tried to run and she never saw her husband again. And two of her children died on the long walk. She said she ran, and someone said there was a country called Chad. And she didn't know where it was and she kept asking people, "Do you know a country called Chad?" And eventually, she ended up in a camp but two of the children…she told me the agony of not being able to bury the children. That she could only scratch the sand to cover her children with some sand, and had to move on because the children were dying.
The attacks on villages, or the accounts of those who've survived the attacks are numbingly similar. Morning, always the morning. The morning skies fill with bombers and attack helicopters, raining bombs upon homes and families as they sleep, as they pray, as they prepare breakfast, as they are going out to the fields. Here you see children's drawings. Children gave them to me in what are called child-friendly spaces in the camps. Children are allowed to draw whatever they want and so often they draw the day that changed their lives. And they've given me these pictures and I've given them to the holocaust memorial in Washington, but I'll share some of them with you because they depict very vividly what happened to them. The houses were on fire, the bomb ships dropping bombs. This child drew her mother cooking breakfast and the men, the Janjaweed with a machine gun, shooting her. And she, the child, running. People running, being shot as they run, women, children, without discrimination. People shot, people raped. This helicopter is dropping bombs on this child's pregnant mother. You can see the fetus inside her.
This very complex picture, in the lower left hand corner, is a picture of a rape.
The people of Darfur have been and continue to be slaughtered, yes. But they are also dying and continue to be, dying in the camps of disease and hunger. Women die of humiliation and shame. They die of despair that they will never be able to return to their homes. They despair because their losses are too numerous to count, or ever reclaim. They despair because five years of terror is too long. And here you see people begging for mercy, people trying to gather their children, people hiding. Unimaginable terror.
And this woman showed me the bullet wound in her back. She had been running for her life with her child on her back, and the bullet passed through the baby, killing him. But she says the wound in her heart is the wound that causes her to weep everyday; the loss of her child. This group of people was running across the sand and I happened to encounter them a week in November in Chad, last November when fifty villages were attacked. The Arab militia, the Janjaweed, crossed over the border into Chad, and attacked the non-Arab villages in Chad. Thousands of people were killed and behind these screaming children was their burning village. People, if there was any warning, gathered what they could and carried their things on their backs and they were just, they didn't know which way to turn or where a camp was. Groups under trees with little to nothing and surrounded by their attackers. These groups you see don't even have mats to sit on and they are primarily women and children. These people in Chad were identical to what we saw in 2004 and 2003 in Darfur. We knew it would cross over into Chad, yet we did nothing and now Chadian villages are ablaze, Chadians are displaced. And those Darfurians who fled into Chad, 250,000 of them, they too are now fazed. This woman and her two children were thrown into their burning house. Her heart is now empty. They are sitting under a tree, beyond grief and and an older woman is taking care of younger children, a very familiar sight. They were not her children, she didn't know (them), but she said she would take care of them.
Grief. This was an older woman, sitting under a tree, her village was burnt, her loved ones were killed and she was weeping and I could offer her no comfort. I held her in my arms.
Janjaweed. Very dangerous players in a very dangerous terrain. Janjaweed leading an attack on a village. In the tiny town of Cosbeda, three men lay side by side, their eyes cut out by Janjaweed knives.
The tiny medical clinic, there was one doctor trying to address trying to meet the needs of perhaps a thousand people pouring out of the seven room clinic, three men. And this child stood to defend his village with a bow and arrow which was no match for a machine gun.
He died, when I came back that night, I was happy that he had died, because there was no pain medication for this child and he was in agony. The children.
I think the children speak more eloquently than I possibly could. "No food nine day," said this boy.
At the end of the day I had filled my empty water bottle with what the children were sucking from the mud, sucking from the swamp water. That was the water they were drinking, and that was my clean bottle of water. This child is one of the many child-headed households in the camps.
Her parents died and she says, she is now the mother of her little sister and she was defiant in saying that no further harm would come to her little sister, but the baby has not uttered a sound since the day their village was attacked. It is a traumatized population. This little girl, her parents were killed the day before.
A dying child, a child of hope.
Actually, this child is my screen saver, on my laptop. My personal family, we are for the most part not related by blood, but much more important, we are related by love and I tell my children, when one of us is suffering, we all suffer. And when we turn away, we are surely diminished in the most essential way. And this is our child, and is deserving of protection and in truth, I don't know if she's still alive. I took this in 2004. Even above the desperate need for water and for food; the plea for protection, from across Darfur and Eastern Chad, from every camp and village. This is what reverberates in my soul.
I don't think there can be a more visceral plea from the human heart than "protect us." What message, after five years, what message have we sent to the people of Darfur? These are the victims of our indifference; the only message we have sent is that they are completely dispensable. There is some larger game of monopoly and the people of Darfur clearly are simply expendable chips. Next month I will return to the region. People will again tell me their stories. Again I will write down every word. I will take more pictures. I will hold broken women in my arms and again I will promise them that I will indeed tell the world what is happening to them and then somehow I will leave them there in that hell, and I will come back to a largely indifferent world. What is needed now and for future genocides, I don't flinch at the word, is the will of the international community to accept its responsibility to protect those civilians imperiled by genocide, ethnic cleansing, whatever you want to call it, mass atrocities. The UN has called it "atrocities of the worst kind." A responsibility unanimously accepted by the United Nations in 2005, but with words proving to be as hollow as "Never Again."
Under intense pressure, Beijing has hired two international press firms to sanitize their image and … they did appoint an envoy to Darfur, and they did sign on to a new UN resolution last July to provide 26,000 peacekeepers.
And I cannot conclude without mentioning China. As Bernard Henri-Lévy has mentioned, genocide, Sudanese style, is expensive. It requires the purchase of bombers, attack helicopters, and a steady flow of arms and ammunitions. Some seventy percent of Chinese oil revenues, which now top 4 billion U.S. dollars a year, are used to attack the non-Arab population, the civilian population of Darfur. And the vast majority of weaponry used to attack civilians is of Chinese origin. But there is one thing that China holds more dear than its unfettered access to Sudanese oil at this moment in time. That is the successful staging of the 2008 Beijing Olympic Games. This has provided us with a window of opportunity to weigh in. Under intense international pressure, Beijing has hired two international press firms to sanitize their image and, for the first time, significantly, they did appoint an envoy to Darfur, and they did sign on to a new UN resolution last July to provide 26,000 peacekeepers to the region. But a scant 9,000 have deployed and they are placing every conceivable obstacle in the path of an effective deployment of that force. For five years, our governments have watched the slaughter in Darfur and they have failed to take action so an unprecedented phenomenon is emerging. Individuals are taking up the responsibility to protect and we see scores of U.S. congressman, European parliamentarians, Nobel Prize winners, philosophers, intellectuals, sports figures, students, ordinary people all of them, stepping up to protect this agonized population of Darfur and to urge each of governments and China to reassess its no-strings-attached support of abusive regimes, not only in Darfur, but around the world.
What can we do? Urge our governments to boycott the opening ceremonies of those Olympic games. I don't know how you feel right now, I don't care what President Bush does next year, but this year, he is representing the American people and if you feel that you don't want him at the opening propaganda, do call the White House. There is a 1-800-Genocide number set up by a representative of Genocide Intervention Network, and they'll put you right through to the White House. And as we've talked about sanctions, make sure your own money isn't in any company such as Fidelity, which is actually invested in Petro-China, which is supporting the genocide in Darfur. So make sure you have a clean account. If you go to my website under "What We Can Do" it will give you a website number, so you can check where your holdings are. I think most people don't want their own money killing innocent people. Bottom line is, if Beijing elected to act, our country and Europe, nations of the world have very little leverage over the government of Sudan, (China) has immense leverage through its business relationship with Sudan. So if Beijing elected to act, rather than talk, it could use its influence to demand that the regime call a halt to the ongoing aerial bombardments and ground attacks of civilians. And China could demand that Khartoum cease to obstruct the peacekeepers. China could refuse to sell weapons to Sudan. How can China host the Olympic games at home, while underwriting genocide in Sudan? The two, I'd say, are obscenely incongruous.
We look at Rwanda and we despair at our own inaction. When the history of this terrible episode in human destruction is finally written, will we have any less reason to despair? Our country, the U.N., all the nations of the world, failed the people of Rwanda, as we are failing the people of Darfur, and we are failing our most essential selves. Elie Wiesel wrote, I will end on this note, "The victims of the Holocaust perished, not only because of the killers, but also because of the apathy of the bystanders. What astonished us, after the torment, after the tempest, was not that so many killers killed so many victims, but that so few cared about us at all." I'd say it is a defining moment for each of us as human beings where we come down on this, when, and under what circumstances, will we act? Thank you very much.
Check back in August for Part 3, where Dinaw Mengestu asks Lévy and Farrow what makes them so sure China can make a difference, and what next if the Olympics don't yield the Chinese pressure activists have sought to end the genocide.