text:
- Code Commit - http://www.codecommit.com/blog -
Implementing Persistent Vectors in Scala
Posted By Daniel Spiewak On August 26, 2008 @ 12:00 am In Scala | 31 Comments
Oh yeah, we're really getting into Digg-friendly titles now, aren't we?
The topic of persistent vectors is one of those odd backwaters of functional programming that few dare to approach. The basic idea behind it all is to try to devise an immutable data structure which has the performance characteristics of a mutable vector. What this means for practical application is that you shouldn't have to deal with O(n) efficiency on random access like you do with
List(s). Instead, accessing arbitrary indexes should be constant time (O(1)), as should computing its length. Additionally, modifying an arbitrary index should be reasonably efficient – as close to constant-time as possible.
Of course, the word "modifying" is a trifle inaccurate as it implies a mutable data structure. One of the primary qualifications for a purely functional vector is that it is completely immutable. Any changes to the vector result in the creation of a new vector, rather than modifying the old. Basically, it's an immutable data structure just like any other, but one which retains the brutal efficiency of its mutable counterpart.
Unfortunately, this turns out to be a very tough nut to crack. A number of researchers have attempted different strategies for solving the problem, none of which have been entirely successful. Rich Hickey, the creator of Clojure [1], has a brilliant presentation [2] that essentially describes the solution I have chosen. For the impatient, the good stuff starts at about 36:00 and lasts for about ten minutes. I'll elaborate on the problems with functional vectors a bit more in a second, but first a bit of motivational propaganda…
There is a single principle which should be drilled into skulls of all programmers everywhere: mutable data structures are bad news. Don't get me wrong, I love
ArrayList as much as the Java addict, but such structures cause serious problems, particularly where concurrency is concerned. We can consider the trivial example where two threads are attempting to populate an array simultaneously:
private String[] names = new String[6]; private int index = 0; public static void main(String[] args) { Thread thread1 = new Thread() { public void run() { names[index++] = "Daniel"; names[index++] = "Chris"; names[index++] = "Joseph"; } }; Thread thread2 = new Thread() { public void run() { names[index++] = "Renee"; names[index++] = "Bethany"; names[index++] = "Grace"; } }; thread1.start(); thread2.start(); thread1.join(); thread2.join(); for (String name : names) { System.out.println(name); } }
What does this snippet print? I don't know. It's actually indeterminate. Now we can guess that on most machines the result will be essentially interleaved between the two threads, but there is no way to guarantee this. Part of the reason for this is the fact that arrays are mutable. As such, they enable (and indeed, encourage) certain patterns which are highly destructive when employed asynchronously.
However, concurrency is not even the only motivation for immutable data structures. Consider the following example:
List<String> names = ... for (String name : names) { names.add(name.toUpperCase()); }
I'm sure all of us have done something like this, most likely by accident. The result is (of course) a
ConcurrentModificationException caused by the fact that we are attempting to add to a
List while we are iterating over its contents. I know that the first time I was faced with this error message I became extremely confused. After all, no threads are being employed, so why is this a problem?
Iterators are extremely dependent on the internal state of their data structure. Anyone who has ever implemented an iterator for a linked list or (even better) a tree will attest to this fact. This means that generally speaking, there is no way for an iterator to guarantee correctness if that structure is changing out from underneath it (so to speak). Things may be fine in a linear structure like a list, but as soon as you get into anything non-linear like a tree or a hash table it becomes difficult to even define what the "correct" behavior should be. Think about it; should the iterator backtrack to hit the missing elements? Should this backtracking include elements which have already been consumed? What if the order changes dramatically and pre-consumed elements are now ahead of the current index? There are a whole host of problems associated with iterating over mutable data structures, and so rather than vainly attempt to solve these issues in a sane and consistent manner, JDK collections simply throw an exception.
All of this becomes moot once you start using immutable data structures. There is no way to modify a structure while iterating over it because there is no way to modify the structure at all! Concurrency is not an issue because without any mutable state to require locking, every thread can operate simultaneously on the structure. Not only is it thread safe, but it is unsynchronized and thread safe. Immutable data structures retain all of the asynchronous throughput of non-locking implementations without any of the race conditions and non-determinacy which usually results.
At this point, the question you must be asking yourself is: "So if the data structure is immutable, what good is it?" The answer is "for reading". Data structures spend most of their lives being read and traversed by other code. Immutable data structures can be read in exactly the same fashion as mutable ones. The trick of course is constructing that data structure in the first place. After all, if the data structure is completely immutable, where does it come from? A simple example from a prior article is sufficient to demonstrate both aspects:
def toSet[T](list: List[T]): Set[T] = list match { case hd :: tail => hd + toSet(tail) case Nil => Set[T]() }
This is neither the most concise nor the most efficient way to accomplish this task. The only purpose served by this example is to illustrate that it is very possible to build up immutable data structures without undue syntactic overhead. You'll notice that every time we want to "change" a data structure – either removing from the list or adding to the set – we use a function call and either pass or return the modified structure. In essence, the state is kept entirely on the stack, with each new version of the data structure in question becoming the "changed" version from the previous operation.
This idiom is actually quite powerful and can be applied to even more esoteric (and less uniformly iterative) operations. As long as you are willing to let execution jump from one function to the next, it becomes extremely natural to deal with such immutability. In fact, you start to think of immutable data structures as if they were in fact mutable, simply due to the fact that you are idiomatically "modifying" them at each step. Note that this pattern of modifying data between functions is critical to actor-based programming and any seriously concurrent application design.
For the sake of argument, let's assume that my pitiful arguments have convinced you to lay aside your heathen mutating ways and follow the path of functional enlightenment. Let's also assume that you're consumed with the desire to create an application which tracks the status of an arbitrary number of buttons. These buttons may be pressed in any order regardless of what other buttons are already pressed. Following the path of immutability and making use of the patron saint of persistent data structures (
List), you might come up with the following solution:
class ButtonStrip private (buttons: List[Boolean]) { def this(num: Int) = { this((0 until num).foldLeft(List[Boolean]()) { (list, i) => false :: list }) } def status(index: Int) = buttons(index) def push(index: Int) = modify(index, true) def unpush(index: Int) = modify(index, false) /** * Modify buttons list and return a new ButtonStrip with the results. */ private def modify(index: Int, status: Boolean) = { val (_, back) = (buttons :\ (buttons.length - 1, List[Boolean]())) { (tuple, button) => val (i, total) = tuple (if (i == index) status else button) :: total } new ButtonStrip(back) } }
This is a horrible mess of barely-idiomatic functional code. It's difficult to read and nearly impossible to maintain; but it's purely immutable! This is not how you want your code to look. In fact, this is an excellent example of what David MacIver would call "bad functional code [3]".
Perhaps even worse than the readability (or lack thereof) is the inefficiency of this code. It's terribly slow for just about any sort of operation. Granted, we can imagine this only being used with a list of buttons of limited length, but it's the principle of the thing. The fact is that we are relying on a number of operations which are extremely inefficient with lists, most prominently
length and
apply() (accessing an arbitrary index). Not only that, but we're recreating the entire list every time we change the status of a single button, something which is bad for any number of reasons.
What we really need here is a random-access structure, something which allows us to access and "change" any index with some degree of efficiency. Likely the most intuitive thing to do here would be to just use a good ol' array of
Boolean(s) and make a new copy of this array any time we need to change something. Unfortunately, this is almost as bad as our copying the list every time. Normally, when you use an immutable data structure, modifications do not require copying large amounts of data. Our
toSet example from above uses almost zero data copying under the surface, due to the way that
Set and
List are implemented.
Set and
List are persistent data structures. This doesn't mean that they live on a filesystem. Rather, the term "persistent" refers to the fact that each instance of the collection may share significant structure with another instance. For example, prepending an element onto an immutable list yields a new list which consists of the new element and a tail which is precisely the original list. Thus, each list contains its predecessor (if you will) within itself.
List is an example of a fully persistent data structure; not everything can be so efficient.
Set and
Map for example are usually implemented as some sort of tree structure, and so insertions require some data copying (specifically, the parent nodes). However, this copying is minimized by the nature of the structure. This notion of persistence in the data structure works precisely because these structures are immutable. If you could change an element in a persistent data structure it would likely result in the modification of that same element in totally disparate instances of that structure across the entire runtime (not a pleasant outcome).
List is persistent, arrays are not. Even if we treat arrays as being completely immutable, the overhead of copying a potentially huge array on each write operation is rather daunting. What we need is some sort of data structure with the properties of an array (random access, arbitrary modification) with the persistent properties of a list. As I said before, this turns out to be a very difficult problem.
One solution to this problem which provides a compromise between these two worlds is that of a partitioned trie [4] (pronounced "try" by all that is sane and holy). In essence, a partitioned trie is a tree of vectors with a very high branching factor (the number of children per node). Each vector is itself a tree of vectors and so on. Note that these are not not like the binary search trees [5] that every had to create back in college, partitioned tries can potentially have dozens of branches per node. As it turns out, it is this unusual property which makes these structures so efficient.
To get a handle on this concept, let's imagine that we have a trie with a branching factor of 3 (much smaller than it should be, but it's easier to draw). Into this vector we will insert the following data:
After all the jumbling necessary to make this structure work, the result will look like the following:
It's hard to see where the "trie" part of this comes into play, so bear with me. The important thing to notice here is the access times for indexes 0-2: it's O(1). This is of course a tree, so not all nodes will be one step away from the root, but the point is that we have achieved constant-time access for at least some of the nodes. Mathematically speaking, the worst-case access time for any index n is O( log3(n) ). Not too horrible, but we can do better.
First though, we have to lay some groundwork. I said that the structures we were working with are tries rather than normal trees. A trie implies that the key for each element is encoded in the path from the root to that node. So far, it just appears that we have built a fancy tree with numeric keys and a higher branching factor than "normal". This would be true if all we were given is the above diagram, but consider the slightly modified version below:
Structurally, nothing has changed, but most of the edges have been renumbered. It is now a bit more apparent that each node has three branches numbered from 0 to 2. Also, with a little more thought, we can put the rest of the pieces together.
Consider the "Moya" node. In our input table, this bit of data has an index of 5. To find its "index" in our renumbered trie, we follow the edges from the root down to the destination node, arriving at a value of 12. However, remember that each node has only 3 branches. Intuitively, we should be thinking about base-3 math somewhere about now. And indeed, converting 12 into base-3 yields a final value of 5, indicating that the index of the node is indeed encoded in the path from the root based on column. By the way, this works on any node (try it yourself). The path to "Karen" is 100, which converted into base-3 becomes 9, the input index of the element.
This is all fine and dandy, but we haven't really solved our original problem yet: how to achieve constant-time access to arbitrary indexes in a persistent structure. To really approach a solution to our problem, we must increase the branching factor substantially. Rather than working with a branching factor of 3 (and thus, O( log3(n) ) efficiency), let's dial the branching factor up to 32 and see what happens.
The result is completely undiagramable; but it does actually provide constant time access for indexes between 0 and 31. If we were to take our example data set and input it into our revised trie, the result would be a single layer of nodes, numbered at exactly their logical index value. In the worst case, the efficiency of our more complicated trie is O( log32(n) ). Generally speaking, we can infer (correctly) that for any branching factor b and any index n, the lookup efficiency will be precisely logb(n). As we increase the branching factor, the read-efficiency of our trie increases exponentially. To put a branching factor of 32 into perspective, this means that the algorithmic complexity of accessing index 1,000,000 would only be 3.986! That's incredibly small, especially given the sheer magnitude of the index in question. It's not technically constant time, but it's so incredibly small for all conceivable indexes that we can just pretend that it is. As Rich Hickey says:
…when it's a small enough value, I really don't care about it.
So that takes care of the reading end of life, but what about writing? After all, if all we needed was constant time lookups, we could just use an array. What we really need to take care to do is ensure that modifications are also as fast as we can make them, and that's where the tricky part comes in.
We can think of an array as a partitioned trie with a branching factor of . When we modify an array immutably, we must copy every element from the original array into a new one which will contain the modification. This contrasts with
List – effectively, a partitioned trie with a branching factor of 1 – which in the best case (prepending) requires none of the elements to be copied. Our 32-trie is obviously somewhere in between. As I said previously, the partitioned trie doesn't really solve the problem of copying, it just compromises on efficiency somewhat (the difference between 1 and 3.986).
The truth is that to modify a partitioned trie, every node in the target sub-trie must be copied into a new subtrie, which then forces the copying of its level and so-on recursively until the root is reached. Note that the contents of the nodes are not being copied, just the nodes themselves (a shallow copy). Thus, if we return to our example 3-trie from above and attempt to insert a value at index 12, we will have to copy the "Larry" node along with our new node to form the children of a copy of the "Renee" node. Once this is done, the "Grace" and "Moya" nodes must also be copied along with the new "Renee" to form the children of a new "Bethany". Finally, the "Daniel" and "Joseph" nodes are copied along with the new "Bethany" to form the children of a new root, which is returned as the modified trie. That sounds like a lot of copying, but consider how much went untouched. We never copied the "Karen" or the "Chris" nodes, they just came over with their parent's copies. Instead of copying 100% of the nodes (as we would have had it been an array), we have only copied 80%. Considering that this was an example contrived to force the maximum copying possible, that's pretty good!
Actually, we can do even better than this by storing the children of each node within an array (we would have to do this anyway for constant-time access). Thus, only the array and the modified nodes need be copied, the other nodes can remain untouched. Using this strategy, we further reduce the copying from 80% to 30%. Suddenly, the advantages of this approach are becoming apparent.
Now of course, the higher the branching factor, the larger the arrays in question and so the less efficient the inserts. However, insertion is always going to be more efficient than straight-up arrays so long as the inserted index is greater than the branching factor. Considering that most vectors have more than 32 elements, I think that's a pretty safe bet.
I bet you thought I was going to get to this section first. Foolish reader…
Once we have all this theoretical ground-work, the implementation just falls into place. We start out with a
Vector class parameterized covariantly on its element type. Covariant type parameterization just means that a vector with type
Vector[B] is a subtype of
Vector[A] whenever
B is a subtype of
List works this way as well, as do most immutable collections, but as it turns out, this sort of parameterization is unsafe (meaning it could lead to a breakdown in the type system) when used with mutable collections. This is part of why generics in Java are strictly invariant.
Coming back down to Earth (sort of), we consider for our design that the
Vector class will represent the partitioned trie. Since each child node in the trie is a trie unto itself, it is only logical to have each of the nodes also represented by
Vector. Thus, a
Vector must have three things:
Put into code, this looks like the following:
class Vector[+T] private (private val data: Option[T], val length: Int, private val branches: Seq[Vector[T]]) extends RandomAccessSeq[T] { def this() = this(None, 0, new Array[Vector[T]](BRANCHING_FACTOR)) // ... }
RandomAccessSeq is a parent class in the Scala collections API which allows our vector to be treated just like any other collection in the library. You'll notice that we're hiding the default constructor and providing a no-args public constructor which instantiates the default. This only makes sense as all of those fields are implementation-specific and should not be exposed in the public API. It's also worth noting that the branches field is typed as
Seq[Vector[T]] rather than
Array[Vector[T]]. This is a bit of a type-system hack to get around the fact that
Array is parameterized invariantly (as a mutable sequence) whereas
Seq is not.
With this initial design decision, the rest of the implementation follows quite naturally. The only trick is the ability to convert an index given in base-10 to the relevant base-32 (where 32 is the branching factor) values to be handled at each level. After far more pen-and-paper experimentation than I would like to admit, I finally arrived at the following solution to this problem:
def computePath(total: Int, base: Int): List[Int] = { if (total < 0) { throw new IndexOutOfBoundsException(total.toString) } else if (total < base) List(total) else { var num = total var digits = 0 while (num >= base) { num /= base digits += 1 } val rem = total % (Math.pow(base, digits)).toInt val subPath = computePath(rem, base) num :: (0 until (digits - subPath.length)).foldRight(subPath) { (i, path) => 0 :: path } } }
As a brief explanation, if our branching factor is 10 and the input index (
total) is 20017, the result of this recursive function will be
List(2, 0, 0, 1, 7). The final step in the method (dealing with ranges and folding and such) is required to solve the problem of leading zeroes dropping off of subsequent path values and thus corrupting the final coordinates in the trie.
The final step in our implementation (assuming that we've got the rest correct) is to implement some of the utility methods common to all collections. Just for demonstration, this is the implementation of the
map function. It also happens to be a nice, convenient example of good functional code.
override def map[A](f: (T)=>A): Vector[A] = { val newBranches = branches map { vec => if (vec == null) null else vec map f } new Vector(data map f, length, newBranches) }
Before moving on from this section, it's worth noting that that our implementation of the vector concept has some rather bizarre properties not held by conventional, mutable vectors. For one thing, it has a logically infinite size. What I mean by this is it is possible to address any positive integral index within the vector without being concerned about resize penalties. In fact, the only addresses which throw an
IndexOutOfBoundsException are negative. The length of the vector is defined to be the maximum index which contains a valid element. This actually mirrors the semantics of Ruby's
Array class, which also allows placement at any positive index. Interestingly enough, the efficiency of addressing arbitrary indexes is actually worst-case much better in the persistent trie than it is in a conventional amortized array-based vector.
Since we now have an immutable data structure with efficient random-access, we may as well rewrite our previous example of the button strip using this structure. Not only is the result far more efficient, but it is also intensely cleaner and easier to read:
class ButtonStrip private (buttons: Vector[Boolean]) { def this(num: Int) = this(new Vector[Boolean]) // no worries about length def status(index: Int) = buttons(index) def push(index: Int) = new ButtonStrip(buttons(index) = true) def unpush(index: Int) = new ButtonStrip(buttons(index) = false) }
You'll notice that the
update method is in fact defined for
Vector, but rather than returning
Unit it returns the modified
Vector. Interestingly enough, we don't need to worry about length allocation or anything bizarre like that due to the properties of the persistent vector (infinite length). Just like arrays, a
Vector is pre-populated with the default values for its type. In the case of most types, this is
null. However, for
Int, the default value is
0; for
Boolean, the default is
false. We exploit this property when we simply return the value of dereferencing the vector based on any index. Thus, our
ButtonStrip class actually manages a strip of infinite length.
The truth is that we didn't even go as far as we could have in terms of optimization. Clojure has an implementation of a bit-partitioned hash trie which is basically the same thing (conceptually) as the persistent vector implemented in this article. However, there are some important differences.
Rather than jumping through strange mathematical hoops and hacky iteration to develop a "path" to the final node placement, Clojure's partitioned trie uses bit masking to simply choose the trailing five bits of the index. If this node is taken, then the index is right-shifted and the next five bits are masked off. This is far more efficient in path calculation, but it has a number of interesting consequences on the final shape of the trie. Firstly, the average depth of the tree for random input is less, usually by around 1 level (on average). This means that the array copying on insert must occur less frequently, but must copy more references at each step. Literally, the trie is more dense. This probably leads to superior performance. Unfortunately, it also requires that the index for each value be stored along with the node, requiring more memory. Also, this sort of "bucket trie" (to coin a phrase) is a little less efficient in lookups in the average case. Not significantly so, but the difference is there. Finally, this masking technique requires that the branching factor be a multiple of 2. This isn't such a bad thing, but it does impose a minor restriction on the flexibility of the trie.
Most importantly though, Clojure's trie uses two arrays to contain the children: one for the head and one for the tail. This is a phenomenally clever optimization which reduces the amount of array copying by 50% across the board. Rather than having a single array of length 32, it has two arrays of length 16 maintained logically "end to end". The correct array is chosen based on the index and recursively from there on down the line. Naturally, this is substantially more efficient in terms of runtime and heap cost on write.
At the end of the day though, these differences are all fairly academic. Just having an idiomatic partitioned trie for Scala is a fairly significant step toward functional programming relevance in the modern industry. With this structure it is possible to still maintain lightning-fast lookup times and decent insertion times without sacrificing the critical benefits of immutable data structures. Hopefully structures like this one (hopefully, even better implementations) will eventually find their way into the standard Scala library so that all may benefit from their stream-lined efficiency.
The implementation of
Vector which I present in this article is inherently much less efficient than the one Rich Hickey created for Clojure. I finally broke down and created a line-for-line port from Clojure's Java implementation of
PersistentVector into a Scala class. I strongly suggest that you use this (much faster) implementation, rather than my own flawed efforts. You can download the improved
Vector here: Vector.scala [9].
Article printed from Code Commit: http://www.codecommit.com/blog
URL to article: http://www.codecommit.com/blog/scala/implementing-persistent-vectors-in-scala
URLs in this post:
[1] Clojure: http://www.clojure.org
[2] brilliant presentation: http://blip.tv/file/812787
[3] bad functional code: http://www.drmaciver.com/2008/08/functional-code-not-equal-good-code
[4] trie: http://en.wikipedia.org/wiki/Trie
[5] binary search trees: http://en.wikipedia.org/wiki/Binary_search_tree
[6] Vector.scala: http://www.codecommit.com/blog/misc/implementing-persistent-vectors-in-scala/Vector.scala
[7] VectorSpecs.scala: http://www.codecommit.com/blog/misc/implementing-persistent-vectors-in-scala/VectorSpecs.scala
[8] ScalaCheck: http://scalacheck.googlecode.com
[9] Vector.scala: http://www.codecommit.com/blog/misc/implementing-persistent-vectors-in-scala/final/Vector.scala
Click here to print.
All content copyright © 2010 Daniel Spiewak. Distributed under Creative Commons.
All code (unless otherwise stated) is licensed under the BSD License.


text:
This article originally appeared in the 2.28.10 issue of Metroland
Playing Monopoly
This week the federal Department of Justice's anti-trust division filed what it termed restrictions on the proposed merger between music industry giants Ticketmaster and Live Nation. These two companies already dominate primary ticket selling, the management of many superstar artists, and own or have exclusive rights to present concerts at many major concert venues. And now they want to merge, arguing that by combining forces, they'll be more efficient in delivering entertainment to the masses.
The DOJ and a bunch of states sued to stop the merger going ahead as-is and quickly moved to reach some kind of common ground, conditions by which the merger could go forward. These "restrictions" are apparently part of that process. To bless the merger DoJ wants Ticketmaster to license its main ticketing program to AEG, another behemoth multi-headed music and sports company, to spin off some of its operations to Comcast, and to promise not to retaliate against any venues that decide to use a competitor's services.
There's plenty of head-scratching going on about this, and it's fair to say that nobody has any idea what these measures, if accepted by Ticketmaster and the court, will really mean to the consumer.
But I have a hard time believing that things will be better. Over the last several years the "service charges" we have to pay for increasingly expensive concert tickets have skyrocketed to levels that are multiples of what we used to pay for the tickets alone. And in this age of automation, point-and-click buying, the reason for this is? Could it be lack of competition? Ya think?
And allowing the two biggest players in the game to merge will make it better? When these two companies have both been busily snapping up other assets, like superstar management contracts, partnerships with record companies, and concert venues, all of which position them to be what economists call vertically integrated companies? So we can buy tickets from Ticketmaster to go see Ticketmaster acts on Ticketmaster labels at Ticketmaster venues?
I'm no anti-trust lawyer, but it seems to me that allowing this merger of giants to go through, even with the DoJ's "conditions", isn't good for anybody but the stockholders of the companies. I'd rather see Ticketmaster and Live Nation dismantled and disbursed, so we can have a real marketplace with real competition. Of course Wall Street and the neocons call this forced break-up of companies "government intervention" and even "socialism" (a term that has lost all meaning recently) but this whole laissez-faire approach to big businesses has given us things like a predatory Wal-Mart, three and a half major record companies that collude to keep prices high, and banks and insurance companies that are too big to fail. Along with a ticket-selling concert-presenting near-duopsony that's about to get worse.
OK. So Apple's announcing the release of the tablet, basically a simple interactive screen. Steve Jobs reportedly said that this is the most important product he's ever introduced, and folks are saying the tablet will revolutionize, well, like everything.
I dunno. Maybe it will come clear to me down the road. I mean, I love my iPhone but I sure don't use it up to its capability. The only app I have is "Flashlight", probably the stupidest and most useless app out of the gazillion they're selling at the app store.
But one thing lots of pundits are saying is that the Apple tablet is going to save the newspaper industry. Somehow, people are going to buy their Apple tablets, and morph into mindless zombies who will automatically subscribe to online versions of newspapers! Woot woot! This coming hot on the heels of the New York Times' announcement that it was going to stop putting the newspapers online for free sometime, maybe by the end of the year.
As Mike Masnick at Techdirt points out, there's not a lot of logic behind the "newspapers will be saved" argument, and plenty of reasons why online newspaper subscriptions shouldn't happen. Maybe I'll get into this deeper in a future column, but I fail to see how trying to bottle up the news is good for anybody. Putting the news up for free online isn't killing newspapers so much as other things like Craigslist, competing media, and imprudent parent company consolidations which have left most newspaper companies wallowing in debt. Recently the Times Union started to withhold selected news stories from its Sunday online edition. No, that's not going to incent me to get in my car and go out and buy the paper, unless the article's about me. Rather, it's going to incent me to find the news somewhere else. Several months ago the Long Island paper Newsday put its content behind a firewall. It was just announced that so far, Newsday has sold 56 online subscriptions. 56.

subset: commoncrawl


text:
I have been teaching myself Python as a first language for 2 years now. So far I have done some online courses (NLP, Design of a Computer Program etc.) and solved some puzzles but never worked with big applications.
Yet right now I have the opportunity to do some real work with Python on a project at my university. It's a web app using the Pyramid framework, currently at about 8000 lines. And they are using quite a few tricks that I have never encountered before - stuff like
__metaclass__, lots of OO stuff that I have no prior experience with.
Do you believe that I could still do useful work for the project?
And what could I do to prove my worth?
Edit: The developers on the project are at a different university. The job available at my university seems to be a classic code review job: Check the code for security flaws, style, coherence, efficiency etc.


text:
Sens get it done (Ottawa Sun)
Quest for the Holy Grail (Ottawa Sun)
Sens keep finding a way (Ottawa Sun)
Will this spring be Miller time? (Ottawa Sun)
Game Story (Ottawa Sun)
Dom on tap for Emery, Sens? (Ottawa Sun)
Fans must seize the moment (Ottawa Sun)
Champ to champ (Ottawa Sun)
Victory Drive (Ottawa Sun)
Senators lucky number is 7 (Ottawa Sun)
Sens win by Sabres' edge (Ottawa Citizen)
Buffalo's best shot not enough (Ottawa Citizen)
Surviving breaks in OT is key (Ottawa Citizen)
Ruff gives new-school hockey top marks (Ottawa Citizen)
Emery not yet sick of 'What makes him tick?' (Ottawa Citizen)
Why are you a buffalo sabres' fan? (Ottawa Citizen)
'We're rocking, we're going for it' (Ottawa Citizen)


text:
I'm used to reviewing one distro at a time, and that has worked quite well. You could read a review and assuming it is well written and detailed, decide whether to download and install it on your PC. For this review, however, I'm doing a two-for-one – revewing and comparing two very popular distros. For the reader, I think it makes it very easy (or easier) to evaluate distros. So for this combo-review, I'm taking on Ubuntu 9.10 Live CD and Mandriva One 2010.
Ubuntu and Mandriva are two of the most popular desktop Linux brands. Both are backed by commercial entities. Ubuntu by Canonical Ltd., and Mandriva by Mandriva. Both are free to download and use, and have a vibrant, online user community. Ubuntu is a GNOME-based distro, while Mandriva One has separate iso images for GNOME and KDE desktop environments. In order not to compare apples to oranges, this review features Ubuntu 9.10 Live CD and the GNOME edition of Mandriva One 2010.
Any review should always begin from the beginning – the installer, or the installation procedure. And that's exactly what I'm going to do here.
So, let's being – from the very beginning.
The Ubuntu 9.10 Live CD installer is supported on 32-bit and 64-bit platforms. The installation process is just a simple, six-step routine. No support for LVM, RAID, and disk encryption. By default, Ubuntu creates one main partition, using the ext4 file system. The installer gives you the option to boot into the Live environment, or to install it on your PC, bypassing the Live environment.
Ubuntu desktop boot screen
The Mandriva One 2010 installer is a Live CD with the option to install to hard drive from the Live environment. With Mandriva One, you have to boot into the Live environment. The installer is supported only on 32-bit platforms. During installation, you have the option to configure NTP (manual configuration is default). LVM, soft-RAID, and full disk encryption are supported.
Mandriva One 2010 boot screen
THE EDGE: At the installer level, Mandriva wins easily – no contest here. When evaluating a Linux or BSD desktop operating system, you want to make sure that it has support for LVM and disk encryption. LVM is not a must-have for every user, but in today's computing environment, you need disk encryption. Why is disk encryption that important?
The Mandriva One installer is less automated than the Ubuntu Live CD installer, and offers more advanced options. With the Mandriva installer you have the option to choose between using GRUB or LILO as bootloader, with GRUB as the default. Ubuntu installer does not give you a bootloader option. GRUB is it.
One of the most annoying aspects of the Mandriva One installer is that it lacks a 'back' button. You either move on to the next step or you cancel the installation. This problem was brought to light in a review of Mandriva Powerpack 2009, and no one at Mandirva has bothered to address it.
Mandriva installer. Hey, where's your 'back' button.
As simple as it is, the Ubuntu installer gives you the freedom to go forward or backward as many times as you like.
Both distros are using the same version of GNOME (version 2.8). There is nothing especially remarkable about the default wallpapers. Ubuntu's is as bland as you are going to find on any desktop operating system, and Mandriva's is no better. But as the saying goes, one man's meat is another man's poison. If you want to see what a good desktop wallpaper and configuration looks like, take a look at Hymera Open.
Ubuntu desktop screenshots are available here, and those from Mandriva One here.
The Edge: Let me repeat: One man's meat is another man's poison. If you want to, you may sex up the Ubuntu desktop with Cairo-Dock, and do the same for Mandriva.
Ubuntu – Aside from the stock set of games, desktop accessories and system tools that comes with any GNOME desktop, Ubuntu installs the following by default: F-Spot Photo Manager, the GIMP, Empathy IM Client, Evolution Mail, Firefox, Transmission BitTorrent Client, Totem Movie Player (with GStreamer backend), Rythmbox audio player, and GNOME-Sound-Recorder. There is, of course, Brasero Disc Burner, and OpenOffice.org office suite.
Mandriva – Mandriva also ships with the usual set of GNOME utilities and desktop accessories, but not a single game application is installed, not one. Ok, so games are not installed, but you do get the following: Ekiga Softphone, Empathy IM Client, Epiphany and Firefox Web browsers, Evolution Mail, OpenOffice.org office suite, F-Spot Photo Manager, the GIMP, Eye of GNOME, Inkscape Vector Graphics Editor, Kino, Totem Movie Player (with GStreamer backend), TVtime Television Viewer, Cheese Webcam Booth, Rythmbox audio player, GNOME-Sound-Recorder, and FM-Radio Tuner.
The Edge: Mandriva One obviously packs more useful software than Ubuntu, but why the absence of games? Any application not part of the default installation is likely available in the repositories. In terms of default installed applications, I'm yet to review a distro that tops Sabayon.


text:
Deficit concerns
Through nine months, the Auglaize Acres is operating with close to a $150,000 deficit, which has the Auglaize County commissioners voicing some concern since they want the county nursing home to continue operation as a stand-alone facility.
During a monthly update, Auglaize Acres Business Manager Kim Sudhoff shared the financial report which showed a deficit of $16,908 in September and an annual deficit of $149,977. It has not created a debt, but it has reduced the cash carryover for the Auglaize Acres fund from $565,591 to $415,613.
"It is obviously a big concern that we have," Commissioner Doug Spencer said. "The nursing home business has been very difficult for counties to stay in business, but that is our goal and we will try to attain that goal.
"We feel we have the right people in place to make it happen, but this is something we pay special attention to every month," the commissioner said in reference to the census and the operations budget. "We hope that things will get turned around for us."
Spencer said the commissioners understand the Auglaize Acres is still solvent, but they also understand it cannot operate more than four years with an annual deficit at this rate. The commissioners stressed the facility needs to be a stand-alone facility with no annual financial help from the county General Fund.
The commissioners also said they understand what the contributing factors are at this point, but they would like further analysis so they and Auglaize Acres officials can make the facility self-sufficient each month.
Auglaize Acres Administrator Connie Pierce has been paying back a debt each month to the county General Fund, which was loaned to the Acres when it was under a previous administrator. Pierce ordered $6,250 paid each month, reducing the debt from more than $400,000 to $176,986.
The other factor to the deficit growing in 2012 is the census fell to 73 people during the mid-summer months when Pierce projected 80 residents throughout the year. The census currently stands at 78, with two more residents moving into the nursing home this week.
The census affects Medicaid and Medicare reimbursement from the government, which also is reducing its reimbursement rates. The county receives more money from Medicare reimbursement, which is for short-term rehabilitation care, than it does for Medicaid, which is for long-term nursing home care.
The majority of the residents are on Medicaid, with only two on Medicare.
Sudhoff also explained Auglaize Acres officials learned the Medicaid reimbursement rate will increase by 1.8 percent in late October, but Acres officials heard it will be reduced by 2 percent in January after the November general election for president.
The commissioners vowed to continue to evaluate the situation and to work with Auglaize Acres officials to make the nursing home self-sufficient and a stand-alone operation. Spencer even suggested converting some of the rooms on the second floor into office space they can rent to businesses.
Sudhoff said Pierce would like to convert those rooms back into living space after the commissioners and the county Emergency Management Agency move their offices back to the Auglaize County Administration Building.
Sudhoff explained Pierce's suggestion would not require any more nursing staff.
Spencer said they are proud of the fact Auglaize Acres is a dual-certified operation — a short-term and long-term care facility.
Spencer said the commissioners realize they are facing a tough situation since there are fewer and fewer county-owned nursing homes. Spencer estimated fewer than 30 counties operate their own nursing home facilities.
"It is a struggle for private nursing homes, and it is definitely for counties and the number keeps dropping," said Spencer, who believes the number may be as few as 20 county-owned nursing homes in the 88 counties. "You have to separate out if it is a county home or a truly dual-certified nursing care facility.
"Most counties have decided since it no longer a service they are mandated to provide anymore, and since there are private businesses that can provide the necessary services they have gotten out of the business," he said. "Right now, we are the exception to the rule and as long as the Acres can sustain itself then our goal is to keep this facility available to the residents of Auglaize County — but it has to be able to sustain itself."


text:
WASHINGTON (Reuters) - U.S. lawmakers will examine the proposed purchase of Smithfield Foods SFD.N, the world's largest pork processor, by Shuanghui International of China at a hearing in July, Debbie Stabenow, the head of the Senate Agriculture Committee, said on Thursday.
Smithfield Chief Executive Larry Pope will be among those to testify at the July 10 hearing. Other witnesses have not been announced.
At $4.7 billion, the proposed Smithfield-Shuanghui deal would be the largest acquisition of a U.S. company by a Chinese company. Nearly two dozen senators have urged a careful review of the sale by federal regulators.
The hearing, "Smithfield and Beyond: Examining Foreign Purchases of American Food Companies" will look at how the government review of such takeovers account for food safety and protection of American technologies and intellectual property.
It also will look at the effects of increased foreign ownership of U.S. foodmakers.
Separately, two lawmakers asked administration officials to answer 17 questions about the Smithfield deal, ranging from Chinese access to U.S. trade secrets and whether other U.S. meatpackers would have fair treatment in the Chinese market, to how U.S. consumers will know if they are buying U.S.-grown or Chinese meat.
"Just as Chinese consumers question the safety and security of their food supply, so should we as public officials on behalf of American consumers," said Senator Elizabeth Warren of Massachusetts and Rep Rosa DeLauro of Connecticut.
Led by Stabenow, 15 of the 20 senators on the Agriculture Committee and the leaders of the Senate Finance Committee wrote last week to Treasury Secretary Jack Lew to say food security must be a factor when regulators decide whether to approve the sale. The Treasury Department heads an interagency panel that reviews foreign investment for national security threats.
The letter from the Agriculture Committee on June 20 said the Agriculture Department and the Food and Drug Administration should be given roles in the review so that it includes experts in food supply and food safety.
China's Commerce Ministry said on Tuesday the Smithfield transaction was unrelated to food safety issues.
"We hope the U.S. will treat the merger case fairly and properly," it said in a statement that was its first response to questions raised by the lawmakers.
Smithfield and Shuanghui have filed the proposed deal with the Committee on Foreign Investment in the United States (CFIUS), the interagency panel headed by the Treasury. Many CFIUS experts believe the deal will be cleared.
"We welcome a full review and fair consideration of the Shuanghui-Smithfield combination from the U.S. government. We believe the proposed combination does not present any national security concerns, is good for US farmers and agriculture and will advance US-China relations," Smithfield said in a statement.
The company said it would "continue to provide Congress and CFIUS with all the information requested to allow a full and timely review of the combination."
The hearing will take place the same week that Chinese Vice Premier Wang Yang and State Councilor Yang Jiechi will be in Washington for high level talks with U.S. Treasury Secretary Jack Lew and Secretary of State John Kerry.
In late trading Smithfield Foods was at $32.80, up 0.2 percent, on the New York Stock Exchange.
Additional reporting by Doug Palmer, editing by Ros Krasny and Bob Burgdorfer


text:
Genetically-modified canola has been breeding undetected in the American wilds for at least "several generations," say scientists. The escaped GM canola has already mutated into a never-before-seen strain, and now it may be modifying other plants too.
Canola is a yellow flowering plant that is used to make oil. Researchers working in North Dakota, found strains of transgenic canola growing wild on roadsides far from local farms - meaning the GM plants had spread quite far. They found two strains of transgenic canola. According to Nature:
"The extent of the escape is unprecedented," says Cynthia Sagers, an ecologist at the University of Arkansas in Fayetteville, who led the research team that found the canola (Brassica napus, also known as rapeseed).
Sagers and her team found two varieties of transgenic canola in the wild - one modified to be resistant to Monsanto's Roundup herbicide (glyphosate), and one resistant to Bayer Crop Science's Liberty herbicide (gluphosinate). They also found some plants that were resistant to both herbicides, showing that the different GM plants had bred to produce a plant with a new trait that did not exist anywhere else.
Sagers says the previous discoveries in other countries of transgenic canola populations growing outside of cultivation were often in or near fields used for commercial transgenic canola production. By contrast, her research team found feral populations of herbicide-resistant canola growing along roads, near petrol stations and grocery stores, often at large distances from areas of agricultural production.
So why does this matter? Because if the transgenic canola starts swapping genetic material with weed populations - something that is not unlikely - it could spread herbicide resistance to weeds. And that would leave farmers with no way to fight plant pests - and potentially massive crop failures as a result.
via Nature
Photo by Birdy, via Amateur Photography/Nature Images.


text:
this is a discussion within the Saints Community Forum; Getting defensive Turley wants to bring his intensity to DE position Posted: Friday June 10, 2005 1:25PM; Updated: Friday June 10, 2005 3:29PM Kyle Turley, a former Pro Bowl offensive lineman, hopes to switch to defensive end, although he is ...
|Thread Tools
|Display Modes
500th Post
Join Date: Apr 2005
Location: new orleans
Posts: 584
Turley wants to bring his intensity to DE position
Getting defensive
Turley wants to bring his intensity to DE position
Posted: Friday June 10, 2005 1:25PM; Updated: Friday June 10, 2005 3:29PM
Kyle Turley, a former Pro Bowl offensive lineman, hopes to switch to defensive end, although he is currently not on a team.
Jeff Gross/Getty Images
Submit a comment or question for Michael.
Your name:
Your e-mail address:
Your home town:
Enter your question:
He was on his way to a gig, getting jacked up for a couple hours of shirtless skins-slapping -- and when you are the drummer for a band named Perpetual Death Mode, your biceps had best be prepared to do some serious throbbing.
"Oh, I'm gonna pound those things," Kyle Turley said in his typical, subtlety-deprived tone. "Our music is super heavy, super hard and super fast. It's bad-ass, man. And yeah, I've gotta take the shirt off, so I can show off my f---- abs."
Turley has been part of this death-metal-thrash quartet for several weeks now, and in case you're working up the courage to tell this long-haired, heavily tattooed rhythm-keeper to keep his day job, don't bother: Turley officially lost it on Monday, when the St. Louis Rams waived the former All-Pro tackle after he failed a physical.
Still ailing from the serious back injury that kept him out for all of the 2004 season, the 6-foot-5 Turley at one point shrunk down to 235 pounds during rehab, a process he says is still three to six months away from completion. He has since bulked up to 260 ("I've put on 30 pounds of solid muscle," he said) -- 50 pounds short of his listed weight going into '04, but buff enough to allow him to switch to defensive end, which would be quite a dramatic move for the soon-to-be-30-year-old.
"With my intensity and athletic ability, I think that would be a natural switch," Turley said in a phone interview on Thursday night. "I'm just as fast as almost all those [defensive ends] out there, and as athletic, or more, than half of them. And my tenacity supersedes all of that. There are a lot of guys at that position who have gotten paid that are a bunch of slaps, and I know I could do better than them."
If Turley seems a tad disdainful of his would-be peers, some back story is in order. As part of a 2003 Sports Illustrated package on offensive linemen -- for which he was the cover subject -- Turley told Josh Elliott he regarded his defensive-line counterparts as unintelligent drones, referring to them as "geraniums."
Now that he's intent on a switch, Turley is all about flower power.
"Because I played offensive line, I think that gives me an insider's advantage," he explained. "Believe me, I know what's happening on the other side of the football, and that should allow me to read and react in a way that the typical defensive lineman can't. I know what I would bring to that position, and a lot of coaches know, too."
What Turley would bring, first and foremost, is attitude -- which is why, despite his physical issues and purported baggage, I expect some NFL team to give him a chance. This is likely to happen next offseason, when he hopes to be fully healed, though he'd listen if a team expressed interest in signing him sooner.
In the meantime, he is spending most of his time in Arizona, where he works out five times a week, virtually all day, at the Athletes' Performance Institute, a high-tech conditioning center on the Arizona State University campus in Tempe. In addition to his drumming exploits, Turley, who did several stints as a guest host for Fox's Best Damn Sports Show last fall, is expanding his entertainment horizons. He's about to head to Northern California to star in a horror flick, Seventy Five, that he hopes will be released in time for Halloween.
"It's a terror/thriller," he said, "and I'm the terror."
That, of course, was the way he was portrayed by his former coach, Mike Martz, late last year. Martz reportedly called NFL security on Turley after a contentious meeting in the Rams' coach's office, one in which Turley says Martz accused him of faking his back injury and "stealing money," alleging that the player had threatened him. Turley, who'd had offseason back surgery to repair a herniated disk, re-aggravated the injury early in '04 training camp and blamed Martz for not allowing him to ease his way back into playing shape.
Turley, who signed a six-year, $26.5 million deal with St. Louis after he was acquired in a trade with the New Orleans Saints in 2003, said he understands why Rams management elected to cut him, though he wished they'd given him more time to demonstrate his physical progress. "I understand that move, that there's a business side," he said. "I have no ill feelings towards Rams management."
He was far less forgiving of Martz, whom he believes was the man most responsible for his release. "I know that guy's intentions," Turley said. "I know what his motives are. Whatever face he wants to put on for the media, I think anybody can see right through that. I know he had just as much ill intent to get rid of me as he did for Kurt Warner. He wanted to get rid of Kurt because Kurt was on his s--- list. I guess I got on the list, too, by 'faking a back injury' and 'taking the money and running.'
"When I played for them [in '03], I did my job. It wasn't my fault we didn't go for a f--- touchdown against the Carolina Panthers in the playoffs with 45 seconds left [in regulation]. We could've gone to the f--- Super Bowl, but we kicked a field goal and lost ... He can live in that dream world where he can do no wrong, but one day it's going to come back to bite him in the ass."
Martz, through a team spokesperson, responded: "Kyle played very well for us in 2003. I'm sorry his back injury has kept him from continuing his career with the Rams. I wish him the best of luck." (John Hadley, the Rams' director of research and statistical analysis, added: "I have a very good personal relationship with Kyle, but facts are facts. The fact is there were 17 minutes left in that playoff game (via overtime) and they had ample opportunity to win. And the fact is Mike has taken the Rams to the promised land twice, once as an offensive coordinator and once as the head coach.")
Turley can envision a delicious circumstance in which, as an opposing defensive end, he bursts off the corner and makes the sack that ends the Rams' season. "I'd take it easy on the quarterback, because Marc Bulger's a great guy," Turley said. "But that'd be a beautiful scenario. I hope all the talented players they have there get themselves another coach, because that dream world that Mike Martz lives in is keeping them from reaching the promised land."
In the meantime, if you want to see Turley let out some of his aggression -- well, there's always the next Perpetual Death Mode gig.
|Latest Blogs
Terrence Williams future threat option for Neworleans Saints? Last Blog: 02-18-2019 By: joker-saint
2019 Saints Roster Outlook Offseason Needs Last Blog: 02-01-2019 By: jeanpierre
2018 New Orleans Saints: Roster Outlook Last Blog: 01-25-2019 By: jeanpierre
|Thread Tools
|Display Modes
Linear Mode


text:
Ring of Honor sent this in.
Available Now on DVD
2004 was a turbulent year for Ring of Honor, but also one of growth & change. From first-time travels to Chicago & St. Paul, to the rise of Austin Aries and the debut of legends like Mick Foley & Ricky Steamboat, it was twelve full months of excitement and, as always the best wrestling on the planet.
The Joe / Punk Trilogy, the return of Low Ki & the Rottweilers, Jushin Liger, the Pure Title; it was a year full of enduring matches, memories, and moments, and this first ever THREE disc DVD set collects 19 of those. From Instant Classics like Joe / Punk II to hidden gems like the Rottweilers vs GenNext and everything in between, This is ROH: YEAR THREE!!
Disc 1
1. The Second City Saints vs. The Prophecy…The Battle Lines Are Drawn 1/10/04
2. AJ Styles vs. CM Punk (ROH Pure Title Tournament Finals)…Second Anniversary Show 2/14/04
3. Samoa Joe vs. Jay Briscoe (ROH World Title Steel Cage Match)…At Our Best 3/13/04
4. CM Punk vs. Bryan Danielson…ROH Reborn Stage One 4/23/04
5. Jay & Mark Briscoe vs. CM Punk & Colt Cabana (World Tag Team Title Match)…ROH Reborn Stage Two 4/24/04
6. Spanky vs. Homicide…Round Robin Challenge III 5/15/04
7. Mark Briscoe vs Colt Cabana vs Austin Aries vs Homicide vs Bryan Danielson vs Samoa Joe (Survival of the Fittest Finals)…Survival of the Fittest 6/24/04
8. Doug Williams vs. Alex Shelley (ROH Pure Title Tournament Finals)…ROH Reborn Completion 7/17/04
Disc 2
9. Samoa Joe & The Briscoe Brothers vs. Homicide & The Havana Pitbulls…ROH Reborn Completion 7/17/04
10. Dan Maff & BJ Whitmer vs. CM Punk & Ace Steel (Chicago Street Fight)…Death Before Dishonor II Part 2 7/24/04
11. Jay & Mark Briscoe vs. Low Ki & Homicide…Testing the Limit 8/7/04
12. Bryan Danielson vs. Austin Aries (Two Out Of Three Falls)…Testing the Limit 8/7/04
13. Mick Foley makes his ROH debut…Glory By Honor III 9/11/04
Disc 3
14. Samoa Joe vs. CM Punk (ROH World Title Match)…Joe vs. Punk II 10/16/04
15. Rocky Romero & Ricky Reyes vs. Roderick Strong & Jack Evans (World Tag Team Title Match)…Weekend of Thunder Night 1 11/5/04
16. CM Punk & Ace Steel vs. Austin Aries & Roderick Strong (No DQ Match)…Weekend of Thunder Night 2 11/6/04
17. Bryan Danielson & Low Ki vs. Jushin Liger & Samoa Joe…Weekend of Thunder Night 2 11/6/04
18. Homicide vs. Bryan Danielson…All Star Extravaganza II 12/4/04
19. Samoa Joe vs. Austin Aries (ROH World Title Match)…Final Battle 2004 12/26/04
Click HERE To Order


text:
The Fujifilm FinePix XP170 is a new addition to the FinePix XP range and sneaks in above the XP150 adding Wireless streaming mode to the mix that lets you send images to an iPhone app after you've taken them. Pocket-lint got a quick hands-on with the new camera.
Identical to the current XP150 and XP100, it comes with a 14-megapixel CMOS sensor with 5x optical zoom. The lens provides a focal range of 28-140 mm (35 mm equivalent) for a wide variety of shots, and the FinePix XP150/100 also offers CMOS sensor shift image stabilisation to reduce camera shake, and have a decent ISO range from 100 to 3200. You'll also get continuous shooting at up to 10 fps and Full HD 1080p movie capture at 30 fps. There's also an underwater movie function.
Tough specs include waterproofing to 10 metres, freezeproofing to -10 degrees and shockproofing up to a 2-metre drop. The optics also have a water-repellent coating. If you happen to stump up for the XP150, you'll also get high sensitivity GPS with electronic compass and tracking.
Where the XP170 is different however is the addition of a new button on the top edge that launches a Wi-Fi feature. The system works by communicating directly with a dedicated app that you have on your iPhone allowing you to send the images across at the press of the button once you've paired the two. The catch is that unlike the XP150 whereby you get GPS, here you don't in favour of what many would say is a better, more useful offering.
Chris Hall, editor at Pocket-lint had this to say about the XP150: "Overall, the Fujifilm FinePix XP150 is a nice-looking camera that's a easy to use and meets the tough demands placed upon it.
"However, where the XP150 stumbles is in the results. Although we've enjoyed using the XP150 and it has given us some nice shots, there are too many foibles along the way and too many shots that could or should be better.
"It's worth considering that this model is available for around £180 which, considering it includes the GPS, makes it more affordable than some similarly specced rivals. If you're accident prone or want a camera to take those action shots in the water or on the pistes, then the XP150 makes owning one much more affordable.
"If image quality is more important, if this is going to be your everyday camera, then it might be worth weighing up rival models before parting with your cash."
You can read Chris's full review here.
The new XP170 will be available in orange and blue and cost £219.


text:
Pop star-turned TV presenter Kelly Osbourne hung up on her mother Sharon on Tuesday after The Talk co-host called her daughter line on-air and quizzed her about rumors of an engagement.
The Papa Don't Preach singer sparked reports she was taking her relationship with vegan chef Matthew Mosshart to the next level on Sunday night after she was snapped sporting a dazzling diamond on her ring finger as she hosted the Miss USA Competition in Las Vegas, Nevada.
On Monday (04Jun12), a representative for Kelly insisted she was "not engaged", but it appears even her mum Sharon Osbourne was not convinced – and she called Kelly to make sure the proposal rumors were just that – rumors.
Sharon's The Talk co-host Julie Chen dared her to phone Kelly live on air to get to the bottom of the reports – and she obliged.
When her daughter answered the phone from London, Sharon asked, "Darling, are you engaged again?" – only to be met with silence as a fed-up Kelly hung up in disbelief.
Sharon Osbourne was none the wiser about her daughter's relationship status, but she admitted she wouldn't be surprised if it was true as the 27 year old has been engaged three times before.
The rock matriarch said, "I have, of hers – I swear to you – in a little plastic bag, three engagement rings. They (her engagements) don't last!"
But Sharon insists she would be happy if Kelly settled down with Mosshart: "She does (like him). I like this one. He's American and he's a pastry chef and I like that because he makes me cakes."
Kelly was previously set to wed model Luke Worrall, but she dumped him in 2010 amid allegations of infidelity.


text:
The latest in unjust beauty pageantry rulings comes out of Mexico, where 19-year-old Cynthia de la Vega was stripped of her crown because she put on six — count 'em, six — pounds. Really, Mexico?
Due to alleged concerns over a minuscule weight gain, de la Vega has been stripped of her runner-up title — which means she's also stripped of her opportunity to compete in the Miss World pageant. (In Mexico, the first-place winner represents their country in the Miss Universe pageant, the runner-up competes in Miss World.) But the pageant itself hasn't admitted to disqualifying a woman for gaining weight. Lupita Jones, Director of Nuestra Belleza Mundo México, responded to the controversy, saying, "It was a lack of dedication and discipline" that caused Cynthia's dismissal, and that she "did not comply with the recommendations and goal agreed upon for her preparation."
De la Vega disputes this claim: "I always attended all of my classes and I did all of my activities. I never disrespected any teachers." The Daily Mail reports a further injustice: That the pageant demanded de la Vega lose weight, but never gave her the tools to do so: "Organizers of the Nuestra Belleza Mexico contest demanded that I lose a few kilos, but they never provided a nutritionist or any other assistance to ensure the weight loss." (As always, consider the source — but if this detail is true, we wouldn't be surprised.)
Now, call us silly, but couldn't a fluctuation of a mere six pounds be written off as water weight? Or, say, the weight you might gain when it's that special time of the month? Or for chrissakes, maybe she felt like treating herself to a nice meal after winning a beauty pageant. Just saying.
At a press conference with CNN Espanol, de la Vega sums up her feelings thusly: "I feel healthy enough to represent my country, and I think this is an injustice. They took away the crown that I earned. That is mine."
Teen Beauty Queen Dethroned For Gaining Weight?
Dethroned "Fat" Beauty Queen Loses Fight For Title
"Fat" Beauty Queen Wins Back Crown


text:
Follow RFF News on your cell phone. Text follow rff to 40404 you will receive txt messages with RFF News
0 Members and 1 Guest are viewing this topic.
I'm not emasculated! Oh, it's the other Ken.
Remember this? Mosquito nets, repellent, chainsaw, ....I suspect they will be camping out in the jungle behind the 19 BC compound. Here is what they do at 19 BC YouTube
But they're slowed by L.A. traffic!
Okay, who is now bummed that we aren't in HDTV after watching survivor? Oh and do we have a game this season?
Page created in 0.087 seconds with 33 queries.


text:
Update: The video has since been restored to the video-sharing website with an adults-only rating, and now a YouTube spokesperson admits they were wrong to take it down in the first place.
The representative tells Billboard.com, "With the massive volume of videos on our site, sometimes we make the wrong call. When it's brought to our attention that a video has been removed mistakenly, we act quickly to reinstate it."
Original post: David Bowie has sparked controversy with the video for new single "The Next Day" – YouTube.com has banned the religious-themed promo.
Marion Cotillard and Gary Oldman star in the new clip, which features a Christ-like Bowie performing at a bar in front of a collection of figures from the Christian faith, including a Cardinal dishing out cash to dancing girls.
Cotillard's prostitute character transforms into a saint after stigmata on her hands gush blood over a topless nun, while another scene features a monk practicing self-flagellation.
The video hit the web on Wednesday, but has already been pulled by YouTube bosses as it violates the site's terms of service, according to Billboard.com.
The promo was directed by "The Runaways" filmmaker Floria Sigismundi.


text:
I was watching the commercial for Dragon Blaster Skeletor and Roboto and noticed that the DB Skeletor in the ad had the tasseled loincloth like that of the original Skeletor. I noticed that the card back artwork had it as well but I guess Mattel chose to leave it off when they produced the toy. That being said, would you like to see the tasseled loincloth or the furry loincloth when Dragon Blaster Skeletor is released in the MOTUC line?
Personally I prefer the tasseled loincloth look as it gives the overall figure a better look
Tasseled loincloth look
Furry loincloth look


text:
Christmas in Rockefeller Center is an annual television event on NBC broadcast live from Rockefeller Center in New York City in which various celebrities welcome the Christmas season by performing holiday songs, culminating in the lighting of the famous Rockefeller Center Christmas tree.
2008 Appearance
Kermit the Frog and Miss Piggy appeared in the 2008 celebration on December 3 to introduce Harry Connick, Jr.
Jane Krakowski and Al Roker hosted, while other guests included Miley Cyrus, Faith Hill, Tony Bennett, Rosie O'Donnell, the Jonas Brothers, and Stephen Colbert.
2009 Appearance
The Muppets appeared in the 2009 special on December 2. Gonzo, Rizzo, Fozzie, Kermit, Miss Piggy, and Pepe performed "It's the Most Wonderful Time of the Year."
Jane Krakowski and Zachary Levi hosted, while other guests included Michael Bloomberg, Alicia Keys, The Roots, Rod Stewart and Brian Williams.
Before the special, select local channels aired a pre-show that featured The Electric Mayhem, consisting of Dr. Teeth, Floyd, Janice, Zoot, Animal and Lips, performing "Run, Run Rudolph."
2012 Appearance
The Muppets and Cee Lo Green sang "All I Need is Love" in the 2012 special on November 28. Kermit, Miss Piggy, Gonzo, Fozzie, Pepe, Animal and the Snowths appeared.
Al Roker and Savannah Guthrie from The Today Show hosted. Other guests included Tony Bennett, Rod Stewart, Bette Midler and Billy Crystal.


text:
Had a lovely day. Started off with a nice chatty phone call from my youngest daughter Kim who unfortunately had out of town visitors and couldn't come up to Auckland. However, I did go to my daughter Nicky's where her lovely husband Paul made a yummy lunch for us.
They also gave me some iTune vouchers and a CD I wanted of Hayley Westenra's new album, Paradiso. This was accompanied by a lovely bunch of flowers and a gorgeous card that Nicky had made. If only she wasn't always so busy I would have her signed up as a demonstrator by now. Anyway here's the card and just look at the cute crocheted flower – which she made herself. Thanks for a lovely day.
Hope you all had a wonderful Mother's Day too.


text:
Join USAP College!
If you are part of the college parkour community and would like to join USAP College and WFPF, contact us to find out more information.
Email USA Parkour Collegiate Directors:email@example.com
Welcome to USAP College!
We are a group of dedicated parkour athletes FROM the college parkour community working FOR the college parkour community. Leadership by current and former leaders in the college parkour community ensures we are addressing the most relevant and crucial issues for the future of collegiate parkour.
USAP College understands the problems parkour clubs face. We have been there ourselves.
Our goal is to share our cumulative knowledge with you, saving you time and getting you back to on campus training. Our approach is personal and our advice is real, practical and from experience.
For the most up-to-date info and news "like" us on Facebook!
Get a taste of the future of USAP College at usaparkour.org/college.
Want to start a club?
Don't know where to start? Let us help you get started!
USAP College was built from a desire to offer to college groups practical tools like insurance, personal club building support/tips, sponsorship and fundraising support, event sanctioning in addition to discounts for certifications and affordable shoes. We continue to build what we offer and strive to ensure an organization that college administrators can rely on for structure, safety and liability answers and at the same time offering direct support to the students.Already have a club?
We have searched the country to find clubs big and small so we can connect you to those clubs. We want to bring the community together whether it be through college parkour invitationals, college parkour video contests or sharing of news, videos and ideas.
Read our College blog HERE!


text:
Register to create your own "My Trefis" of stocks, news, and people that interest you.
©Copyright 2017 Insight Guru Inc. All Rights Reserved.
By using the Site, you agree to be bound by our Terms of
Use. Financial market data powered by Quotemedia.com.
Consensus EPS estimates are from QuoteMedia and are updated every weekday.
All rights reserved.
NYSE/AMEX data delayed 20 minutes. NASDAQ and other
data delayed 15 minutes unless indicated.


text:
Since it had been a while, the Densho staff took some time to review our terminology policy and the "A Note on Terminology" statement on our website. Issues on terminology in general go back at least to the 1970s, when a series of landmark articles by Raymond Okamura noted the euphemistic quality of the official terms used by the government to describe the "relocation" of Japanese American aliens and "non-aliens" during World War II to "relocation centers," all of which connoted a benign process undertaken for the benefit of the "evacuees," "residents," and "colonists." Since that time, the Japanese American community has pushed to enforce the use of more fitting terminology: "mass forced removal," "exclusion," "inmates," and so forth with various levels of success. There were notable battles over the use of the term "concentration camp" in the historical markers at Manzanar and Tule Lake in the 1970s and another waged by the Japanese American National Museum in 1990s when they took their "America's Concentration Camps" exhibition on the road. In recent years, an effort called "The Power of Words" has taken on the terminology issue anew.
At Densho, the terminology policy and statement was put together when the organization started in the 1990s. When we reviewed it, we found that little really needed to be changed. The policy mostly points out the euphemistic terminology that had once been used and recommends that it not be used any longer except as part of a direct quote or when trying to make a point about the terms themselves. It also explains the distinction between "internment" and "internment camps" and what was done to the vast majority of Japanese Americans, cautioning about the proper usage of these terms. For the most part, the policy doesn't state that this or that term must be used, as opposed to pointing out which terms should not be used or should be used with great caution.
The policy did indicate a preference for referring to both the temporary and longer-term camps in which Japanese Americans removed from their West Coast homes were held. Because no alternative term has come to be widely accepted, we had decided to use the euphemistic term "assembly center"—in quotes when referred to by itself and in capital letters when used as part of a proper noun, e.g. "Pomona Assembly Center." For the long-term camps run by the War Relocation Authority, we had decided to use "incarceration camp" internally (most notably in the tagging of items in our archive) in part to stay away from any controversy that surrounded the use of the term "concentration camp." We had hoped that that term would eventually be one that would become more widely used in the community.
This is the one thing we did decide to change. Since the term "incarceration camp" has not caught on the last decade plus—we seem to be the only ones using it—we have decided to go with "concentration camp" as our preferred term and the one that we will use internally. As before our "Note on Terminology" won't be prescriptive—as in everyone connected with Densho must use it all the time—but it will move to the top of the list of the terms we prefer. We did decide to keep the policy on "assembly centers" even while recognizing the inconsistency ("Turlock Assembly Center" versus "Gila River concentration camp") between the ways we refer to these two types of camps.
What are your thoughts on this change and on the terminology issue in general? Is there something else that we need to consider? Is there any good reason not to do this? We'd be interested in hearing your thoughts.


text:
The iPhone 5 Apple's 6th version, and 4th major design revision, of the iPhone. It might well have been inevitable, and still be working its way towards Jonathan Ive's Platonic ideal, but it's also a fascinating visual evolution of case shrinking, screen lengthening, and materials improving over generations.
We've done the iPhone 5 in both stunning portrait, and in intimate macro. Here's the Darwinian march of iPhone designs through the years, from the original 2007 iPhone to the 2009 iPhone 3GS to the 2011 iPhone 4S to the brand new 2012 iPhone 5.
Here are the backs, from aluminum to plastic to glass and back to aluminum.
And the dock connector, from 30-pin to Lightning, as well as the speaker and mic grills, and the movement of the 3.5mm headset jack. (Side by side and stacked.)
The controls on the side, stacked, from rockers to buttons.
The SIM cards both in trays and naked, from mini- to micro- to nano-SIM.
And the connector, from the new Lightning to the old 30-pin Dock.
All shots taken with a Canon 5D Mark III and a Canon EF 50mm f/1.4 USM and an EF 100mm F2.8 L IS USM Macro lens, embedded at HiDPI for iPhones, iPad 3, and Retina MacBook Pro.


text:
Protect your Sony Xperia Z4v with a Black Ice Tempered Glass Screen Protector. It may seem like magic, but trust us, it's the good kind. When you lay our custom cut Black Ice Edition screen guard over your freshly cleaned touch screen and press it in place it will affix itself in a way that science has trouble explaining. The optical grade tempered glass is incredibly strong, scratch resistant and treated to repel annoying smudges. Black Ice by Gadget Guard; premium protection that is just as cool as it is clear.
This optical grade tempered glass is incredibly durable, scratch resistant and treated to repel smudges. Our Black Ice Edition is built to withstand the bumps of your day-to-day life so you can live worry-free.
Black Ice Edition, tempered glass protection for everyday life.
Replacements for the Life of Your Device
Only Pay for Shipping and Processing.
Your guard is made to absorb the shock of a fall and keep your screen safe, which means your guard may break. If your guard cracks, breaks, becomes scratched or is otherwise damaged while protecting your device, we will replace it!.
Click here for details:
The team at Gadget Guard has worked diligently for years to earn a reputation for offering top-quality products, backed up by truly superior customer service. We personally use and love the products we manufacture and sell. Electronic devices are expensive; so if you are going to invest your hard-earned cash in a sweet device, we invite you to protect your investment with Gadget Guard. Our products demonstrate our core principle: Safe Can Still Be Sexy™
Our products are guaranteed for the life of the devices they protect.
To register your Gadget Guard and get a replacement, follow the steps below:
We offer three different fullfilment options:
Shipping costs listed below are per replacement of Black Ice Tablet and Black Ice Cornice Edition
Our guarantee also covers damage caused by the user during the initial application of the product. You will need to register your product and follow the above directions in order to receive your replacement.
If you have any questions during the process please contact our customer service department through our Contact Us page.
(Shipping options and time frames are for domestic orders only. Orders shipping to Canada will experience delays in transit due to custom clearance)


text:
Congratulations on your offer of admission to the Eberly College of Science! Now that you have been accepted to University Park, we hope you will join us for one of our Accepted Student Programs to learn more about Penn State academics and student life.
This Accepted Student Program visit will include an admissions information session in Eisenhower Auditorium, followed by a session with the Eberly College of Science. The college session will end at approximately 12:30 p.m., at which time you may depart campus; or, you can choose to stay for a campus tour, residence hall tour, and an information fair featuring Penn State resources (all are optional). Tours will depart continuously from the HUB between 12:30 - 3:00 p.m., and you may arrive at any point during that time frame to go on either of the tours. The campus walking tour is approximately 45 minutes in length, and the residence hall tour is approximately 20 minutes in length.
If you choose to stay for the resource fair or the tours, you may enjoy lunch on your own at a dining commons, at select eateries at the Hetzel Union Building (HUB), or at a downtown State College restaurant. To register for this visit, please log in to MyPennState. Reservations are required for our Accepted Students Programs and they tend to fill quickly, so make plans soon.
Congratulations and welcome to the Penn State family!


text:
Best Usenet Service 2019- Fast, Reliable, Secure.
- Max out your broadband connection!
NewsDemon Newsgroups provides the fastest USENET access whether you have a 5Mbps or 1000Mbps connection. With servers in the United States and Europe, NewsDemon provides un-throttled newsgroups access through 256-Bit SECURE server connections.
- Reliable Binary Retention up to 3993 Days!
Newsgroup retention is a measure of how long we keep a given article active on our news server for you to access. Currently we are spooling at 3993 days retention in binary newsgroups and are not expiring text newsgroups!
- Trustworthy: Security and Privacy are Important!
NewsDemon Newsgroups provides 256-Bit SSL Encrypted Connections. We will never share your information with outside parties or track your usage unless required by law. We will not threaten to raise prices to entice you to join us, we value your intelligence.
- U.S. and European News Server Farms!
With direct peering connections between the U.K. and our European server farm, our U.K. and European customers will experience the same blazing fast speeds we offer our U.S. customers.
NewsDemon User Checklist
- NewsgroupReviews Editors Choice
- Binary Retention: up to 3993 Days
- Text Retention: 3993 days
- Completion: 99%+
- Allowed Streams: 50
- Uncensored Newsgroups: 107,000+
- Servers: United States (1), Europe (2)
- Free Headers: YES
- Unlimited Accounts: YES
- 256-Bit Encrypted Access: YES
- Paypal™ Accepted: YES
- UK/EU/USA Debit: YES
- Worldpay Accepted:YES
Follow Us On:
Usenet News
- Genealogy Research with USENET Newsgroups
USENET hosts a variety of genealogy newsgroups including extensive research by the newsgroup community that has expanded genealogy research since 1995.
- First Official Announcement of USENET
NewsDemon has the only known internet copy of the FIRST official announcement of the birth of USENET by Tom Truscott and Jim Ellis. We would like to thank Mr. Tom Truscott for providing this info!
- Learn About USENET with our Dashboard
Looking for some information on USENET? We have compiled a long list of information to help answer a common question: What Is USENET? There are tons of good links to information and resources to help everyone understand about the wonderful world of USENET.
NewsDemon Customer Comments
Julien, Perpignan, France
The best price for the best service, support and innovation. Everytime i was tempted to go somewhere else, they managed to keep me in by ge....
Mc. Jackson, Boston, MA
It's been a great experience with NewsDemon.com. I greatly recommend these guys.....
RamDin, AP
Go East or West NewsDemon is the Best!!....
Oswald, London
Hello. I just wanted to say thank you for finally adding Worldpay to your payment options. I have a Solo card, and couldn't find any of yo....
- Usenet Fundamentals
- Member Benefits
- Advantages
- Newsgroup Retention
- Usenet Terms
- History Of Usenet Newsgroups
- Blog


text:
Your browser does not support iframes.
I am compelled to write to the citizens of Trimble County about a judicial official we elected to represent our community. We need a fresh person who understands what it means to be a "gatekeeper" of the law, and that he or she must practice the spirit of the law, not the letter of the law.
Thanks to Jay Montgomery and his youth for visiting the nursing homes. That could be an example for all of us. There are many lonely people in our county.
Lead on Jay.
Ruth Kemper
The 2009 Carroll County Senior Event held Thursday evening was again a big success as senior citizens from Carroll and surrounding counties came to enjoy "Memories of the Family Farm." We wish to thank the hard work of the planning committee, donations from the community and time given by all of the volunteers who helped build buildings, gather and set up the old farm equipment and other items, and set up the day of the event. Mike Humphrey and his team started building and preparing the grounds three days before the event -- a tremendous feat.
I have no idea why some people in Riverwood Estates have to drive so fast.
There are small children and pets in the neighborhood and two speed limit signs on Riverwood Drive. One at the bottom on the right as you come up the hill and the other at the top just below Parkside Drive. Please drive responsibly.
E. Peebles
I would like to thank all volunteers involved in planning and working our 2009 Tobacco Festival and Parade (job well done).
It was very heart-breaking to see pageants and ATV's lead the parade before the American Flag, veterans and active duty soldiers.
Has it come to the point that beauty is more important than our freedom?
Our Carroll County Band of Gold was placed toward the end of the parade. Do we not support our schools anymore? These kids missed a competition so that they could march in their hometown parade.
It is difficult to believe that 40 years have elapsed since the United States first landed men on the moon, an anniversary that was observed by the national media last week.
In 1969, I was preparing to enter my senior year in high school. Today, I qualify at many restaurants for the senior citizen discount.
I was fascinated by the astronauts and the space race as a child growing up in Madison, Ind. I took special interest in the career of one astronaut in particular, after my dad told me the man was from another small Indiana town only 50 or so miles away.
I have seen the flyers notifying everyone of the Second Sunday Fitness Walk that is being held on Oct. 11 from 2-5 p.m.
I hope everyone in the community will take advantage of this event.
I, along with several friends, attended the Second Sunday Fitness Walk last year and thoroughly enjoyed it.
The walk was not strenuous and we had time to socialize with other attendees.
There were drawings for prizes and plenty of water provided.
I want to commend Kelley Crutcher for having the courage to speak out about property taxes.
I hate property taxes more than any other tax because you do not really own your home/land as long as you have to make a yearly payment to the government just to keep it.
On Saturday, Sept. 12, the Carrollton Police Department-in conjunction with the Carroll County Regional Detention Center-held our fourth annual Shop-With-A-Cop Trail Ride. It proved to be a very successful venture for our yearly Shop-With-A-Cop event. We had a total of 76 riders and $1,412. was raised to help fund this program.
We are now in our ninth year of Shop-With-A-Cop and have helped almost 600 children and spent more than $100,000 to provide Christmas to children in our county who otherwise might not receive anything during the holiday season.
The housing authority of Carrollton recently hosted its' 10th annual Neighborhood Watch Picnic. It was an evening of good food, fun and fellowship among neighbors. Attendance increased this year indicating the popularity of this annual event.
We owe a great debt of gratitude to the Carroll County Fair Board for providing a tent, chairs, drink tubs and ice and to Mike Humphrey and crew for tent erection and takedown.
Here's the whole country in a state of economic depression. The worst in decades.
Businesses shutting down, people losing jobs, their homes and vehicles. The President ordered Congress to pass bills to pass out stimulus monies to save banks and the auto industry, which in turn we hope will save homes and jobs.
There's talk in the news media that those receiving social security benefits will not see a cost of living increase for the next two years.
As a citizen of the United States, I was under the impression that everyone was equal with the same rights and expectations to be treated the same as others. However, as a resident of Ghent, I have found that is not the truth.
I moved into the city about three years ago and the complaints started shortly thereafter. There are members of city council who are constantly looking for something to complain about here.
I would like to thank all the individuals and companies that helped to make the 14th annual Charity Golf Scramble for the Kentucky Sheriffs' Boys and Girls Ranch a huge success. Our combined effort with the Owen County Sheriffs' office helped to raise more than $11,000. This ranch facility allows children, who otherwise may never have this experience, attend summer camp each year and participate in various activities as well as educational classes. Again thank you for your support and help.
The 20th Annual Bedford Bash was a hit. Also, we raised more than $500 for the needy kids' Christmas Party from the sale of the T-shirts.
I, personally, would like to thank the sponsors, merchants, vendors and volunteers for your support of the Bash, and would like to hear any suggestions of ways to improve the event.
Without your commitment and the help of the bank's staff, the Bash would not be the event it is. Thank you.
Jon A. Dunlap, president
Bedford Loan and Deposit Bank
I'm not really what you'd call a gambler, but I do enjoy going to Belterra on occasion to play video poker. I never take much to spend – or, I should say, lose; I'm fully aware of my limitations. It's a good thing, too. A month ago, I would have bet everything I own that the last option Milton-Madison Bridge Project officials ever would choose was to
As one of the volunteers for Med Ride, I am writing on behalf of all of us to thank the members of the Carroll County Chamber of Commerce for selecting our group to receive the Community Impact Award at the annual banquet.
What a wonderful surprise. We are very pleased.
Hopefully others that may not have known about the opportunity to be a Med Ride volunteer will now decide to join our group as we are in need of many more people.
Just call the Senior Center building at 732-7026 and ask for Joyce Long, the coordinator.
Though almost nine months retired as director of the public library, I continue to be a citizen advocate for libraries throughout the state. I recently received a copy of an article that appeared in "Planning Commission Journal", Summer 2009. The cover story for this issue was entitled "Libraries, At the Heart of Our Communities" and the editor of this publication goes on for seven pages to extol the importance of libraries to vibrant, healthy communities.
Copyright © 2019
The News-Democrat is your source for local news, sports, events, and information in Carroll County, KY and the surrounding area.


text:
The Scotlaur Inn
Please complete all of the required fields below to inquire about a reservation.
Cancellation, Deposit & Booking Policies
With less than 14 days notice we must be able to re-rent the room for the length of your stay in order to cancel. Cancellation time for graduations & groups reserving 4 or more rooms are refundable only 60 days before arrival unless rebooked for the length of stay.
All regular reservations will be confirmed with a one night deposit charged to your credit card & the balance is due at check in. There are some reservations which have exceptions, see our Cancellation, Refunds & polices section for them on the rates & Polices page.
Check-in Time 2pm Mon. to Fri. & 3pm Sat. & Sun.
Check-out Time 11am everyday
This is a Secure form.
Service Provided by Availability Onlineprivacy policy


text:
Sunday, October 11, 2009
I doubt that any of you have forgotten this contraption but thought that you would like to know that there are dozens of these still in use in western NY by the Amish. Mary Lynn and I love to go to this area especially in the fall. There are so many things about their way of life that are similar to the way we grew up. There is more to come.
Posted by Steve Blood at 8:50 AM
Labels: FROM THE PAST TO NOW
5 comments:
- Ann said...
- October 11, 2009 at 9:48 AM
- Elizabeth said...
I remember the old hayloader. Once, a snake came in with the hay, and Dwight threw it at me (driving the tractor.) Not a smart thing to do, right? Was our hayloader quite so tall? I can't remember.
- October 11, 2009 at 3:25 PM
- Judy said...
Do they really still use these?
- October 11, 2009 at 9:55 PM
- Dwight said...
Liz has a great imagination.
- October 12, 2009 at 9:35 PM
- Elizabeth said...
NOT! I've noticed that it is common to remember the good things that we do, and forget the other.
- October 12, 2009 at 9:50 PM
Subscribe to: Post Comments (Atom)


text:
Browse by Committee Member
Group by: Degree Date (Year Only) | Authors | No Grouping
Number of items: 4.
Goldsmith, Martin (1955) The burning of single drops of fuel in oxidizing atmospheres. Dissertation (Ph.D.), California Institute of Technology. http://resolver.caltech.edu/CaltechETD:etd-12182003-091848
Adamson, Thomas Charles, Jr. (1954) Ignition and Combustion in a Laminar Mixing Zone. Dissertation (Ph.D.), California Institute of Technology. http://resolver.caltech.edu/CaltechETD:etd-11202003-135437
Mueller, Gregg (1952) Optimum range of a wingless rocket about a rotating earth. Engineer's thesis, California Institute of Technology. http://resolver.caltech.edu/CaltechETD:etd-03252009-111732
Shevell, Richard Shepherd (1942) The design and testing of an aerodynamic model of a high speed wind tunnel. Engineer's thesis, California Institute of Technology. http://resolver.caltech.edu/CaltechETD:etd-11192008-145939


text:
Change Password
Edit Profile
My Favorites
Replacement Products
Honeywell Safety Products has a large portfolio of brands with products that can fit all of your needs.
Here you'll find Honeywell's full selection of products to address the Noise hazard.
Narrow search by:
Type view all
Hazard view all
AirSoft Multiple-Use Earplug
Advanced air pocket design, optimized for comfort
Sync™ Digital AM/FM Radio
High quality digital AM/FM radio reception
Sync Electo Helmet
Sync Electo Helmet Digital FM Radio and Stereo
Howard Leight™ Leightning and Thunder Cap Mounted Earmuffs
The Honeywell Howard Leight cap-mounted earmuffs are a unified solution to work with North® hard hats and face shields. The Leightning L3H earmuff is specifically engineered to seamlessly integrate with full brim hard hats to provide an effective unit for workers head and hearing protection.
Honeywell Howard Leight™ Sync® Wireless Earmuff
The Howard Leight™ Sync® Wireless earmuff is the first
"communication" earmuff offered in the Honeywell Howard Leight Sync
family portfolio. This earmuff was designed for the worker that
needs to stay connected; but also need hearing protection in areas
with high environmental noise. The Sync Wireless earmuff can
connect wirelessly to most mobile phone devices via
Bluetooth®.** Making the Sync Wireless earmuff easy to
connect and easy to use.
The Sync Wireless earmuff joins the existing Sync family of
electronic earmuffs from: Sync Stereo- connects to mobile phone or
MP3 for listening only, Sync AMFM Radio- for listening only, Sync
Electo-FM Radio, streaming & hear through
**Bluetooth is a registered trademark of Bluetooth SIG and its
Honeywell Howard Leight HL400 Earplug Dispenser
Your choice in hearing protection
The NEW Honeywell Howard Leight HL400 earplug dispenser built for lightweight, durable convenience. The HL400 accommodates disposable foam earplugs ranging from Max, Max-Lite, Max Small, Laser Lite, FirmFit, X-Treme and Multi Max. Need a refill? Select either the new prefilled canister or our traditional zip top bags and you'll be ready to go!
Honeywell Howard Leight™ X-TREME™ Disposable Earplug
The Honeywell Howard Leight X-TREME earplug is a low cost, reliable alternative to your current foam earplugs. The signature bright orange tapered shape design is available in both corded and uncorded versions. The X-TREME has a higher attenuation, at 32 dB, than most disposable foam earplugs on the market.
QUIETPRO QP100Ex
Intelligent Hearing Protection and Communication System for Industry (Intrinsically Safe)
Intelligent Hearing Protection & Communication System (Military)
QUIETPRO In-Ear Headset
In-Ear Headset (PSEM / Dose Capable)
Honeywell Safety Products900 Douglas PikeSmithfield, RI 02917USA (former Sperian) 800.430.5490USA (former North) 800.430.4110CANADA 888-212-7233
Click this icon to list the data sheets you'd like to download. Once submitted, the list will be saved for up to five days. You may list up to 20 items. Remember, lists that are not submitted will be lost when you either close your browser or log out of My Safety.
Connect with Honeywell Safety:
© Honeywell International Inc.


text:
Start of main content
Prefer to call? We're here to help: 800-SF-CLAIM800-SF-CLAIM
Prefer to call? We're here to help: 888-624-4410888-624-4410
Call 866-855-1212866-855-1212, or contact your agent.
Call 800-SF-CLAIM800-SF-CLAIM, or contact your agent.
First time? Create an account.
Call 877-292-0398877-292-0398 to start your claim.
Was anyone injured, or were more than two vehicles involved?
We can best assist you with a phone call.
Please call 800-SF-CLAIM (800-732-5246).800-SF-CLAIM (800-732-5246).
We're available 24 hours a day, 7 days a week.
Start your claim online, or with the State Farm® mobile app. You can also file your claim by calling 800-SF-CLAIM (800-732-5246) 24/7, or contact your agent, if you prefer.
State Farm will review the details of your claim, determine if the incident is covered, and assess the loss or damage. We'll be in touch if we need additional information, to explain your coverages, or discuss next steps.
We'll provide you with estimate and repair options so you can make an informed decision.
Payments are based on the terms of your policy. State Farm may pay the repairer directly, send payments to your bank account, or send them to you by mail.
This is the process for a typical Auto + Motorcycle claim. The process we apply to your claim may differ based on your policy details, the incident in question, and other, relevant factors.
To learn about the claims process for Home + Personal Property, Health + Life, and other kinds of claims, visit Claims Help.
or call 877-627-5757
Help for severe weather and catastrophe claims.
How to file a small business insurance claim.
Simple, easy processes to file your health or life insurance claim.
Help for when someone files against you, or is injured on your property.


text:
Because there is so much spam out there, IP's are limiting the mail to about 200 per hour unless you are a major user and pay a stiff price per month for the service. We do have occasions that a mailing would go out that was around 600-800 addresses.
I have been told that there may be software that could be purchased for BATCH MAILINGS, and if so, could it be tied into POCO?
Anyone out there in POCO land know of this?