text:
I noticed that my network performance has gone down from 2.6.22 from [ 3] 0.0-10.0 sec 113 MBytes 95.0 Mbits/sec to [ 3] 0.0-10.0 sec 75.7 MBytes 63.3 Mbits/sec with 2.6.23-rc1 (and 2.6.23-rc8), as measured with iperf. I did a git bisect today and tracked it back to the commit where CFS was enabled ("sched: cfs core code; apply the CFS core code", commit dd41f596cda0d7d6e4a8b139ffdfabcefdd46528). I also compiled a kernel from git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel.git but things don't improve. This is on a Thecus N2100, an ARM (Intel IOP32x) based storage device with a r8169 card, SATA disks and 512 MB RAM. My config is attached. What kind of information can I supply so you can track this down? -- Martin Michlmayr http://www.cyrius.com/
as a starter, could you boot the sched-devel.git kernel, with CONFIG_SCHED_DEBUG=y and CONFIG_SCHEDSTATS=y enabled and could you run this script while the iperf test is in the middle of its testrun: http://people.redhat.com/mingo/cfs-scheduler/tools/cfs-debug-info.sh this will gather a good deal of info about the workload in question. Please send me the resulting debug file. Ingo -
Another thing: please also do the same with the vanilla v2.6.22 kernel, and send me that file too. (so that the two cases can be compared) Ingo -
I put the log files here: http://www.cyrius.com/tmp/2.6.22 http://www.cyrius.com/tmp/2.6.23-rc8-sched-devel I increased the time ipfer ran to 30 secs since your script runs for over 15 secs. I got: [ 3] 0.0-30.0 sec 331 MBytes 92.6 Mbits/sec 2.6.22 vs [ 3] 0.0-30.0 sec 222 MBytes 62.1 Mbits/sec 2.6.23-rc8-sched-devel -- Martin Michlmayr http://www.cyrius.com/ -
thanks! the test does almost no context switches: procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 0 0 462928 3280 37216 0 0 137 75 2306 83 13 38 47 2 2 0 0 462928 3280 37216 0 0 0 0 8600 54 6 94 0 0 2 0 0 462928 3280 37216 0 0 0 36 8667 55 7 93 0 0 2 0 0 462928 3280 37216 0 0 0 0 8592 53 5 95 0 0 2 0 0 462928 3280 37216 0 0 0 0 8638 52 7 93 0 0 (the 'cs' column shows 50-80 context switches per second.) so there must be some other side-effect, not raw scheduling overhead or some other direct scheduler performance problem. Ingo -
FWIW, on my box blasting localhost, I see the opposite, repeatably. root@Homer: iperf -v iperf version 2.0.2 (03 May 2005) pthreads 126.96.36.199-smp for i in `seq 1 3`; do iperf -c localhost; done >> /xx ------------------------------------------------------------ Client connecting to localhost, TCP port 5001 TCP window size: 49.2 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 21383 connected with 127.0.0.1 port 5001 [ 3] 0.0-10.1 sec 518 MBytes 432 Mbits/sec ------------------------------------------------------------ Client connecting to localhost, TCP port 5001 TCP window size: 49.2 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 21384 connected with 127.0.0.1 port 5001 [ 3] 0.0-10.0 sec 325 MBytes 273 Mbits/sec ------------------------------------------------------------ Client connecting to localhost, TCP port 5001 TCP window size: 49.2 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 21385 connected with 127.0.0.1 port 5001 [ 3] 0.0-10.0 sec 434 MBytes 363 Mbits/sec 2.6.23-rc8-smp-d for i in `seq 1 3`; do iperf -c localhost; done >> /xx ------------------------------------------------------------ Client connecting to localhost, TCP port 5001 TCP window size: 49.2 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 11650 connected with 127.0.0.1 port 5001 [ 3] 0.0-10.0 sec 2.01 GBytes 1.72 Gbits/sec ------------------------------------------------------------ Client connecting to localhost, TCP port 5001 TCP window size: 49.2 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 11651 connected with 127.0.0.1 port 5001 [ 3] 0.0-10.0 sec 2.02 GBytes 1.74 Gbits/sec ------------------------------------------------------------ Client connecting to localhost, TCP port ...
I noticed on the iperf website a patch which contains sched_yield(). http://dast.nlanr.net/Projects/Iperf2.0/patch-iperf-linux-2.6.21.txt Do you have that patch applied by any chance? If so, it might be a worth while to try it without it. -Mike -
Yes, this patch was applied. When I revert it, I get the same (high) performance with both kernels. -- Martin Michlmayr http://www.cyrius.com/ -
great! Could you try this too: echo 1 > /proc/sys/kernel/sched_compat_yield does it fix iperf performance too (with the yield patch applied to iperf)? I think the real fix would be for iperf to use blocking network IO though, or maybe to use a POSIX mutex or POSIX semaphores. Ingo -
So it's definitely not a bug in the kernel, only in iperf? (CCing Stephen Hemminger who wrote the iperf patch.) -- Martin Michlmayr http://www.cyrius.com/ -
Martin: Actually, in this case I think iperf is doing the right thing (though not the best thing) and the kernel is doing the wrong thing. It's calling 'sched_yield' to ensure that every other thread gets a chance to run before the current thread runs again. CFS is not doing that, allowing the yielding thread to hog the CPU to the exclusion of the other threads. (It can allow the yielding thread to hog the CPU, of course, just not to the exclusion of other threads.) It's still better to use some kind of rational synchronization primitive (like mutex/sempahore) so that the other threads can tell you when there's something for you to do. It's still better to use blocking network IO, so the kernel will let you know exactly when to try I/O and your dynamic priority can rise. Ingo: Can you clarify what CFS' current default sched_yield implementation is and what setting sched_compat_yield to 1 does? Which way do we get the right semantics (all threads of equal static priority are scheduled, with some possible SMP fuzziness, before this thread is scheduled again)? DS -
it's not doing the right thing at all. I had a quick look at the source code, and the reason for that weird yield usage was that there's a locking bug in iperf's "Reporter thread" abstraction and apparently instead of fixing the bug it was worked around via a horrible yield() based user-space lock. the (small) patch below fixes the iperf locking bug and removes the yield() use. There are numerous immediate benefits of this patch: - iperf uses _much_ less CPU time. On my Core2Duo test system, before the patch it used up 100% CPU time to saturate 1 gigabit of network traffic to another box. With the patch applied it now uses 9% of CPU time. - sys_sched_yield() is removed altogether - i was able to measure much higher bandwidth over localhost for example. This is the case for over-the-network measurements as well. - the results are also more consistent and more deterministic, hence more reliable as a benchmarking tool. (the reason for that is that more CPU time is spent on actually delivering packets, instead of mindlessly polling on the user-space "lock", so we actually max out the CPU, instead of relying on the random proportion the workload was able to make progress versus wasting CPU time on polling.) sched_yield() is almost always the symptom of broken locking or other bug. In that sense CFS does the right thing by exposing such bugs =B-) Ingo -------------------------> Subject: iperf: fix locking From: Ingo Molnar <email@example.com> fix iperf locking - it was burning CPU time while polling unnecessarily, instead of using the proper wait primitives. Signed-off-by: Ingo Molnar <email@example.com> --- compat/Thread.c | 3 --- src/Reporter.c | 13 +++++++++---- src/main.cpp | 2 ++ 3 files changed, 11 insertions(+), 7 deletions(-) Index: iperf-2.0.2/compat/Thread.c =================================================================== --- iperf-2.0.2.orig/compat/Thread.c +++ ...
On Wed, 26 Sep 2007 15:31:38 +0200 A similar patch has already been submitted, since BSD wouldn't work without it. -
Here is the combined fixes from iperf-users list. Begin forwarded message: Date: Thu, 30 Aug 2007 15:55:22 -0400 From: "Andrew Gallatin" <email@example.com> To: firstname.lastname@example.com Subject: [PATCH] performance fixes for non-linux Hi, I've attached a patch which gives iperf similar performance to netperf on my FreeBSD, MacOSX and Solaris hosts. It does not seem to negatively impact Linux. I only started looking at the iperf source yesterday, so I don't really expect this to be integrated as is, but a patch is worth a 1000 words :) Background: On both Solaris and FreeBSD, there are 2 things slowing iperf down: The gettimeofday timestamp around each socket read/write is terribly expensive, and the sched_yield() or usleep(0) causes iperf to take 100% of the time (system time on BSD, split user/system time on Solaris and MacOSX), which slows things down and confuses the scheduler. To address the gettimeofday() issue, I treat TCP different than UDP, and TCP tests behave as though only a single (huge) packet was sent. Rather then ending the test based on polling gettimeofday() timestamps, an interval timer / sigalarm handler is used. I had to increase the packetLen from an int to a max_size_t. To address the sched_yield/usleep issue, I put the reporter thread to sleep on a condition variable. For the TCP tests at least, there is no reason to have it running during the test and it is best to just get it out of the way rather than burning CPU in a tight loop. I've also incorporated some fixes from the FreeBSD ports collection: --- include/headers.h use a 64-bit type for max_size_t --- compat/Thread.c oldTID is not declared anywhere. Make this compile (seems needed for at least FreeBSD & MacOSX) --- src/Client.cpp BSDs can return ENOBUFS during a UDP test when the socket buffer fills. Don't exit when this happens. I've run the resulting iperf on FreeBSD, Solaris, MacOSX and Linux, and it seems to work for me. It is nice not to have a 100% ...
...Only if it were under some DEBUG option. Even if iperf is doing the wrong thing there is no explanation for such big difference in the behavior between sched_compat_yield 1 vs. 0. It seems common interfaces should work similarly and predictably on various systems, and here, if I didn't miss something, linux looks like a different kind? Regards, Jarek P. -
note that i qualified my sentence both via "In that sense" and via a smiley! So i was not suggesting that this is a general rule at all and i What you missed is that there is no such thing as "predictable yield behavior" for anything but SCHED_FIFO/RR tasks (for which tasks CFS does keep the behavior). Please read this thread on lkml for a more detailed background: CFS: some bad numbers with Java/database threading [FIXED] http://lkml.org/lkml/2007/9/19/357 http://lkml.org/lkml/2007/9/19/328 in short: the yield implementation was tied to the O(1) scheduler, so the only way to have the exact same behavior would be to have the exact same core scheduler again. If what you said was true we would not be able to change the scheduler, ever. For something as vaguely defined of an API as yield, there's just no way to have a different core scheduler and still behave the same way. So _generally_ i'd agree with you that normally we want to be bug for bug compatible, but in this specific (iperf) case there's just no point in preserving behavior that papers over this _clearly_ broken user-space app/thread locking (for which now two fixes exist already, plus a third fix is the twiddling of that sysctl). Ingo -
Actually, I've analyzed this smiley for some time but these scheduler OK, but let's forget about fixing iperf. Probably I got this wrong, but I've thought this "bad" iperf patch was tested on a few nixes and linux was the most different one. The main point is: even if there is no standard here, it should be a common interest to try to not differ too much at least. So, it's not about exactness, but 50% (63 -> 95) change in linux own 'definition' after upgrading seems to be a lot. So, IMHO, maybe some 'compatibility' test could be prepared to compare a few different ideas on this yield and some average value could be a kind of at least linux' own standard, which should be emulated within some limits by next kernels? Thanks, Jarek P. -
you repeat your point of "emulating yield", and i can only repeat my point that you should please read this: http://lkml.org/lkml/2007/9/19/357 because, once you read that, i think you'll agree with me that what you say is simply not possible in a sane way at this stage. We went through a number of yield implementations already and each will change behavior for _some_ category of apps. So right now we offer two implementations, and the default was chosen empirically to minimize the amount of complaints. (but it's not possible to eliminate them altogether, for the reasons outlined above - hence the switch.) Ingo -
Sorry, but I think you got me wrong: I didn't mean emulation of any implementation, but probably the some thing you write above: emulation of time/performance. In my opinion this should be done experimentally too, but with something more objective and constant than current "complaints counter". And the first thing could be a try to set some kind of linux internal "standard of yeld" for the future by averaging a few most popular systems in a test doing things like this iperf or preferably more. Jarek P. -
By definition, yield is essentially undefined as to the behaviour between SCHED_OTHER tasks at the same priority level (ie. all of them), because SCHED_OTHER scheduling behaviour itself is undefined. It's never going to do exactly what everybody wants, except those using it for legitimate reasons in realtime applications. -
That's why I've used words like: "not differ too much" and "within some limits" above. So, it's only about being reasonable, compared to our previous versions, and to others, if possible. This should be not impossible to additionally control (delay or accelerate) yielding tasks wrt. current load/weight/number_of_tasks etc., if we know (after testing) eg. average expedition time of such tasks with various schedulers. Of course, such tests and controlling paremeters can change for some time until the problem is explored enough, and still no aim for exactness or to please everybody. BTW, it looks like risky to criticise sched_yield too much: some people can misinterpret such discussions and stop using this at all, even where it's right. Regards, Jarek P. -
Really, i have never seen a _single_ mainstream app where the use of sched_yield() was the right choice. Fortunately, the sched_yield() API is already one of the most rarely used scheduler functionalities, so it does not really matter. [ In my experience a Linux scheduler is stabilizing pretty well when the discussion shifts to yield behavior, because that shows that everything else is pretty much fine ;-) ] But, because you assert it that it's risky to "criticise sched_yield() too much", you sure must know at least one real example where it's right to use it (and cite the line and code where it's used, with specificity)? Ingo -
It can occasionally be an optimization. You may have a case where you can do something very efficiently if a lock is not held, but you cannot afford to wait for the lock to be released. So you check the lock, if it's held, you yield and then check again. If that fails, you do it the less optimal way (for example, dispatching it to a thread that *can* afford to wait). It is also sometimes used in the implementation of spinlock-type primitives. After spinning fails, yielding is tried. I think it's also sometimes appropriate when a thread may monopolize a mutex. For example, consider a rarely-run task that cleans up some expensive structures. It may need to hold locks that are only held during this complex clean up. One example I know of is a defragmenter for a multi-threaded memory allocator, and it has to lock whole pools. When it releases these locks, it calls yield before re-acquiring them to go back to work. The idea is to "go to the back of the line" if any threads are blocking on those mutexes. There are certainly other ways to do these things, but I have seen cases where, IMO, yielding was the best solution. Doing nothing would have been Can you explain what the current sched_yield behavior *is* for CFS and what the tunable does to change it? The desired behavior is for the current thread to not be rescheduled until every thread at the same static priority as this thread has had a chance to be scheduled. Of course, it's not clear exactly what a "chance" is. The semantics with respect to threads at other static priority levels is not clear. Ditto for SMP issues. It's also not clear whether threads that yield should be rewarded or punished for doing so. DS -
These are generic statements, but i'm _really_ interested in the specifics. Real, specific code that i can look at. The typical Linux distro consists of in execess of 500 millions of lines of code, in tens of thousands of apps, so there really must be some good, valid and "right" use of sched_yield() somewhere in there, in some mainstream app, right? (because, as you might have guessed it, in the past decade of sched_yield() existence i _have_ seen my share of sched_yield() utilizing user-space code, and at the moment i'm not really impressed by those examples.) Preferably that example should show that the best quality user-space lock implementation in a given scenario is best done via sched_yield(). Actual code and numbers. (And this isnt _that_ hard. I'm not asking for a full RDBMS implementation that must run through SQL99 spec suite. This is about a simple locking primitive, or a simple pointer to an existing (user-space spinlocks are broken beyond words for anything but perhaps at a quick glance this seems broken too - but if you show the specific code i might be able to point out the breakage in detail. (One underlying problem here appears to be fairness: a quick unlock/lock sequence may starve out other threads. yield wont solve that fundamental problem either, and it will introduce random latencies into apps using sure. (and i described that flag on lkml before) The sched_yield flag does two things: - if 0 ("opportunistic mode"), then the task will reschedule to any other task that is in "bigger need for CPU time" than the currently running task, as indicated by CFS's ->wait_runtime metric. (or as indicated by the similar ->vruntime metric in sched-devel.git) - if 1 ("agressive mode"), then the task will be one-time requeued to the right end of the CFS rbtree. This means that for one instance, all other tasks will run before this task will run again - after that do you realize that this "desired behavior" you ...
Maybe, maybe not. Even if so, it would be very difficult to find. Simply grepping for sched_yield is not going to help because determining whether a User-space spinlocks are broken so spinlocks can only be implemented in kernel-space? Even if you use the kernel to schedule/unschedule the tasks, You are assuming that random latencies are necessarily bad. Random latencies Thank you. Unfortunately, neither of these does what sched_yiled is really supposed to do. Opportunistic mode does too little and agressive mode does I don't have a problem with failing to emulate the old scheduler's behavior if we can show that the new behavior has saner semantics. Unfortunately, in this case, I think CFS' semantics are pretty bad. Neither of these is what sched_yield is supposed to do. Note that I'm not saying this is a particularly big deal. And I'm not calling CFS' behavior a regression, since it's not really better or worse than the old behavior, simply different. I'm not familiar enough with CFS' internals to help much on the implementation, but there may be some simple compromise yield that might work well enough. How about simply acting as if the task used up its timeslice and scheduling the next one? (Possibly with a slight reduction in penalty or reward for not really using all the time, if possible?) DS -
firstly, there's no notion of "timeslices" in CFS. (in CFS tasks "earn" a right to the CPU, and that "right" is not sliced in the traditional sense) But we tried a conceptually similar thing: to schedule not to the end of the tree but into the next position. That too was bad for _some_ apps. CFS literally cycled through 5-6 different yield implementations in its 22 versions so far. The current flag solution was achieved in such an iterative fashion and gives an acceptable solution to all app categories that came up so far. [ and this is driven by compatibility goals - regardless of how broken we consider yield use. The ideal solution is of course to almost never use yield. Fortunately 99%+ of Linux apps follow that ideal solution ;-) ] Ingo -
http://www.koders.com/ (which has been around for a long time) actually seems to have more code. It's also a pity that so much free code is behind passwords and protected from spiders. -Andi -
From kernel/sched_fair.c: "/* * Targeted preemption latency for CPU-bound tasks: * (default: 20ms, units: nanoseconds) * * NOTE: this latency value is not the same as the concept of * 'timeslice length' - timeslices in CFS are of variable length. * (to see the precise effective timeslice length of your workload, * run vmstat and monitor the context-switches field) ..." So, no notion of something, which are(!) of variable length, and which precise effective timeslice lenght can be seen in nanoseconds? (But not timeslice!) Nevertheless, it seems, this 1% is important enough to boast a little: "( another detail: due to nanosec accounting and timeline sorting, sched_yield() support is very simple under CFS, and in fact under CFS sched_yield() behaves much better than under any other scheduler i have tested so far. )" [Documentation/sched-design-CFS.txt] Cheers, Jarek P. -
You should really read and understand the code you are arguing about :-/ In the 2.6.22 scheduler, there was a p->time_slice per task variable that could be manipulated. (Note, in 2.6.22's sched_yield() did not manipulate p->time_slice.) sysctl_sched_latency on the other hand is not something that is per task (it is global) so there is no pending timeslice to be "cleared" as it has been suggested naively. Ingo -
Maybe you could help me with better comments? IMHO, it would be enough to warn new timeslices have different meaning, or stop to use this term at all. (Btw, in -rc8-mm2 I see new sched_slice() function which But, there is this "something", very similar and very misleading, you count eg. in check_preempt_curr_fair to find if time is over, and I think this could be similar enough to what David Schwartz wanted to use in his idea, and you didn't care to explain why it's so different? Jarek P. -
i'm curious, what better do you need than the very detailed comment quoted above? Which bit of "this latency value is not the same as the concept of timeslice length" is difficult to understand? The timeslices of tasks (i.e. the time they spend on a CPU without scheduling away) is _not_ maintained directly in CFS as a per-task variable that can be "cleared", it's not the metric that drives scheduling. Yes, of course CFS too "slices up CPU time", but those slices are not the per-task wrong again. That is a function, not a variable to be cleared. (Anyway, the noise/signal ratio is getting increasingly high in this thread with no progress in sight, so i cannot guarantee any further replies - possibly others will pick up the tab and explain/discuss any other questions that might come up. Patches are welcome of course.) Ingo -
It's not about this comment alone, but this comment plus "no notion" I can't see anything about clearing. I think, this was about charging, which should change the key enough, to move a task to, maybe, a better place in a que (tree) than with current ways. Jarek P. PS: Don't you think that a nice argue with some celebrity, like Ingo Molnar himself, is by far more interesting than those dull patches? -
just a quick patch, not tested and I've not evaluated all possible implications yet. But someone might give it a try with his/(her -- are even more welcomed :-) favourite sched_yield() load. (and white space damaged) --- sched_fair-old.c 2007-10-03 12:45:17.010306000 +0200 +++ sched_fair.c 2007-10-03 12:44:46.899851000 +0200 @@ -803,7 +803,35 @@ static void yield_task_fair(struct rq *r update_curr(cfs_rq); return; + } else if (sysctl_sched_compat_yield == 2) { + unsigned long ideal_runtime, delta_exec, + delta_exec_weighted; + + __update_rq_clock(rq); + /* + * Update run-time statistics of the 'current'. + */ + update_curr(cfs_rq); + + /* + * Emulate (speed up) the effect of us being preempted + * by scheduler_tick(). + */ + ideal_runtime = sched_slice(cfs_rq, curr); + delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime; + + if (ideal_runtime > delta_exec) { + delta_exec_weighted = ideal_runtime - delta_exec; + + if (unlikely(curr->load.weight != NICE_0_LOAD)) { + delta_exec_weighted = calc_delta_fair(delta_exec_weighted, + &se->load); + } + se->vruntime += delta_exec_weighted; + } + return; } + /* * Find the rightmost entry in the rbtree: -- Best regards, Dmitry Adamushko
s/curr/se -- Best regards, Dmitry Adamushko -
Thanks very much! Alas, I'll be able to look at this and try only in the evening. Best regards, Jarek P. -
thanks Dmitry. Btw., this is quite similar to the yield_granularity patch i did originally, just less flexible. It turned out that apps want either zero granularity or "infinite" granularity, they dont actually want something inbetween. That's the two extremes that the current sysctl expresses in essence. Ingo -
On Wed, Oct 03, 2007 at 12:55:34PM +0200, Dmitry Adamushko wrote: Of course, after some evaluation by yourself and Ingo the most interesting should be Martin's Michlmayr testing, so I hope you'll Cc him too?! Jarek P. -
My current take on this: queue the current task right to the next position in the tree (this is what this patch achieves in essence) was one of the yield implementations we already tried in CFS but it didnt meet the expectations of some apps. So i can only repeat my argument: this is not something that can be "solved" in the way you imagine and your arguments just reiterate the path that CFS has already taken in the past. So please do not expect _us_ to go out and pester people. If people feel so inclined, they are of course welcome to test out various approaches. (they might as well try the original yield-granularity patch which also makes the amount of "delay" tunable, so the ideal amount of delay can be figured out. And of course they should also try the existing yield flag.) Ingo -
I'm terribly sorry! Of course, the last thing I would like is to pester anybody. I simply wasn't sure you've told about the same idea. And of course, there is no reason to go back to something checked before. Thanks, Jarek P. -
ok - i've re-read it and it indeed is somewhat confusing without additional context. I'll improve the wording. (sched-design-CFS.txt needs an update anyway) Ingo -
It still gives us a target time, so could we not simply have sched_yield put the thread completely to sleep for the given amount of time? It wholly redefines the operation, and its far more expensive (now there's a whole new timer involved) but it might emulate the expected behavior. Its hideous, but so is sched_yield in the first place, so why not? --CJD -
user-space spinlocks (in anything but SCHED_FIFO tasks) are pretty broken because they waste CPU time. (not as broken as yield, because "wasting CPU time" is a more deterministic act, but still broken) Could you cite a single example where user-space spinlocks are technically the best solution? Ingo -
i'm not really assuming anything, i gave a vague first impression of the vague example you gave (assuming that the yield was done to combat fairness problems). This is a case where the human language shows its boundaries: statements that are hard to refute with certainty because they are too vague. So i'd really suggest you show me some sample/real code - that would move this discussion to a much more productive level. but i'll attempt to weave the chain of argument one step forward (in the hope of not distorting your point in any way): _if_ the sched_yield() call in that memory allocator is done because it uses a locking primitive that is unfair (hence the memory pool lock can be starved), then the "guaranteed large latency" is caused by "guaranteed unfairness". The solution is not to insert a random latency (via a sched_yield() call) that also has a side-effect of fairness to other tasks, because this random latency introduces guaranteed unfairness for this particular task. The correct solution IMO is to make the locking primitive more fair _without_ random delays, and there are a number of good techniques for that. (they mostly center around the use of futexes) one thing that is often missed is that most of the cost of a yield() is in the system call and the context-switch - quite similar to the futex slowpath. So there's _no_ reason to not use a futexes on Linux. (yes, there might be historic/compatibility or ease-of-porting arguments but those do not really impact the fundamental argument of whether something is technically right or not.) Ingo -
sched_yield() has been around for a decade (about three times longer than futexes were around), so if it's useful, it sure should have grown some 'crown jewel' app that uses it and shows off its advantages, compared to other locking approaches, right? For example, if you asked me whether pipes are the best thing for certain apps, i could immediately show you tons of examples where they are. Same for sockets. Or RT priorities. Or nice levels. Or futexes. Or just about any other core kernel concept or API. Your notion that showing a good example of an API would be "difficult" because it's hard to determine "smart" use is not tenable i believe and does not adequately refute my pretty plain-meaning "it does not exist" assertion. If then this is one more supporting proof for the fundamental weakness of the sched_yield() API. Rarely are we able to so universally condemn an API: real-life is usually more varied and even for theoretically poorly defined APIs _some_ sort of legitimate use does grow up. APIs that are not in any real, meaningful use, despite a decade of presence are not really interesting to me personally. (especially in this case where we know exactly _why_ the API is used so rarely.) Sure we'll continue to support it in the best possible way, with the usual kernel maintainance policy: without hurting other, more commonly used APIs. That was the principle we followed in previous schedulers too. And if anyone has a patch to make sched_yield() better than it is today, i'm of course interested in it. Ingo -
But sched_yield() on Linux never did what the majority of programmers assumed it would do (give up the CPU to some runnable processes for the rest of the time-slice). Instead, it just appeared to spin in the kernel. Therefore, those who needed a sched_yield(), just used usleep(). Whether or not there is a POSIX definition of sched_yield(), there is a need for something that will give up the CPU and not busy-wait. There are many control applications where state-machines are kept in user-mode code. The code waits for an event. It shouldn't be spinning, wasting CPU time, when the kernel can be doing file and network I/O with the wasted CPU cycles. So, just because sched_yield() doesn't work as expected, is not the reason to get rid of it. Cheers, Dick Johnson Penguin : Linux version 220.127.116.11 on an i686 machine (5592.59 BogoMips). My book : http://www.AbominableFirebug.com/ _ **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to email@example.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. -
These "control applications" would be real-time processes, for which (AIUI) sched_yield() behavior is completely well-defined and implemented as such by Linux. The question here is how useful the call is for SCHED_OTHER (non-real-time) processes, for which it has no well-defined semantics. -Doug -
On Tue, 2007-10-02 at 08:46 +0200, Ingo Molnar wrote: Do you still have intentions to add a directed yield API? I remember seeing it in the earlier CFS patches. - Eric -
That is a *terrible* disgusting way to use yield. Better options: (1) inotify/dnotify (2) create a "foo.lock" file and put the mutex in that It works better than doing the wait-loop from the start? What evidence do you provide to support this assertion? Specifically, in the first case you tell the kernel "I'm waiting for something but I don't know what it is or how long it will take"; while in the second case you tell the kernel "I'm waiting for something that will take exactly X milliseconds, even though I don't know what it is. If you really want something similar to the old behavior then just replace the "sched_yield()" call with a proper sleep for the estimated time We weren't looking for "actual uses", especially not in binary-only apps. What we are looking for is optimal uses of sched_yield(); ones where that is the best alternative. This... certainly isn't. Cheers, Kyle Moffett --
Sure, tie yourself to a Linux-specific mechanism that may or may not work Right, tie yourself to process-shared mutexes which historically weren't available on Linux. That's much better than an option that's been stable for How is that better? There is literally no improvement, since the first check The evidence is that more than half the time, this avoids the sleep. That means it has zero cost, since the yield is no heavier than a sleep would be, The problem is that if the estimate is too short, pre-emption will result in a huge performance drop. If the estimate is too long, there will be some Your standards for "optimal" are totally unrealistic. In his case, it was optimal. Using platform-specific optimizations would have meant more development and test time for minimal benefit. Sleeping first would have had some performance cost and no benefit. In his case, sched_yield was optimal. Really. DS --
On Mon, 1 Oct 2007 09:49:35 -0700 at this point it's "use a futex" instead; once you're doing system calls you might as well use the right one for what you're trying to achieve. -
There are two answers to this. One is that you sometimes are writing POSIX code and Linux-specific optimizations don't change the fact that you still need a portable implementation. The other answer is that futexes don't change anything in this case. In fact, in the last time I hit this, the lock was a futex on Linux. Nevertheless, that doesn't change the basic issue. The lock is locked, you cannot afford to wait for it, but not getting the lock is expensive. The solution is to yield and check the lock again. If it's still held, you dispatch to another thread, but many times, yielding can avoid that. A futex doesn't change the fact that sometimes you can't afford to block on a lock but nevertheless would save significant effort if you were able to acquire it. Odds are the thread that holds it is about to release it anyway. That is, you need something in-between "non-blocking trylock, fail easily" and "blocking lock, do not fail", but you'd rather make forward progress without the lock than actually block/sleep. DS -
On Mon, 1 Oct 2007 15:17:52 -0700 yielding IS blocking. Just with indeterminate fuzzyness added to it.... -
Yielding is sort of blocking, but the difference is that yielding will not idle the CPU while blocking might. Yielding is sometimes preferable to blocking in a case where the thread knows it can make forward progress even if it doesn't get the resource. (As in the examples I explained.) DS -
On Mon, 1 Oct 2007 15:44:09 -0700 not really; SOMEONE will make progress, the one holding the lock. Granted, he can be on some other cpu, but at that point all yielding that's also what trylock is for... as well as spinaphores... (you can argue that futexes should be more intelligent and do spinaphore stuff etc... and I can buy that, lets improve them in the kernel by any means. But userspace yield() isn't the answer. A yield_to() would have been a ton better (which would return immediately if the thing you want to yield to is running already somethere), a blind "yield" isn't, since it doesn't say what you want to yield to. Note: The answer to "what to yield to" isn't "everything that might want to run"; we tried that way back when the 2.6.early scheduler was designed and that turns out to not be what people calling yield expected.. (it made their things even slower than they thought). So they want "yield to" semantics, without telling the kernel what they want to yield to, and complain if the kernel second-guesses wrongly.... not a good api. -
So now I not only have to come up with an example where sched_yield is the best practical choice, I have to come up with one where sched_yield is the best conceivable choice? Didn't we start out by agreeing these are very rare cases? Why are we designing new APIs for them (Arjan) and why do we care about their performance (Ingo)? These are *rare* cases. It is a waste of time to optimize them. In this case, nobody cares about fairness to the service thread. It is a cleanup task that probably runs every few minutes. It could be delayed for minutes and nobody would care. What they do care about is the impact of the service thread on the threads doing real work. You two challenged me to present any legitimate use case for sched_yield. I see now that was not a legitimate challenge and you two were determined to shoot down any response no matter how reasonable on the grounds that there is some way to do it better, no matter how complex, impractical, or unjustified by the real-world problem. I think if a pthread_mutex had a 'yield to others blocking on this mutex' kind of a 'go to the back of the line' option, that would cover the majority of cases where sched_yield is your best choice currently. Unfortunately, POSIX gave us yield. Note that I think we all agree that any program whose performance relies on quirks of sched_yield (such as the examples that have been cited as CFS 'regressions') are broken horribly. None of the cases I am suggesting use sched_yield as anything more than a minor optimization. DS -
On 02-10-2007 17:37, David Schwartz wrote: Probably we'll start to care after first comparison tests done by our rivals. It should be a piece of cake for them to find the "right" code... Regards, Jarek P. -
How about: Check the lock. If it is held, sleep for an interval that is shorter than acceptable waiting time. If it is still held, sleep for twice as long. Loop until you get the lock and do the work, or until you you reach the limit for how much you can wait at this point and dispatch to a thread instead. This approach should be portable, don't wake up too often, and don't waste the CPU. (And it won't go idle either, whoever holds the lock will be running.) Helge Hafting -
This used to be true, and still is if you want to be portable. But the point of futexes was precisely to attack this use case: whereas sched_yield() says "I'm waiting for something, but I won't tell you what" the futex ops tells the kernel what you're waiting for. While the time to do a futex op is slightly slower than sched_yield(), futexes win in so many cases that we haven't found a benchmark where yield wins. Yield-lose cases include: 1) There are other unrelated process that yield() ends up queueing behind. 2) The process you're waiting for doesn't conveniently sleep as soon as it releases the lock, so you wait for longer than intended, 3) You race between the yield and the lock being dropped. In summary: spin N times & futex seems optimal. The value of N depends on the number of CPUs in the machine and other factors, but N=1 has shown itself pretty reasonable. Hope that helps, Rusty. -
It's fine to criticise sched_yield(). I agree that new apps should generally be written to use proper completion mechanisms or to wait for specific events. However, there are closed-source and/or frozen-source apps where it's not practical to rewrite or rebuild the app. Does it make sense to break the behaviour of all of these? Chris -
See the background and answers to that in: http://lkml.org/lkml/2007/9/19/357 http://lkml.org/lkml/2007/9/19/328 there's plenty of recourse possible to all possible kinds of apps. Tune the sysctl flag in one direction or another, depending on which behavior the app is expecting. Ingo -
Yeah, I read those threads. It seems like the fundamental source of the disconnect is that the tasks used to be sorted by priority (thus making it easy to bump a yielding task to the end of that priority level) while now they're organized by time (making it harder to do anything priority-based). Do I have that right? Chris -
not really - the old yield implementation in essence gave the task a time hit too, because we rotated through tasks based on timeslices. But the old one requeued yield-ing tasks to the 'active array', and the decision whether a task is in the active or in the expired array was a totally stohastic, load-dependent thing. As a result, certain tasks, under certain workloads saw a "stronger" yield, other tasks saw a "weaker" yield. (The reason for that implementation was simple: yield was (and is) unimportant and it was implemented in the most straightforward way that caused no overhead anywhere else in the scheduler.) ( and to keep perspective it's also important to correct the subject line here: it's not about "network slowdown" - nothing in networking slowed down in any way - it was that iperf used yield in a horrible way. I changed the subject line to reflect that. ) Ingo -
Very clever move! And I see some people have catched this... Since sched_yeld() is a very general purpose tool, it can be easily replaced by others, of course, just like probably half of all system calls. And such things are done often in a code during optimization. But, IMHO, the main value of sched_yield() is it's easy to use and very readable way to mark some place. Sometimes even test if such idea is reasonable at all... Otherwise, many such possibilities could easily stay forgotten forever. But you are right, the value of this call shouldn't be exaggerated, and my proposal was an overkill. Anyway, it seems, there could be imagined something better than current ways of doing this. They look like two extremes and something in between and not too complicated should suffice. Currently, I wonder if simply charging (with a key recalculated) such a task for all the time it could've used isn't one of such methods. It seems, it's functionally analogous with going to the end of que of tasks with the same priority according to the old sched. Regards, Jarek P. -
On Tue, Oct 02, 2007 at 11:03:46AM +0200, Jarek Poplawski wrote: Only now I've read I repeat the idea of David Schwartz (and probably not only him) from a nearby thread, sorry. But, I still try to find what was wrong with it? Jarek P. -
On Mon, Oct 01, 2007 at 10:43:56AM +0200, Jarek Poplawski wrote: No new theory - it's only my reverse Polish translation. Should be: "etc., if we know (after testing) eg. average dispatch time of such". Sorry, Jarek P. -
Martin, could you check the iperf patch below instead of the yield patch - does it solve the iperf performance problem equally well, and does CPU utilization drop for you too? Ingo --------------------------> Subject: iperf: fix locking From: Ingo Molnar <email@example.com> fix iperf locking - it was burning CPU time while polling unnecessarily, instead of using the proper wait primitives. Signed-off-by: Ingo Molnar <firstname.lastname@example.com> --- compat/Thread.c | 3 --- src/Reporter.c | 13 +++++++++---- src/main.cpp | 2 ++ 3 files changed, 11 insertions(+), 7 deletions(-) Index: iperf-2.0.2/compat/Thread.c =================================================================== --- iperf-2.0.2.orig/compat/Thread.c +++ iperf-2.0.2/compat/Thread.c @@ -405,9 +405,6 @@ int thread_numuserthreads( void ) { void thread_rest ( void ) { #if defined( HAVE_THREAD ) #if defined( HAVE_POSIX_THREAD ) - // TODO add checks for sched_yield or pthread_yield and call that - // if available - usleep( 0 ); #else // Win32 SwitchToThread( ); #endif Index: iperf-2.0.2/src/Reporter.c =================================================================== --- iperf-2.0.2.orig/src/Reporter.c +++ iperf-2.0.2/src/Reporter.c @@ -111,6 +111,7 @@ report_statistics multiple_reports[kRepo char buffer[64]; // Buffer for printing ReportHeader *ReportRoot = NULL; extern Condition ReportCond; +extern Condition ReportDoneCond; int reporter_process_report ( ReportHeader *report ); void process_report ( ReportHeader *report ); int reporter_handle_packet( ReportHeader *report ); @@ -338,7 +339,7 @@ void ReportPacket( ReportHeader* agent, // item while ( index == 0 ) { Condition_Signal( &ReportCond ); - thread_rest(); + Condition_Wait( &ReportDoneCond ); index = agent->reporterindex; } agent->agentindex = 0; @@ -346,7 +347,7 @@ void ReportPacket( ...
Yes, it works and CPU goes down too. -- Martin Michlmayr http://www.cyrius.com/ -
i'm curious by how much does CPU go down, and what's the output of iperf? (does it saturate full 100mbit network bandwidth) Ingo -
I get about 94-95 Mbits/sec and CPU drops from 99% to about 82% (this is with a 600 MHz ARM CPU). -- Martin Michlmayr http://www.cyrius.com/ -


text:
- Text Size:
- ASmall Text
- AMedium Text
- ALarge Text
Police are searching for a rapist after a woman was attacked on her way to work.
News 5's Jackie Congedo spoke with a witness who helped the victim.
Investigators said the victim was walking down a West End alley to downtown when a man attacked her and raped her in a stairwell.
A man who happened to be near where the assault happened said he heard screaming and went to investigate.
Mickey Perry said he saw a woman with no clothes on running around the streets so he went to help.
"So I automatically grabbed a blanket and I just went to wrapping her up and called the police and for a quick second even tried to catch the guy," Perry said. "He was right there getting ready to jump that fences climb up the wall there somewhere he was gone."
Perry said the victim told him she was on her way to work and had her headphones on when the man attacked her.
"She said, 'Yeah, I shouldn't have had my headphones on because I didn't hear anything,' before she felt somebody behind her it was too late," Perry said.
He said the victim told him the man hit her every time she tried to scream.
Neighbors said they are taking their safety seriously after the brazen assault.

subset: commoncrawl


text:
A collection of news and information related to Zach Braddock published by this site and its partners.
Displaying items 1-12 of 12
» View aberdeennews.com items only
Scoreboard -- April 2, 2012
TV SPORTS Soccer--Women's National Teams, exhibition, United States vs. Brazil, 6 a.m. (ESPN2); UEFA Champions League, Marseille at Bayern Munich, 1:30 p.m. (FXSP) NHL Hockey--Pittsburgh Penguins at Boston Bruins, 6:30 p.m. (NBCSN); Minnesota Wild...Tags: Golden State Warriors, Sloane Stephens, Adam Moore, Chicago White Sox, Baseball
TV SPORTS USGA Golf-U.S. Open Championship, 9 a.m., 4 p.m. (ESPN), 2 p.m. (NBC) Cycling-Tour de Suisse, same-day tape, 6 p.m. (VERSUS) Major League Baseball-San Diego Padres at Minnesota Twins, 7 p.m. (FXSP) Boxing-Junior Middleweights, Grady...Tags: Peter Lonard, Baltimore Orioles, Heath Slocum, ESPN2 (tv network), Jin Park
2011 Major League Baseball Salaries
NEW YORK (AP) - The 2011 salaries for the 844 major league baseball players on opening day rosters and disabled lists. Figures were obtained by The Associated Press from management and player sources and include salaries and pro-rated shares of signing...Tags: David Murphy, Jose Arredondo, Rich Harden, Alex Avila, Omar Beltre
Orioles make first round of cuts
The Orioles made their first cuts of the spring Thursday, sending five players to minor league camp, including two of the organization's most promising young pitchers. The club sent out left-hander Eduardo Rodriguez and right-hander Mike Wright,...Tags: Jim Johnson, Baltimore Orioles, Baseball Statistics, Baseball, Pedro Strop
Nate McLouth ready to let it rip as Grapefruit League games begin
The Baltimore SunSARASOTA, Fla. — As the Orioles open their Grapefruit League schedule Saturday with a home game against the Minnesota Twins at Ed Smith Stadium, hitters will take varying approaches at the plate. Some will take more pitches than usual to get a...Tags: Baltimore Orioles, Baseball, Baseball Statistics, Grapefruit League, Buck Showalter
Manny Machado returns to camp after missing Monday's workout
The Baltimore SunOrioles third baseman Manny Machado returned to camp Tuesday morning after missing Monday's workout to have additional testing for his physical. The 20-year-old planned to be a full go for Tuesday's workout, which included a variety of drills,...Tags: Baseball, World Baseball Classic, Luis Ayala, Sports, Buck Showalter
Luis Ayala says he'll announce decision on World Baseball Classic on Friday
The Baltimore SunSARASOTA, Fla. — Orioles reliever Luis Ayala, who is listed on Mexico's provisional roster for next month's World Baseball Classic, said Thursday that he has yet to decide whether he will pitch in the event. The 35-year-old right-...Tags: Jim Johnson, Baseball, Trayvon Robinson, Pedro Strop, Adam Jones (baseball)
Thursday's Orioles spring training news and notes
The Baltimore SunSARASOTA, Fla. -- The rain is currently falling here at the Ed Smith Stadium complex, but the Orioles were able to complete their second workout for pitchers and catchers before the skies opened. The Orioles continued with pitchers fielding practice...Tags: Spring Training, Baltimore Orioles, Trayvon Robinson, Baseball, Kevin Gausman
Wednesday Orioles news and notes from spring training
The Baltimore SunSARASOTA, Fla. -- It's still three days until the Orioles' first full-squad workout, but nearly the entire team has already reported to the Ed Smith complex. The pitchers and catchers had their first workout today. Every returning veteran position...Tags: Baltimore Orioles, Baseball, Travis Ishikawa, Ray Flaherty, Trayvon Robinson
O's notes: WBC rosters, Brian Roberts' health, Duquette seeks an arm
The Baltimore SunOrioles right-hander Miguel Gonzalez, whose Cinderella 2012 season ended with an invitation to pitch for Mexico in the World Baseball Classic, has decided he won't participate in the March tournament. Gonzalez, 28, rose from being a minor league...Tags: Baltimore Orioles, Trayvon Robinson, Baseball, Adam Jones (baseball), Buck Showalter
Orioles sign 1B Travis Ishikawa, two LHPs, to minor league deals
The Baltimore SunThe Orioles continued to add first base depth on Wednesday, signing Travis Ishikawa, as well as left-handed relievers Daniel Schlereth and Zach Braddock, to minor league contracts with invitations to major league spring training. Ishikawa, 29,...Tags: Detroit Tigers, Baltimore Orioles, Baseball, Mark Reynolds, Travis Ishikawa
More on new Orioles signees Ishikawa, Schlereth and Braddock
The Baltimore SunThe Orioles signed three players to minor league deals Tuesday -- first baseman Travis Ishikawa and left-handed relievers Daniel Schlereth and Zach Braddock -- not only to add to the organization's depth, but executive vice president Dan Duquette...Tags: Detroit Tigers, Milwaukee Brewers, Nate McLouth, Spring Training, Baltimore Orioles
Apr 3, 2012
|Story| Aberdeen News
Jun 17, 2011
|Story| Aberdeen News
Apr 1, 2011
|Story| Aberdeen News
Mar 7, 2013
|Story| Baltimore Sun
Feb 22, 2013
|Story| Baltimore Sun
Feb 19, 2013
|Story| Baltimore Sun
Feb 14, 2013
|Story| Baltimore Sun
Feb 14, 2013
|Story| Baltimore Sun
Feb 13, 2013
|Story| Baltimore Sun
Jan 17, 2013
|Story| Baltimore Sun
Dec 19, 2012
|Story| Baltimore Sun
Dec 20, 2012
|Story| Baltimore Sun
Original site for Zach Braddock topic gallery.


text:
Winter in the Oetztal
Skiing in the Oetztal
Snowboarding in the Oetztal
outdoor partner
Cross country skiing in the Oetztal
Winter Hiking in the Oetztal
Tobogganing in the Oetztal
Iceclimbing in the Oetztal
Ski Mountaineering in the Oetztal
Carriage Ride
Ice Skating
BIG3 Ötztal Karte
Winter holidays in the Oetztal: activities
The Oetztal offers uncountable leisure activities for your skiing and winter vacation. The area is famous for its winter sports activities. Nevertheless the most popular one is without any doubt skiing. Everybody in the Oetztal loves this sport and a lot of people travel hundred of miles to get the same feeling, which locals get every single day! Skiing in the Oetztal is like paradise! But also Snowboarding is unbelivle in the Oetztal.
Therefor the Oetztal has great skiing resort, where numerous peoeple spend their holidays every year. The skiing resorts in Soelden, Obergurgl and Hochgurgl, Oetz, Vent, Niederthai, Gries and Kuehtai hold perfect conditions for skiing, ski touring, free skiing and snowboarding. Around the villages you can also finds many traditional huts and alpine inns.
There are special tracks with wayside inns partly offering food and drink from own produce for tobogganing excursions in the Oetztal and even lighted tracks for your toboggan run in the dark.
The Oetztal is a great area for cross country skiing in Austria, Tirol. The tracks around the valley are groomed regularly.
Get in contact with the nature and feel freedom. Winter Hiking in the Oetztal with or even without snow shoes in between of snowcovered trees. The atmosphere is amazing.
New trendsports in the Oetztal are - without any doubt - iceclimbing and ski mountaineering. In this sports you feel free and your dreams come true.
But the Oetztal is also well known for its off-piste program. Wether you love wellness or party; the Oetztal has so many offers after doing sport. There are also a lot of great Events during the Winter season; for example every year the best skiers of the entire world come and start their season. Everybody heard something of the FIS World Cup Ski Opening in Sölden. Be there.


text:
The Toyota Corolla has been the most popular compact car in the U.S. for more years than we can count. But this year's model is the oldest model in a category that has seen... June 6, 2013 by John Voelcker 10
The Toyota Matrix will pass silently into the ether next year, just as the new Corolla hatchback takes its place in 2014. That will neither come as a shock nor much of a... May 3, 2013 by Antony Ingram 6
Ford sold over one million examples of its Focus last year. That alone is impressive, but there's deeper meaning to the high sales statistic--for the first time, the Focus... April 9, 2013 by Antony Ingram 4
The Toyota Corolla remains one of the best selling cars in America, despite its dated design and a powertrain that is, frankly, approaching obsolescence. Its 1.8-liter four... January 15, 2013 by Kurt Ernst
If the 2013 Detroit Auto Show has been rather light on truly green vehicles, concepts previewing the replacement of bread and butter models have been much more exciting. One... January 14, 2013 by Antony Ingram 1


text:
Skip to stories
Your City, Your News. NYC's 24-hour newschannel on the web.
Time Warner Cable. The power of you ™
You are not signed in | Sign in here | Help
Search terms:
You're viewing an enhanced version of NY1.com , now with expanded video content.
You're viewing a lite version of NY1.com
Time Warner Cable customers: Sign in with your TWC ID for video access.
Get my TWC ID. | Get TWC service. | Read the FAQ.
By: Dan Eaton
Ingredients:4 cups of diced apples3 cups all-purpose flour 1 packed cup light brown sugar1 tsp kosher salt (or 1/2 tsp table salt)1 tsp baking soda 1 tsp ground cinnamon 1 cup unsweetened applesauce3 large eggs1 tsp vanilla1/2 cup apple cider
Procedure:Preheat the oven to 350 degrees and measure out all of the dry and wet ingredients before peeling and dicing the apples. There should be 4 cups of 1/2-inch diced apple total.
Use a large mixing bowl to combine the flour, light brown sugar, salt, baking soda and ground cinnamon, mix that up and break the brown sugar up a bit.
Then add the unsweetened applesauce, eggs, vanilla and apple cider. Mix that together, fold in the diced apples, transfer it to a buttered 9 x 13-inch baking dish and place it onto the center rack of the preheated oven.
That is going to take just about 40 minutes to bake. Spin the baking dish halfway around halfway though.
Use a toothpick to check it for doneness.


text:
Sports in pictures
Mar 10, 2013
Images from sports events of the day
Latest slideshows in this section
More slideshows in these sections
Powered by Webworks dat
CSK made it to the final of IPL-VI with a 48-run win over Mumbai Indians in the first qualifier, in New Delhi on Tuesday. Photos: S. Subramanium
The Pepsi Indian Premier League saw Sunrisers Hyderabad snatching the last-available play-offs berth with a tense five—wicket win over Kolkata Knight Riders, in Hyderabad on Sunday. Photos: PTI


text:
Anne Klein 10-9988
- View the Video Description for this product! (Please note that the color shown in the video may no longer be available.)
- Don a luxe look with this beautiful timepiece!
- Metal case with stainless steel caseback.
- Tortoise-patterned resin bracelet with fold-over clasp closure.
- Three-hand analog display with quartz movement.
- Dial includes gold-tone hands and crystal hour markers.
- Crystal-embellished bezel.
- Water resistant 30 meters/100 feet.
- Please Note: At this time, we cannot ship this item to Alaska, Hawaii, Guam, any international locations, P.O. Boxes, or military addresses (APO/FPO).
- Measurements:
- Case Height: 35 mm
- Case Width: 35 mm
- Case Depth: 10 mm
- Band Width: 3⁄4 in
- Band Circumference/Length: 8 1⁄2 in
- Weight: 2 oz
Find something wrong in this description? Help us fix it! Report An Error
This item is currently unavailable, but here are some similar products
No Similar Items Available
We can't currently find any similar items for the 10-9988 by Anne Klein. Sorry!
Interested in new Anne Klein products?
For more than forty years, Anne Klein® has been synonymous with American style, creating clothing and accessories that are immediately recognizable for their sophistication, wearability, and most of all, their relevance to modern women's lives. The Anne Klein brand continues to do more than simply meet woman's fashion needs; it provides women with a form of self-expression and empowerment.
The AK Anne Klein® collection features contemporary clothing, shoes, and accessories from one of the most recognized and trend-setting designers in the world today. AK Anne Klein offers a versatile collection of women's shoes in an extensive range of sizes, colors, and styles. AK Anne Klein watches exude the same confident, modern appeal as the footwear. Work-appropriate, clean and sophisticated, AK Anne Klein shoes and watches are made for the woman who wants timeless style. AK Anne Klein understands today's fashion trends, offering fashionable, functional watches, women's boots, women's sandals, and every silhouette in between.
With such an incredible range of styles, the AK Anne Klein women's footwear and watch lines are sure to provide the perfect complement for whatever the occasion and setting. Choose tailored sling-backs for the office or sexy knee-high boots for a night out on the town, and match it with a stylishly designed AK Anne Klein watch, and you've got a look that's timelessly elegant. The AK Anne Klein customer is all about transcending trends and fads. She embraces the brand's modern sophistication in its design approach.
Knowing that today's modern woman has a keen taste for travel, Anne Klein has incorporated their signature styles into functional and durable luggage and travel bags. From smaller upright rolling cases which are perfect for quick weekend trips that fit into overhead cabins to larger expandable bags that provide room for those must-have items you are sure to find style and class in them all. Anne Klein even has the perfect day bag that fits all of your essentials items into a trendsetting tote. Now you can travel in style and have your bags look just as sophisticated as your wardrobe.
With Anne Klein there's no compromising style, comfort, or function. AK Anne Klein women's shoes and watches and Anne Klein luggage are simply a perfect fit.


text:
Safety Officials Distribute Stalking Prevention Kits
By: Hayley Mason
Updated: January 22, 2013
WINCHESTER, VA- It doesn't matter the location or time of day, anyone can become a victim of stalking.
"The dangers are with an individual who becomes obsessed with someone else," says the KC Bohrer an Investigator with the Frederick County Sheriff's Office. "It doesn't discontinue, oftentimes they intimidate them. They create this atmosphere of fear where they feel like they can't go anywhere or do anything. Sometimes it escalates to the point where there is also violence and assaults."
Local police departments and the Laurel Center, a shelter for abused women, are working to equip victims with stalking prevention kits to be better prepared when danger is lurking.
"We are hoping that we can prevent some of the incidences by stopping them sooner," says Bohrer. "If they don't stop, we're hoping that we can gain the evidence or the information needed to prosecute the parties and make a safer society for the victims."
Although the agencies will not disclose what's in the safety kits, they say there are informational resources and evidence collection materials like the latex gloves and other resources for victims to protect themselves. They do concede, there are no weapons involved.
The Laurel Center handled 30 stalking cases in 2012 and says there were more that went unreported or sent to other police departments.
"Stalking is a bit hard to prove what's really going on," Melissa Nilsen with the Laurel Center. "That's when you really have to get into documenting everything. Saving text messages. voicemail's, gifts that you get. Everything just save everything."
Police say most victims are women, but anyone can be targeted.
"Any time of the day. Any time of the year. It could be any one of us could become a victim," says Nilsen. "There really is no discrimination."
They hope to bring greater awareness and put an end to the fear of being followed.
The Frederick County deputies say the idea for stalking prevention kits in Virginia came from a local West Virginia police station. Other departments in Maryland have similar prevention kits.


text:
This year�s Heroes and Prospects features a 150 Base card set, Game-Used Memorabilia cards & Authentic Autograph cards inserted 1:8 packs.
There are also 5 different Non-Memorabilia Insert sets inserted 1:6 packs.
The He Shoots-He Scores Redemption program is back! Collectors can redeem 200 points for limited Game-Used Memorabilia cards only available for this program.
More Info
Eligible for Free Shipping Promotion Details
National Pride, Net Prospects, Prospect Trio, Quad Patch, Complete Jersey are some of the other game-used memorabilia inserts. Let's not forget the Heores Memorabilia insert set and the Heroes and Prospects insert set. Something for everyone.
This year there are 100 cards in the Non-Memorabilia insert set to collector this year. Calder Cup Winner, Memorial Cup Winner, Class of 2011 (Redemption for game-used memorabilia cards of first round draft picks), 75th Anniversary of the AHL and 100 Years of Card Collecting are the different insert sets.


text:
- Adventure (2)
- Arcade-Style (4)
- Dress-Up (1)
- Matching & Sorting (1)
- Numbers & Shapes (1)
- Puzzles (2)
- Sports (1)
Widget has a bunch of robots to build. But they're all broken down into their different parts. Will you build one?
Wow wow! Watch Wubbzy every day on Nick Jr.
It's hammerin' time with Widget! She needs your child's help to build a great new robot! Choose from ten robot models to build and then match all the different robot parts to create the robots Widget uses in her workshop! This easy game is a mouse clicking and dragging game. To choose the robot model, simply click on it with the mouse. Then click on the different parts and move them to the right location on the robot.
Parent Tip: This is a great game for bolstering your child's mouse skills, since it's all about clicking and dragging the robot pieces.
What a beautiful garden Walden has! Help him grow more flowers with Wubbzy
Kids search for the missing microphones so the Wubb Girlz can start the show!
Navigate the undersea world and explore the Lost City of Wubblantis
It's a race to see how fast the new TurboCar 2000 can go!
Kids help Wubbzy stop the egg-ceptional problem with Widget's Robo-Cluck 3,000!
Wow, wow, everybody! It's a great day to play
Whoa! Wubbzy needs help catching the rings that are falling from the sky!
My, my, my, perfecto! Pick out a top-notch outfit for Walden to wear
Ready for action? Check out all the games for UmiFriends to play!
Have a Tickety-tastic adventure before chime time with Tommy and Tallulah!
Come on in and explore all the rooms in Dora's house
Love is in the air, but Dora and Boots need to find that missing Valentine
Kids can play six games in one with Todee, Muno, and the rest of the Gabba gang
Take off with the team! Speed by obstacles & robots in a race to the finish line
Go on a tour of Dora's house and find surprises through every door!
Pablo's things fell out of his ship and he needs your preschooler's help!
Kids race to help the Fresh Beats stay cool with this ice cold game
Kids help Dora be a GREAT big sister by playing with the twins!
"All aboard!" says Dora. "We're going to the carnival in the big city!"
Hop aboard the train and uncover clues in all three cities!
Help the Guppies' playful pup burst bubbles to win a prize!
Coloring without crayons? You betcha.
Master match-making skills with Princess Kai-lan!
Preschoolers puzzle out obstacles with the help of adventurous ants and Kai-lan
Enter Diego�s world of shapes, colors & animals in this awesome Arctic adventure
Kids use colors and patterns to paint new shells for the hermit crabs!
It's dance party time! Click on DJ Hoho's colorful notes to get it going!
Meet animals big and small and help Dora take care of them all!
Get ready to shout out BINGO!
All Aboard the Animal Rescue train!
The phone is ringing. There's an animal in trouble--call the Wonder Pets!
Help Dora and Swiper save Friendship Day!
Save Dora's space friends on the way to the Purple Planet party!
Give Oobi a hand and try to remember which object is missing
This is serious! A baby triceratops needs your help.
What ever will Blue and Magenta wear? You decide!
Puzzling, isn't it? How will Diego get to the party?
Kids join Diego on an adventure of prehistoric proportions


text:
With the ability to handle the biggest of big blocks rear-wheel-drive a reasonable power-to-weight ratio and minimalist interiors pickup trucks are the new muscle... More
Back in the day if you wanted a muscle car but needed a truck for work you could pick and choose your options and... More
S#5541954 FORD F-100 PICK UP;SOLID STRONG 6 CYL THREE SPEED ON THE TREE;NEW BRAKES; JUST TUNED;CARB GONE THROUGH; RUNS AND DRIVES GREAT;NEW BATTERY; LOTS... More
Vehicle to be offered for Auction sale June 20th-22nd at Russo and Steele's inaugural Newport Beach, California Auction. Please contact us for more information. ... More
"Vehicle to be offered for Auction sale June 20th-22nd at Russo and Steele's inaugural Newport Beach, California Auction. Please contact us for more information. Powered... More
1979 Ford F100 Styleside w/ Ranger Package - WINNER Truck of the Year Spring 2013 F-100 Supernationals All Ford Truck Show. Never thought that... More
Just in! Call or visit our website for details.... More
The pristine example of Fords F100 truck history offered here is a stunning example that has undergone a body-off restoration and has been driven... More
1967 FORD F100 FLARESIDE NUMBERS MATCHING 352 C.I. ENGINE ALL ORIGINAL SHEET METAL (NO PATCH PANELS) 5 SPEED 4X4 61,203 MILES CALIFORNIA TRUCK W/... More
Just in! Call or visit our website for more information.... More
Engine:V-8Trans:AutoExt Color:Red and PrimerInt Color: Brown- 351 Windsor V-8 engine balanced and blue printed- Automatic transmission- 3200 stall converter- Short wheelbase- Rear tubbed for... More
- 352 CI big block - 4 barrel Edelbrock carburator - Headers - Dual exhaust - Power brakes - Power steering - Straight body... More
1955 Ford F100 in Excellent ConditionStorm Gray Metallic Exterior Cream Vinyl Interior V8 Engine Newly Overhauled All New Glass BedlinerOriginal AxlesOriginal EngineOriginal TransmissionVery Well... More
For the truck-makers at Ford Motor Company the 1940's can best be described as a roller-coaster ride. It would celebrate a number of high... More
1974 FORD F-100 SHORT-BED STYLESIDE FINISHED IN FACTORY TWO-TONE BROWN AND YELLOW WITH BROWN INTERIOR! BELIEVED TO BE 41,711 ORIGINAL MILES! SOUTHERN TRUCK! FACTORY AIR CONDITIONING! 302-CUBIC-INCH V-8! AUTOMATIC TRANSMISSION! POWER... More


text:
Sign in to search Gartner Research |
Targeted, objective insight and actionable advice to fulfill your critical business needs efficiently and cost effectively.
Can you analyze real-time data for time-critical applications, or add value to data before storing it? Do you use complex-event processing (CEP)?
Free ResearchThe conventional save-and-process paradigm is not fast enough. CEP distills incoming data about events into "complex" events. Complex events summarize the information value of this data to provide insights into the current conditions in your company and its environment.
"Big culture" technologies offer the promise of massive long-term competitive advantage, but they also require a massive cultural change to achieve it.
Free ResearchIf you position and implement big culture technologies properly, the new advantage gained can grow because the cultural change itself forms a barrier to entry.
This enables your business to learn and improve its position, while rivals struggle with cultural change. Because it introduces the ability to leverage a type of technology that functions throughout an entire organization, the dynamics of this provide more time for your organization to change.
Microsoft will end its support for Windows XP by April 2014. As the company begins its huge marketing campaign around Windows 8, many in your business will wonder if you should skip the Windows 7 migration and go straight to Windows 8.
There are some valid reasons to consider skipping Windows 7 in favor of Windows 8. This may all sound logical, but have you stopped to really analyze the risks and benefits to your organization?
© 2013 Gartner, Inc. and/or its Affiliates. All Rights Reserved.


text:
» Kitchen & Housewares
» Food Prep & Storage
» Buffet Servers
» Broil King Family Size Triple Warming Cabinet
MLBCSLP - Broil King Family Size Triple Warming Cabinet
List Price: $493.63
plus FREE
UPS / Fedex Shipping
UPS / Fedex Shipping
In Stock: Usually Ships in 1 - 2 Business Days
Accessories & Similar Items:
« Previous
Next »
Broil King Family Size Triple Warming Cabinet
On top of that, it includes stainless chafing pans. clear polycarbonate lids, steam pan holder fits over top warming surface, stainless top (pan holder & pans) removable. Keep your food deliciously warm until you and your family are ready to eat!
Usually Ships in 1 - 2 Business Days
This item ships UPS or FedEx ground. Delivery times related to these ship methods are usually between 2 and 5 business days once the product leaves the warehouse. We will email you tracking information once the product leaves our warehouse. UPS or FedEx ground deliveries do not require a signature and may be left at the ship to location. All deliveries will occur Monday through Friday. Order must be fully processed by 12pm CST to be eligible for "Guaranteed Same Day Shipping." Orders processed after that time may ship out the following business day.UPS or FedEx ground deliveries do not include a guaranteed delivery date. Should you require a specific delivery date or expedited shipping please add the item to the shopping cart and view the shipping options drop down box. If the product is eligible for expedited shipping the shipping options and pricing will be listed. Please contact our customer service department with any questions related to shipping. (800) 297-6076, M-F, 8am to 5pm CST.
People Also Bought...
Purchase Details:
MLBCSLP - Broil King Family Size Triple Warming Cabinet
Sale Price: $448.75


text:
Lock Haven University Official Release
LHU announces September 25 Admissions Open House
LOCK HAVEN, Pa. - Lock Haven University will host an Admissions Open House on Saturday, September 25, with registration starting at 9:00 a.m. in the Student Recreation Center. Events for the day include a presentation on the LHU Honors Program; a question and answer session with current LHU students; discussions about student life, financial aid and admissions; a chance for students and their families to meet with faculty representatives to discuss specifics regarding their major of interest; and a walking tour of the LHU campus. For a detailed schedule or for more information, visit www.lhup.edu/admissions/visit, or call or (570) 484-2011.


text:
No Expedia Cancellation Fee
Book, change, or cancel almost any hotel without paying an Expedia fee.
4.5 out of 5 (221 reviews)
4.5 out of 5 (278 reviews)
4.3 out of 5 (48 reviews)
3.5 out of 5 (447 reviews)
4.7 out of 5 (192 reviews)
4.2 out of 5 (26 reviews)
3.9 out of 5 (182 reviews)
4.1 out of 5 (41 reviews)
4.2 out of 5 (148 reviews)
4.4 out of 5 (166 reviews)
Book, change, or cancel almost any hotel without paying an Expedia fee.
London's 21st-century waterside business district, Canary Wharf is best known for its cutting-edge architecture, including the 50-storey obelisk-shaped skyscraper, One Canada Square. Get there by the Docklands Light Railway, with elevated tracks giving wonderful views into a world of glass and steel. By contrast, historic Greenwich, home to the National Maritime Museum, is just across the Thames. A foot tunnel links the two.


text:
GALLIPOLIS — A Gallia County man who was recently granted judicial release into the SEPTA (Southeastern Probation Treatment Alternative) program, was sent back to prison late last week serve out the remainder of his term.
Nathan S. Halley, 27, Crown City, was granted judicial release during a hearing on April 5 in the Common Pleas Court of Gallia County after he had served approximately 26 months of incarceration and was recently sent back to prison after probation violations were filed in this case.
Halley had been sentenced to serve a four-year prison term in 2010 after he pleaded guilty to fleeing and eluding and breaking and entering two separate cases.
The defendant had been charged with breaking and entering after he broke into a parts garage owned by Clifford's Auto Parts, 1710 Call Road, Ohio Township, on October 14, 2009. A guilty plea to this charge on February 8, 2010, resulted in a 12-month prison term.
In his second case, Halley also pleaded guilty on February 8, 2010, to fleeing and eluding following an incident that occurred on December 3, 2009.
As reported after the incident, an officer with the Gallipolis Police Department attempted to stop Halley who was the driver of a vehicle traveling near the intersection of Second Avenue and Pine Street in Gallipolis on December 3, 2009. Halley, who had a warrant on indictment for his arrest in an unrelated common pleas case, began accelerating as he reached State Street, ran the red light located at Fourth Avenue and State Street, crossed the center line and crashed, head-on into another vehicle traveling in the opposite direction.
The vehicle struck by Halley was totalled and the two adult occupants were taken to Holzer Medical Center with minor injuries, while a third occupant, a young child, was reportedly not injured in the crash.
After the collision, Halley reportedly tried to escape but was quickly apprehended by police.
A guilty plea to fleeing and eluding in this case resulted in a three-year prison term, as well as a six-year suspension of his operator's license, effective December 3, 2009.
During sentencing in February 2010, the prison terms handed down in the common pleas court in these two separate cases were ordered to be served consecutively for a total of four years.
On April 5, 2012, Halley was granted judicial release as per the underlying plea agreement signed by the defendant and the prosecuting attorney's office.
The plea agreement stipulated that the prosecution would recommend Halley's judicial release into the SEPTA program in Nelsonville after he had served two years of his four year sentence. Additionally, the court imposed a two-year community control sanction in which the defendant was ordered to report twice monthly to his probation officer after his release from SEPTA.
On September 4, probation violations were filed in this case and alleged that Halley submitted a urine sample that was not his own to officials at SEPTA and subsequently admitted to taking Percocet while at work. Halley was terminated on August 30 from the program due to his admitted use of illegal drugs.
The defendant was later arraigned on these violations, and, on November 8, Halley was sent back to prison to serve the remainder of his four-year prison term in the Ohio Department of Rehabilitation and Correction.
According to the journal entry filed with the clerk of courts office, prior to his release, Halley had served a total of two years, three months and eleven days of his four-year prison sentence.


text:
Mobile Email MyUNIverse eLearning A-Z Index Calendar Directory Contact Employment Visit UNI
Customer Appreciation Week
Submitted by Anonymous on Mon, 02/25/2013 - 2:00amDaily events and specials will be featured at Prexy's, Chats and Essentials (Maucker Union), 23rd Street Market (Commons) and Biscotti's (Shull Hall) during Customer Appreciation Week.
Salsa Dance Hosted by The Wesley Foundation
Submitted by Anonymous on Fri, 10/05/2012 - 7:00pmCelebrate Hispanic Heritage Month by joining us for our next Salsa Dance: hosted by The Wesley Foundation. We are also hosting a fundraiser for UNI Dance Marathon. Cost: $1 Donation; dress: semi-formal. Everyone is welcome, Contact Henry Williams at email@example.com if you would like to volunteer time or if you have any other questions. Funded in part by NSIG.
Panther Village Dedication
Submitted by Anonymous on Thu, 09/06/2012 - 3:00pmPanther Village is the new home to 204 students in 1-, 2- and 4-person apartments. The campus community and others will gather to dedicate the newest UNI residence community. The celebration will be 3-5 p.m at Panther Village with a program at 3:15 and tours after the program. Panther Village hallmarks include meticulous attention to quality, sustainability, comfort and convenience.
Piazza's Poolside Picnic Party
Submitted by Anonymous on Wed, 03/28/2012 - 11:15amThe Piazza Poolside Picnic Party features tons of great picnic food and good company! Menu items include: hamburgers, brats, pickle wraps, BBQ pork sandwiches, fruit pizza, dirt and worm pudding, ants on a log, and much, much more!
ZUMBA Valentine's Day Party
Submitted by Anonymous on Thu, 02/09/2012 - 8:30pmMove to the beat and be inspired by Zumba! Enjoy this free opportunity to discover why the Zumba dance fitness program is the lastest craze. Wear tennis shoes and comfortable clothes. Be ready to move to the rhythm of slasa, merengue, cumbia and reggaeton. Bring your friends, family, and co-workers to this event.
Pop-Tarts Pop It Forward Celebration
Submitted by Anonymous on Fri, 09/23/2011 - 12:00pmStudents, faculty and staff are invited to enjoy Pop-Tarts pastries ice cream creations thanks to UNI freshman, Karelyn Phol, who entered Kellogg's online Pop-Tarts Pop It Forward contest. Outdoor campus festival will feature entertainment and games.


text: The biggest problem I had with POD books was getting bookstores to carry them! I think I was only able to get one or two stores to actually order the books from the publisher. The rest took about a half-dozen on consignment, I forget the percentage. And I had to pay around $10 each from the publisher for each copy of my book...so basically, if I wanted to break even, I'd have to price the books sold on consignment at over $20 just to break even--and these are trade paperbacks. I saw that no matter how many books I sold, I'd never be able to make any money off them selling them in bookstores. I could only make money selling them to random people I met...I had a website up at one point but I only sold a couple of books through that, too. Finally I just said "screw it" and am now trying to go the traditional route.


text:
Thanks Keith!
Thanks Keith
Thank you Keith!
Thank you Mr. Hart! I come from China. I am very pleased to communicate with anthropologists around the world.
Thank you Keith!
thanks for the welcome.
please consider adding an 'n' to my name so as to read "ronnie"
otherwise cheers!
i will next time thank you
Thank you for welcoming me on the OAC, Keith!
I am curious to discuss and engage with others!
Best regards
Thank you Keith!
Itś good to have a welcome on board.
Saudações Fraternas
Keith,I thank you so much for welcoming on board.Looking forward for a fruitful engagement.
Atah Pine
Keith, thanks for the advice. If you are in any way interested in the project we'd love to have your input, and feel free to follow us on twitter @worldwise_tweet too.
Hope we can keep in touch!
© 2013 Created by Keith Hart. Powered by


text:
TV5 Play of the Week
Brewer Scouts Honors Veterans
Central Maine Power Company Sued by Contractor for $43M
Coalition Delivers 3,000 Petitions Urging Lawmakers To Expand Medicaid
LePage Hopes To Eliminate Income Tax In Maine If Elected To Second Term
Three Indicted in Reported Aroostook County Meth Lab Bust
University of Maine Tuition Rates to be Set
Record-Breaking Weekend for Relay for Life of Penobscot
Central High School Principal on Paid Administrative Leave
Veterans Share Legacy of Bangor Middle School
Ellsworth Park Challenge Grant
Add your Comments
Add your comments to the discussion. By submitting a comment, you agree to the terms of the terms of use and are 18 years of age or older.
Fields marked with a * are required.
Want a personal picture next to your comment? Sign up for a free Gravatar or post with your facebook account.
Facebook Comments
Breaking News from CBS
Video: Searching continues after massive Okla. tornado
A giant tornado tore through the middle of Moore, Okla., killing at least 51 people, 20 of them children. Charlie Rose, Norah O'Donnell and Anna Werner report.
Video: More severe weather expected from Texas to Mich.
CBS News weather consultant David Bernard takes a look at the severe weather expected today in the Plains and Midwest.
FBI: Elite agents died fast-roping from helicopter that had "difficulties" during training exercise
Elite hostage rescue agents were fast-roping from helicopter onto ship in Va. Beach when aircraft experienced "difficulties"
Video: Tornado rescue workers fear dozens of kids trapped in rubble
Following the massive 200 mph tornado that hit the town of Moore, Okla., rescue workers focused much of their attention on Plaza Towers Elementary School, where the twister carved a path right through the middle of the building. CBS News' Bigad Shaban reports.
Video: Caught on tape: Twister near Newcastle, Okla.
Video: Menacing tornado seen in distance.


text:
Register Now | |
My Points | |
My Games |
I have been clamoring for a P.C. version of The BEST CCG ever made G.O.T and I just found a suprise over here at Cyanides forums, they are making a GOT based PC game. http://www.cyanide-studio.com/?rub=node&nid=809
These guys are champs and just got done with the best Board game conversion I have seen this side of Catan on the Xbox 360 a PC version of Games Workshops BLOOD BOWL and its 95% faithful to the table top. check it out at http://www.bloodbowl-game.com/
In the past when I emailed asking for a PC game version of GOT I was always told sorry we don't have the manpower or expertise in Game Design here is a marriage made in heaven possibly Team with Cyanide and release your Board game and CCG to someone who already ones the rights to a PC game set in the Song of Ice and Fire universe!
Anyhow a guy can dream EH?
P.S. if Casey is still around Tell him Jeremy a guy who beat him once and then was trounced before reaching the winning table at the First Gencon for G.O.T said Hello.
Page 1 of 1 (1 messages) | 1 |
Hey Jeremy,
This is Matt from corecomm...nice to see you're still lurking around GoT stuff. You're the one who first played this game with me in Lansing. Hit me up on aim sometime :P
They took my floaties and pushed me in the pool!
Page 1 of 1 (1 messages) | 1 |


text:
Are you an enthusiastic support of Australia? Want to show your pride? These Australian iTAG Sun Visors are not made in China, but are actually made in Australia!
The iTAG Sun Visor is made from opaque (solid, the driver cannot see through it) film. If you prefer the "see through" film, then select the iTAG See-Thru Sun Visor.
This iTAG is made from commercial grade vision 3M film and is laminated to protect it and extend its life. Being generous in size, measuring 1315mm wide, the iTAG Sun Visor will fit most vehicles and is ideally suited for low curved windscreens. It is simple to put onto your car, much like putting on a bumper sticker.
Specially designed for windscreens, it meets the traffic regulations as required under Australian and New Zealand legislation, if installed correctly. For front windscreens, it needs to be applied within the anti-glare tint area. For rear windscreens, it is not to be applied over brakelights or on rear windscreens less than 600mm high. If either of these conditions are applicable to you, then we recommend you purchase the iTAG See-Thru Sun Visor, which fully complies with the traffic regulations for these instances.
Warranty and Postage Details


text:
Hover over image to zoom
David Lerner
Lightweight 9" Rise Basic Leggings
- Estimated Delivery
- to
- Return Policy
- Returnable within 21 days for Gilt Credit.
- Jersey legging
- Elasticized waist, panel seaming, tonal top stitching
- 27 inch inseam; 9 inch rise; Measurements were taken from a size S
- Model's height is 5 feet 11 inches; bust 34 inches; waist 23 inches; hips 34 inches
Brand: David Lerner
Material: 90% nylon and 10% spandex shell
Origin: United States
David Lerner
NYC-based clothing designer David Lerner creates fashion-forward women's basics inspired by contemporary streetwear and distinguished by edgy details. Hook-and-eye closures, semi-sheer chiffon inset panels, necklines trimmed with silk in contrasting colors, and elegant draping turn Lerner's slinky dresses and tops into statement pieces perfect for dinner dates or nights out with the girls. For a casual and colorful look, pair one of Lerner's button-down tees or mini dresses with his solid-color knit leggings, available in eye-catching colors like turquoise and poppy orange. Launched in 2008, David Lerner's collection has won a following among celebrities such as Nicky Hilton and Megan Fox.


text:
The two studios one a video production and photographic studio will open on Monaghan Road; the other a state-of-the-art post-production facility which will open in Marina Commercial Park in Cork.
The announcements follow a seminar earlier this week dedicated to promoting production and investment into the region, which was held at the Clarion Hotel in Cork City on Monday.
Studio 51-08 will open its new visual media prodcution facility next month.
The second studio, in Marina Park, is Half-Light Audio Post-Production Studio. It will cater for film, television, animation and gaming and has been opened by composer Conor Barron. It is the first state-of-the-art post-production facility to open in Munster, according to Barron and Cork Screen Commissioner Niall Mahoney.
Half-Light Audio will operate from a 500ft sq purpose built studio, with surrounding mix room, recording studio and vocal booth facilities.
The Cork Screen Commission and the Southern Screen Professionals co-hosted the film investment seminar in Cork yesterday, which saw Minister for Arts, Heritage and the Gaeltacht Jimmy Deenihan address a crowd of business people looking to invest in the Cork film and television industry.
The aim of the seminar was to explain how the Governments Section 481 tax incentive works for private investors.
Niall Mahoney, the new Cork Screen Commissioner, says it is vital that the business community understands the process of the tax incentive in order to invest in Irish film.
He said: There are key facilities, skilled people here [In Cork], but what we need is the business community and individuals to come in on whats a very low-risk investment scheme under the Government, to help assist the whole of Ireland.
The key facilities referred to by Mahoney come in the shape of the newly-founded Cork Screen Commission, described as a one-stop shop for all your film needs in Cork City and County, and the Southern Screen Professionals, which aims to attract media investment and job creation to the south. Both organisations provide crew and locations databases for the Cork and the south of Ireland.
In light of the seminar, a number of Irish and international production companies are currently in talks with Niall Mahoney to work on productions in Cork and the south of Ireland. While no deals have been signed on the dotted line just yet, Niall says the fact that he and the SSP are building plans for the bottom up makes the production news all the more vital.
Contact Us | Advertise | Copyright | Terms & Conditions | Security & Privacy | RSS Feed | Twitter


text:
Staying here at Mondo was a very enjoyable experience. The rooms are large and comfortable with pretty views (but the rooms themselves have no balconies, a pity!). As mentioned, any parties are over early so the nights are quiet and you have the house to yourselves (and other B&B guests). Take a glass of wine onto the patio to sit... More
- Reservation Options:
- TripAdvisor is proud to partner with Booking.com and Priceline so you can book your Villa Nel Mondo Bed & Breakfast reservations with confidence. We help millions of travellers each month to find the perfect hotel for both holiday and business trips, always with the best discounts and special offers.


text:
New eBook from @AudienceDevSpec availible on LuLu in ePub format £1.89 + VAT or from the iTunes book store as a PDF £1.49
The How of Audience Development for the Arts
by Shoshana Danoff Fanizza
Loading feed
I follow a very simple cyclical structure when thinking about my events.
Plan - Prepare & Promote - Deliver - Reflect - Report
If you run multiple events you probably have overlaps in the cycle entering in to a perpetual motion of event planning which tends to lead to event fatigue when you reach the delivery phase. With the right digital tools, services and platforms at the 'prepare & promote' phase, the right media capture and creative process during the 'delivery' phase (the event itself) you can set yourself up for a rewarding 'Reflect' and 'Report' phase. Keep it simple I always say.
The nature of the event will have it's unique complexities and scale but a simple core is a great foundation.
This set of digital tools assist the Prep and Promote phase of your event.
PlanCast - www.plancast.com - Share your event with Twitter, Facebook and Email connections
Lanyrd - www.lanyrd.com - Collate all your event resources, speakers profiles, hashtags, event timetable
Eventbrite - www.eventbrite.com - Sell tickets and collect valuable audience information
ISSUU - www.issuu.com - create interactive page turning brochures from PDF's for your website
NOTE: I can gradually add more resources if they are useful. I curate several networks of this nature and I can't post to all of them. I do tend to favour the ones who talk back and engage in conversation. Some of you have questions, some of you have knowledge to share, In my experience an online network is only as good as the members who participate.
Tags: audience, development, media, social, toolkit, tools
Hi Caren Jane Lyon,
A bit of a late reaction overhere, but I've just found your piece.
I was wondering if you've ever heard of www.planspot.com ?
It is an event marketing platform to run event campaings through Social Media, Press and Media Channels.
I think it could be added to this list as well :)
Hi Reinoud,
Never to late to join an active forum topic. Thank you for your input. I hadn't come across you before now but with the multitude of platforms around I'm always delighted to have them placed under my nose to have a look at. The ones included above are tried and tested by me. I've signed up and put PlanSpot through it's paces. Great little introductory video. Very interested in the integrated media partners feature. Could most certainly prove useful to Audiences Europe members and to other arts and culture based organisation I work with. Welcome to the network. Be great to follow your progress so feel free to post any case studies to the network. I have an event I want to try it on. It may make it on the list with a review too.
Hi Caron Jane Lyon,
Thanks for the warm welcome to this forum topic.
www.planspot.com isnt live yet, but we are working around the clock to launch it quite soon. It will be great and indeed definitely useful for a lot of Audience Europe member.
The great thing is, is that it will suit big and small "organizers".
A grandma with a pie baking workshop could work with planspot.com, and a big dance event organizers as well. (The business model is also tailored for this)
I will keep you (and the readers) up to date about planspot.com
It is very nice to see you may like to review it as well.
We expect a lot of feedback the coming period, and take this very seriously!
Thank you for your response.
Reinoud Tjallema
Peter Bary asked me to post a link to the ETM GHENT Group here on the network in order to use it's resources when compiling the ToolKits moving forward. All of the groups on the network will be getting some attention in the revamp of the network.
New Audiences New Technology session slideshows are here
I am considering creating some sector specific groups Arts, Media, Film, Heritage, Tourism for example.
Suggestions at the recent Culture in Motion conference has lead to the thinking about scheduling a series of short 30 min online discussions. Timings for these would be early morning 8am and early evening 8pm.
What do you think. Please share your insights and case studies.
CultuurNet also have an audience segmentation toolkit illustrated in this slideshow. It was presented at the Rotterdam ETM event.
© 2013 Created by Rich Hadley. Powered by


text:
Government announces decision on 2013 - 2016 spending limits
The Government has on 4 April 2012 announced its decision on the spending limits for central government finances in 2013 – 2016. The decision will be submitted to Parliament as a Government report. The decision is based on the on-budget expenditure limits adopted in October 2011 for the 2012 - 2105 electoral term.
The spending limits decision is informed by the Ministry of Finance's cyclical outlook, which is published on the same date. The outlook takes account of the measures adopted in connection with the Government's spending limits discussions on 22 March 2012. Some of the revenue and expenditure projections have been revised since then to reflect updated economic forecasts.
The spending limits decision for 2013 - 2016 includes a set of new adjustment measures aimed at reducing the central government debt to GDP ratio. The annual net effect of the permanent adjustment measures comes to around EUR 2.8 billion from 2016 onwards.
The measures adopted by the Government will reduce central government net expenditure by around EUR 1.2 billion at 2015 levels; this is the net effect of savings and additional costs. Tax increases and tax reductions will increase central government revenue by a net total of around EUR 1.2 billion at 2015 levels. Changes to earned income taxes and VATrates will have the greatest effects of all tax base changes. Cost savings will result from cuts in central government transfers to local government and the suspension of index-linked increases to child allowances, central government funding for universities, Armed Forces acquisitions of supplies and materials and central government transfers to the administrative branch under the Ministry of Education and Culture.
In 2013 - 2016 on-budget expenditure will increase nominally by an annual average of around 1%. During the same period real expenditure will decrease by an average of 1% a year.
It is estimated that over the 2013 - 2106 planning period, on-budget ordinary revenue will show an annual average increase of 4.4%. Tax revenue growth is forecast to come in slightly higher at about 4.9%. With the slowdown of economic growth and tax base growth towards the end of the budget planning period, tax revenue growth is also set to slow.
Over the planning period central government debt will increase from around EUR 94 billion in 2013 to around EUR 105 billion in 2016. The rate of debt accumulation will be clearly slower than in the past few years. As a result of tax policy and cost-cutting decisions it is anticipated that the increase in the central government debt to GDP ratio will slow and begin slightly to fall in 2016. In 2016 the debt to GDP ratio will be around 45%.
Inquiries: Mr Juha Majanen, Ministerial Adviser, tel. 358 9 160 33105
The 2013-2016 spending limits decision will be published in English later.


text:
I'm Kristin. I completely adore Taylor Swift. I love Country music, fashion, hopeless romantics; like myself, fairytales, sundresses, high-waisted anything, Kate Spade, antiques/vintage, NJ, the South, Mini Coopers, Gossip Girl, Tangled, pick-up lines, holding hands, flats, sandals, cowboy boots, the beach, gummy bears, my Pandora bracelet, warm weather bike rides on my pink beach cruiser with my friends, John Deere, frozen Cokes, iced coffee, NYC, nice people. & lastly my favorite thing, LOVE.
Estar asi»>


text: I just want to create a place in which everyone regardless of size, shape, weight, color, what have you, can be celebrated for exactly who they are without the fear of being judged or not being accepted. I want this blog to represent everyone around the world. This is a blog for real people with real bodies rather they're fat, skinny, or somewhere in between.