text:
#lang scribble/manual @(require planet/scribble planet/version planet/resolver scribble/eval racket/sandbox (for-label racket/base)) @title{F*dging up a Racket} @author+email["Danny Yoo" "email@example.com"] @;; I'll need an evaluator for some small examples. @(define my-evaluator (call-with-trusted-sandbox-configuration (lambda () (parameterize ([sandbox-output 'string] [sandbox-error-output 'string]) (make-evaluator 'racket #:requires (list (resolve-planet-path `(planet dyoo/bf/parser)))))))) @section{Introduction} If people say that @link["http://racket-lang.org"]{Racket} is just a @link["http://en.wikipedia.org/wiki/Scheme_(programming_language)"]{Scheme}, they are short-selling Racket a little. It's more accurate to say that Racket is a @link["http://docs.racket-lang.org/guide/languages.html"]{language} laboratory, with support for many different languages. Is that really true? Racket does include a nice @link["http://docs.racket-lang.org/guide/macros.html"]{macro} system, which allows a programmer to add in new language constructs. For example, we can get while loops into Racket with relative ease: @codeblock{ #lang racket (define-syntax-rule (while test body ...) (let loop () (when test body ... (loop)))) ;; From this point forward, we've got while loops. (while (not (string=? (read-line) "quit")) (printf "never going to give you up\n") (printf "never going to let you down\n")) } So we can certainly extend the language. But this still looks just like a Scheme. Let's take a closer look at a Racket program. Every Racket program begins with a funny line at the very top that, on first glance, looks redundant: @codeblock{ #lang racket } Why in the world does a Racket program need to say that it's a Racket program? Isn't that obvious? We can understand the situation better by looking at another environment on our desktop, namely the web browser. A web browser supports different kinds of HTML variants, since HTML is a moving target, and browsers have come up with @link["http://en.wikipedia.org/wiki/Quirks_mode"]{crazy rules} for figuring out how to take an arbitrary document and decide what HTML parsing rules to apply to it. @link["http://diveintohtml5.org/"]{HTML 5} tries to make this determination somewhat more straightforward: we can define an HTML 5 document by putting a DOCTYPE element at the very top of the file which self-describes the document as being @emph{html}. @verbatim{
Hello world!} Going back to the world of Racket, we see by analogy that the @litchar{#lang} line in a Racket program is a self-description of how to treat the rest of the program. (Actually, the @litchar{#lang} line is quite bit more active than this, but we'll get to this in a moment.) The @racketmodname[racket] part in the @litchar{#lang} line isn't inevitable: the main Racket distribution, in fact, comes bundled with several languages which can take the place of the word @racketmodname[racket]. Many of these languages (@racketmodname[racket/base], @racketmodname[typed/racket], @racketmodname[lazy]) still look like Racket... but some of them don't. Here's one example: @codeblock{ #lang datalog ancestor(A, B) :- parent(A, B). ancestor(A, B) :- parent(A, C), D = C, ancestor(D, B). parent(john, douglas). parent(bob, john). ancestor(A, B)? } This is an example of a @link["http://en.wikipedia.org/wiki/Datalog"]{Datalog} program that deals with logical relations. Neat! What might be surprising is that the mechanism for using different languages in Racket is wide open. Let's expand our minds. @codeblock{ #lang planet dyoo/bf ++++++[>++++++++++++<-]>. >++++++++++[>++++++++++<-]>+. +++++++..+++.>++++[>+++++++++++<-]>. <+++[>----<-]>.<<<<<+++[>+++++<-]>. >>.+++.------.--------.>>+. } This language does not look like Racket. It looks like line noise. This is @link["http://en.wikipedia.org/wiki/Brainf*ck"]{@tt{brainf*ck}}. Although this language is not included in the main distribution, because it is on @link["http://planet.racket-lang.org"]{PLaneT}, anyone with Racket can easily play with it. Ignoring the question of @emph{why?!!} someone would do this, let's ask another: how do we build this? This tutorial will cover how to build this language into Racket from scratch. Let's get started! @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{The view from high orbit} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; We want to teach Racket what it means when we say something like: @codeblock|{ #lang planet dyoo/bf ,[.,] }| As mentioned earlier, a @litchar{#lang} line is quite active: it tells the Racket runtime how to convert from the surface syntax to a meaningful program. Programs in Racket get digested in a few stages; the process looks something like this: @verbatim|{ reader macro expansion surface syntax ---------> AST -----------------> core forms }| When Racket sees @litchar{#lang planet dyoo/bf}, it will look for a particular module that we call a @emph{reader}; a reader consumes surface syntax and excretes ASTs, and these ASTs are then annotated so that Racket knows how to make sense out of them later on. At this point, the rest of the Racket infrastructure kicks in and macro-expands the ASTs out, ultimately, to a @link["http://docs.racket-lang.org/reference/syntax-model.html#(part._fully-expanded)"]{core} language. So here's what we'll do: @itemlist[ @item{Capture the meaning of @tt{brainf*ck} by writing a semantics module.} @item{Go from the line noise of the surface syntax into a more structured form by writing a parser module.} @item{Connect the pieces, the semantics and the surface syntax parser, by making a reader module.} @item{Profit!}] @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{Flight preparations} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Since we're starting from scratch, let's first make a work directory where we'll keep our source code. I'll call the directory @filepath{bf/}, but you can use whatever name you want. @verbatim|{ $ mkdir bf }| Ultimately, we want to put the fruit of our labor onto @link["http://docs.racket-lang.org/planet/index.html"]{PLaneT}, since that'll make it easier for others to use our work. Let's set up a @link["http://docs.racket-lang.org/planet/Developing_Packages_for_PLaneT.html#(part._devlinks)"]{PLaneT development link} so the Racket environment knows about our work directory. I already have an account on PLaneT with my username @tt{dyoo}. You can @link["http://planet.racket-lang.org/add.ss"]{get an account} fairly easily. If we enter the following at the command line, @verbatim|{ $ planet link dyoo bf.plt 1 0 bf }| we'll make a development link that will associate any module path of the form @racket[(planet dyoo/bf/...)] to our local @filepath{bf/} directory. Later on, when we create a package and upload it to PLaneT, we can drop this development link, and then all the references that use @racket[(planet dyoo/bf/...)] will immediately switch over to the one on the PLaneT server. But does the link actually work? Let's write a very simple module in our work directory, and then see that Racket can find it through PLaneT. @verbatim|{ $ cd bf ~/bf$ cat >hello.rkt #lang racket "hello world" }| Ok, let's see if Racket can find our magnificant @filepath{hello.rkt} module if we use the PLaneTized version of the name. @verbatim|{ ~/bf$ racket Welcome to Racket v5.1.1. > (require (planet dyoo/bf/hello)) "hello world" > }| If we get to this point, then we've got the PLaneT development link in place. @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{The @tt{brainf*ck} language} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; When we look at the definition of @link["http://en.wikipedia.org/wiki/Brainf*ck"]{@tt{brainf*ck}}, it's actually not too bad. There's two bits of state, @itemlist[ @item{a byte array of data, and} @item{a pointer into that data array} ] and it has only a few operations that affect this state: @itemlist[ @item{Increment the data pointer (@litchar{>})} @item{Decrement the data pointer (@litchar{<})} @item{Increment the byte at the data pointer (@litchar{+})} @item{Decrement the byte at the data pointer (@litchar{-})} @item{Write a byte to standard output (@litchar{.})} @item{Read a byte from standard input (@litchar{,})} @item{Perform a loop until the byte at the data pointer is zero (@litchar{[}, @litchar{]})} ] Let's write a module that lets us play with such a system: let's call it @filepath{semantics.rkt}. @filebox["semantics.rkt"]{ @codeblock|{ #lang racket (require rackunit) ;; for unit testing (provide (all-defined-out)) ;; Our state contains two pieces. (define-struct state (data ptr) #:mutable) ;; Creates a new state, with a byte array of 30000 zeros, and ;; the pointer at index 0. (define (new-state) (make-state (make-vector 30000 0) 0)) ;; increment the data pointer (define (increment-ptr a-state) (set-state-ptr! a-state (add1 (state-ptr a-state)))) ;; decrement the data pointer (define (decrement-ptr a-state) (set-state-ptr! a-state (sub1 (state-ptr a-state)))) ;; increment the byte at the data pointer (define (increment-byte a-state) (let ([v (state-data a-state)] [i (state-ptr a-state)]) (vector-set! v i (add1 (vector-ref v i))))) ;; decrement the byte at the data pointer (define (decrement-byte a-state) (let ([v (state-data a-state)] [i (state-ptr a-state)]) (vector-set! v i (sub1 (vector-ref v i))))) ;; print the byte at the data pointer (define (write-byte-to-stdout a-state) (let ([v (state-data a-state)] [i (state-ptr a-state)]) (write-byte (vector-ref v i) (current-output-port)))) ;; read a byte from stdin into the data pointer (define (read-byte-from-stdin a-state) (let ([v (state-data a-state)] [i (state-ptr a-state)]) (vector-set! v i (read-byte (current-input-port))))) ;; we know how to do loops! (define-syntax-rule (loop a-state body ...) (let loop () (unless (= (vector-ref (state-data a-state) (state-ptr a-state)) 0) body ... (loop)))) }|} Ok, that doesn't seem too bad. But of course, we should test this; let's use the @racketmodname{rackunit} unit testing framework and tickle this code. Let's add a little more to the end of @filepath{semantics.rkt}. @filebox["semantics.rkt"]{ @codeblock|{ ;; Simple exercises. (let ([s (new-state)]) (increment-byte s) (check-equal? 1 (vector-ref (state-data s) 0)) (increment-byte s) (check-equal? 2 (vector-ref (state-data s) 0)) (decrement-byte s) (check-equal? 1 (vector-ref (state-data s) 0))) ;; pointer movement (let ([s (new-state)]) (increment-ptr s) (increment-byte s) (check-equal? 0 (vector-ref (state-data s) 0)) (check-equal? 1 (vector-ref (state-data s) 1)) (decrement-ptr s) (increment-byte s) (check-equal? 1 (vector-ref (state-data s) 0)) (check-equal? 1 (vector-ref (state-data s) 1))) ;; make sure standard input is doing something (let ([s (new-state)]) (parameterize ([current-input-port (open-input-bytes (bytes 3 1 4))]) (read-byte-from-stdin s) (increment-ptr s) (read-byte-from-stdin s) (increment-ptr s) (read-byte-from-stdin s)) (check-equal? 3 (vector-ref (state-data s) 0)) (check-equal? 1 (vector-ref (state-data s) 1)) (check-equal? 4 (vector-ref (state-data s) 2))) ;; make sure standard output is doing something (let ([s (new-state)]) (set-state-data! s (vector 80 76 84)) (let ([simulated-stdout (open-output-string)]) (parameterize ([current-output-port simulated-stdout]) (write-byte-to-stdout s) (increment-ptr s) (write-byte-to-stdout s) (increment-ptr s) (write-byte-to-stdout s)) (check-equal? "PLT" (get-output-string simulated-stdout)))) ;; Let's see that we can clear. (let ([s (new-state)]) (set-state-data! s (vector 0 104 101 108 112 109 101 105 109 109 101 108 116 105 110 103)) (set-state-ptr! s 15) ;; [ [-] < ] (loop s (loop s (decrement-byte s)) (decrement-ptr s)) (check-equal? 0 (state-ptr s)) (check-equal? (make-vector 16 0) (state-data s))) }|} Good! Our tests, at the very least, let us know that our definitions are doing something reasonable, and they should all pass. However, there are a few things that we may want to fix in the future, like the lack of error trapping if the input stream contains @racket[eof]. And there's no bounds-checking on the @racket[ptr] or on the values in the data. Wow, there are quite a few things that we might want to fix. But at the very least, we now have a module that captures the semantics of @tt{brainf*ck}. @section{Lisping a language} We might even be cheeky enough to insist that people write @tt{brainf*ck} programs with s-expressions. Let's take that route, and create a @link["http://docs.racket-lang.org/guide/module-languages.html"]{module language} that uses our @filepath{semantics.rkt}. We'll create such a module language in @filepath{language.rkt}. @filebox["language.rkt"]{ @codeblock|{ #lang racket (require "semantics.rkt") (provide greater-than less-than plus minus period comma brackets (rename-out [my-module-begin #%module-begin])) ;; The current-state is a parameter used by the ;; rest of this language. (define current-state (make-parameter (new-state))) ;; Every module in this language will make sure that it ;; uses a fresh state. (define-syntax-rule (my-module-begin body ...) (#%plain-module-begin (parameterize ([current-state (new-state)]) body ...))) (define-syntax-rule (greater-than) (increment-ptr (current-state))) (define-syntax-rule (less-than) (decrement-ptr (current-state))) (define-syntax-rule (plus) (increment-byte (current-state))) (define-syntax-rule (minus) (decrement-byte (current-state))) (define-syntax-rule (period) (write-byte-to-stdout (current-state))) (define-syntax-rule (comma) (read-byte-from-stdin (current-state))) (define-syntax-rule (brackets body ...) (loop (current-state) body ...)) }|} This @filepath{language.rkt} presents @tt{brainf*ck} as a s-expression-based language. It uses the semantics we've coded up, and defines rules for handling @racket[greater-than], @racket[less-than], etc... We have a @link["http://docs.racket-lang.org/guide/parameterize.html"]{parameter} called @racket[current-state] that holds the state of the @tt{brainf*ck} machine that's used through the language. There's one piece of this language that looks particularly mysterious: what's the @racket[#%module-begin] form, and what is it doing? In Racket, every module has an implicit @racket[#%module-begin] that wraps around the entirety of the module's body. We can see this by asking Racket to show us the results of the expansion process; here's a small example to demonstrate. @interaction[#:eval my-evaluator (syntax->datum (expand '(module an-example-module '#%kernel "hello" "world"))) ] Ignore, for the moment, the use of @racket[syntax->datum] or the funky use of @racket['#%kernel]. What we should notice is that Racket has added in that @racket[#%module-begin] around the @racket["hello"] and @racket["world"]. So there's the implicit wrapping that Racket is doing. It turns out that @racket[#%module-begin] can be really useful! In particular, we want to guarantee that every module written in @tt{brainf*ck} runs under a fresh state. If we had two @tt{brainf*ck} programs running, say like this: @racketblock[(require "my-first-bf-program.rkt") (require "my-second-bf-program.rkt")] then it would be a shame to have the two programs clash just because they @tt{brainf*ck}ed each other's data! By defining our own @racket[#%module-begin], we can ensure that each @tt{brainf*ck} module has its own fresh version of the state, and our definition of @racket[my-module-begin] does this for us. Once we've written @filepath{language.rkt}, we can use the language like this: @codeblock|{ #lang s-exp (planet dyoo/bf/language) (plus)(plus)(plus)(plus)(plus) (plus)(plus)(plus)(plus)(plus) (brackets (greater-than) (plus)(plus)(plus)(plus)(plus) (plus)(plus) (greater-than) (plus)(plus)(plus)(plus)(plus) (plus)(plus) (plus)(plus)(plus) (greater-than) (plus)(plus)(plus) (greater-than) (plus) (less-than)(less-than)(less-than) (less-than) (minus)) (greater-than) (plus)(plus) (period) (greater-than) (plus) (period) (plus)(plus)(plus)(plus)(plus) (plus)(plus) (period) (period) (plus)(plus)(plus) (period) (greater-than) (plus)(plus) (period) (less-than)(less-than) (plus)(plus)(plus)(plus)(plus) (plus)(plus)(plus)(plus)(plus) (plus)(plus)(plus)(plus)(plus) (period) (greater-than) (period) (plus)(plus)(plus) (period) (minus)(minus)(minus)(minus)(minus)(minus)(period) (minus)(minus)(minus)(minus)(minus)(minus)(minus)(minus) (period)(greater-than) (plus) (period) (greater-than) (period) }| The @litchar{#lang} line here is saying, essentially, that the following program is written with s-expressions, and should be treated with the module language @filepath{language.rkt} that we just wrote up. And if we run this program, we should see a familiar greeting. Hurrah! ... But wait! We can't just declare victory here. We really do want to allow the throngs of @tt{brainfu*ck} programmers to write @tt{brainf*ck} in the surface syntax that they deserve. Keep @filepath{language.rkt} on hand, though. We will reuse it by having our parser transform the surface syntax into the forms we defined in @filepath{language.rkt}. Let's get that parser working! @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{Parsing the surface syntax} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; The Racket toolchain includes a professional-strength lexer and parser in the @link["http://docs.racket-lang.org/parser-tools/index.html"]{parser-tools} collection. For the sake of keeping this example terse, we'll write a simple @link["http://en.wikipedia.org/wiki/Recursive_descent_parser"]{recursive-descent parser} without using the parser-tools collection. (But if our surface syntax were any more complicated, we might reconsider this decision.) The expected output of a successful parse should be some kind of abstract syntax tree. What representation should we use for the tree? Although we can use s-expressions, they're pretty lossy: they don't record where they came from in the original source text. For the case of @tt{brainf*ck}, we might not care, but if we were to write a parser for a more professional, sophisticated language (like @link["http://lolcode.com/"]{LOLCODE}) we want source locations so we can give good error messages during parsing or run-time. As an alternative to plain s-expressions, we'll use a data structure built into Racket called a @link["http://docs.racket-lang.org/guide/stx-obj.html"]{syntax object}; syntax objects let us represent ASTs, just like s-expressions, and they also carry along auxiliary information, such as source locations. Plus, as we briefly saw in our play with @racket[expand], syntax objects are the native data structure that Racket itself uses during macro expansion, so we might as well use them ourselves. For example, @interaction[#:eval my-evaluator (define an-example-syntax-object (datum->syntax #f 'hello (list "hello.rkt" 1 20 32 5)))] The first argument that we pass into @racket[datum->syntax] lets us tell Racket any lexical-scoping information that we know about the datum, but in this case, we don't have any on hand, so we just give it @racket[#f]. Let's look at the structure of this syntax object. @interaction[#:eval my-evaluator an-example-syntax-object (syntax? an-example-syntax-object) (syntax->datum an-example-syntax-object) (symbol? (syntax->datum an-example-syntax-object)) ] So a syntax object is a wrapper around an s-expression, and we can get the underlying datum by using @racket[syntax->datum]. Furthermore, this object remembers where it came from, and that it was on line 1, column 20, position 32, and was five characters long: @interaction[#:eval my-evaluator (syntax-source an-example-syntax-object) (syntax-line an-example-syntax-object) (syntax-column an-example-syntax-object) (syntax-position an-example-syntax-object) (syntax-span an-example-syntax-object) ] Now that we have some experience playing with syntax objects, let's write a parser. Our parser will consume an @link["http://docs.racket-lang.org/reference/ports.html"]{input-port}, from which we can read in bytes with @racket[read-byte], or find out where we are with @racket[port-next-location]. We also want to store some record of where our program originated from, so our parser will also take in a @racket[source-name] parameter. We'll write the following into @filepath{parser.rkt}. @filebox["parser.rkt"]{ @codeblock|{ #lang racket ;; The only visible export of this module will be parse-expr. (provide parse-expr) ;; While loops... (define-syntax-rule (while test body ...) (let loop () (when test body ... (loop)))) ;; ignorable-next-char?: input-port -> boolean ;; Produces true if the next character is something we should ignore. (define (ignorable-next-char? in) (let ([next-ch (peek-char in)]) (cond [(eof-object? next-ch) #f] [else (not (member next-ch '(#\< #\> #\+ #\- #\, #\. #\[ #\])))]))) ;; parse-expr: any input-port -> (U syntax eof) ;; Either produces a syntax object or the eof object. (define (parse-expr source-name in) (while (ignorable-next-char? in) (read-char in)) (let*-values ([(line column position) (port-next-location in)] [(next-char) (read-char in)]) ;; We'll use this function to generate the syntax objects by ;; default. ;; The only category this doesn't cover are brackets. (define (default-make-syntax type) (datum->syntax #f (list type) (list source-name line column position 1))) (cond [(eof-object? next-char) eof] [else (case next-char [(#\<) (default-make-syntax 'less-than)] [(#\>) (default-make-syntax 'greater-than)] [(#\+) (default-make-syntax 'plus)] [(#\-) (default-make-syntax 'minus)] [(#\,) (default-make-syntax 'comma)] [(#\.) (default-make-syntax 'period)] [(#\[) ;; The slightly messy case is bracket. We keep reading ;; a list of exprs, and then construct a wrapping bracket ;; around the whole thing. (let*-values ([(elements) (parse-exprs source-name in)] [(following-line following-column following-position) (port-next-location in)]) (datum->syntax #f `(brackets ,@elements) (list source-name line column position (- following-position position))))] [(#\]) eof])]))) ;; parse-exprs: input-port -> (listof syntax) ;; Parse a list of expressions. (define (parse-exprs source-name in) (let ([next-expr (parse-expr source-name in)]) (cond [(eof-object? next-expr) empty] [else (cons next-expr (parse-exprs source-name in))]))) }|} This parser isn't anything too tricky, although there's a little bit of messiness because it needs to handle brackets recursively. That part is supposed to be a little messy anyway, since it's the capstone that builds tree structure out of a linear character stream. (If we were using a parenthesized language, we could simply use @racket[read-syntax], but the whole point is to deal with the messiness of the surface syntax!) Let's see if this parser does anything useful: @interaction[#:eval my-evaluator (define my-sample-input-port (open-input-string ",[.,]")) (define first-stx (parse-expr "my-sample-program.rkt" my-sample-input-port)) first-stx (define second-stx (parse-expr "my-sample-program.rkt" my-sample-input-port)) second-stx (parse-expr "my-sample-program.rkt" my-sample-input-port)] Good! So we're able to parse syntax objects out of an input stream. @interaction[#:eval my-evaluator (syntax->datum second-stx) (syntax-source second-stx) (syntax-position second-stx) (syntax-span second-stx)] And as we can see, we can explode the syntax object and look at its datum. We should note that the parser is generating syntax objects that use the same names as the defined names we have in our @filepath{language.rkt} module language. Yup, that's deliberate, and we'll see why in the next section. We mentioned that the parser wasn't too hard... but then again, we haven't written good traps for error conditions. This parser is a baby parser. If we were more rigorous, we'd probably implement it with the parser-tools collection, write unit tests for the parser with @racketmodname[rackunit], and make sure to produce good error messages when Bad Things happen (like having unbalanced brackets or parentheses. @;; Yes, the unbalanced parentheses here is a joke. I wonder if anyone will correct me for it. Still, we've now got the language and a parser. How do we tie them together? @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{Crossing the wires} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; This part is fairly straightforward. We have two pieces in hand: @itemlist[@item{A parser in @filepath{parser.rkt} for the surface syntax that produces ASTs} @item{A module language in @filepath{language.rkt} that provides the meaning for those ASTs.} ] To combine these two pieces together, we want to define a @link["http://docs.racket-lang.org/guide/hash-lang_reader.html"]{reader} that associates the two. When Racket encounters a @litchar{#lang} line of the form: @codeblock{ #lang planet dyoo/bf } it will look for a reader module in @filepath{lang/reader.rkt} and use it to parse the file. Racket provides a helper module called @racketmodname[syntax/module-reader] to handle most of the dirty work; let's use it. Make a @filepath{lang/} subdirectory, and create @filepath{reader.rkt} in that subdirectory, with the following content: @filebox["lang/reader.rkt"]{ @codeblock|{ #lang s-exp syntax/module-reader (planet dyoo/bf/language) #:read my-read #:read-syntax my-read-syntax (require "../parser.rkt") (define (my-read in) (syntax->datum (my-read-syntax #f in))) (define (my-read-syntax src in) (parse-expr src in)) }|} The second line of the file tells @racket[syntax/module-reader] that any syntax objects that come out are intended to take on their semantics from our language. @racket[syntax/module-reader] is predisposed to assume that programs are read using @racket[read] and @racket[read-syntax], so we override that default and plug in our @racket[parse-expr] function into place. Now that we have all these pieces together, does any of this work? Let's try it! @verbatim|{ $ cat hello2.rkt #lang planet dyoo/bf ++++++[>++++++++++++<-]>. >++++++++++[>++++++++++<-]>+. +++++++..+++.>++++[>+++++++++++<-]>. <+++[>----<-]>.<<<<<+++[>+++++<-]>. >>.+++.------.--------.>>+. $ racket hello2.rkt Hello, World! }| Sweet, sweet words. @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @section{Landing on PLaneT} @;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Finally, we want to get this work onto @link["http://docs.racket-lang.org/planet/index.html"]{PLaneT} so that other people can share in the joy of writing @tt{brainf*ck} in Racket. Let's do it! First, let's go back to the parent of our work directory. Once we're there, we'll use the @tt{planet create} command. @verbatim|{ $ planet create bf planet create bf MzTarring ./... MzTarring ./lang... WARNING: Package has no info.rkt file. This means it will not have a description or documentation on the PLaneT web site. $ ls -l bf.plt -rw-rw-r-- 1 dyoo nogroup 3358 Jun 12 19:39 bf.plt }| There are a few warnings, because we haven't defined an @filepath{info.rkt} which provides metadata about our package. Good, diligent citizens would @link["http://docs.racket-lang.org/planet/Developing_Packages_for_PLaneT.html#(part._.Create_an__info_rkt__.File__.Optional_)"]{write an @filepath{info.rkt} file}, so let's write one. @filebox["info.rkt"]{ @codeblock|{ #lang setup/infotab (define name "bf: a brainf*ck compiler for Racket") (define categories '(devtools)) (define can-be-loaded-with 'all) (define required-core-version "5.1.1") (define version "1.0") (define repositories '("4.x")) (define scribblings '()) (define primary-file "language.rkt") (define blurb '("Provides support for the brainf*ck language.")) (define release-notes '((p "First release"))) }|} Before we upload the package, let's make sure the @filepath{bf.plt} package works for us locally. We'll simulate an installation. First, let's break the development link. @verbatim{ $ planet unlink dyoo bf.plt 1 0 } If we try running our test program from before, it should fail on us. @verbatim{ $ racket hello2.rkt require: PLaneT could not find the requested package: Server had no matching package: No package matched the specified criteria } Ok, that was expected. Since we've dissolved the development link, and since we haven't uploaded the package onto the PLaneT network yet, we see the error that we expect to see. Next, let's use @tt{planet fileinject} to simulate an installation of our package from PLaneT. @verbatim|{ $ planet fileinject dyoo bf.plt 1 0 planet fileinject dyoo bf.plt 1 0 ============= Installing bf.plt on Sun, 12 Jun 2011 19:49:50 ============= raco setup: Unpacking archive from /home/dyoo/bf.plt raco setup: unpacking README in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: unpacking hello.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: unpacking hello2.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: making directory lang in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: unpacking reader.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./lang/ raco setup: unpacking language.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: unpacking parser.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: unpacking semantics.rkt in /home/dyoo/.racket/planet/300/5.1.1/cache/dyoo/bf.plt/1/0/./ raco setup: version: 5.1.1 [3m] ... }| Lots and lots of output later, the package should be installed. If we try running our test program again... @verbatim{ $ racket hello2.rkt Hello, World! } Good! This simulates the situation where the package has been installed from PLaneT. Once we're finally satisfied with the package's contents, we can finally upload it onto PLaneT. If you log onto @link["http://planet.racket-lang.org"]{planet.racket-lang.org}, the user interface will allow you to upload your @filepath{bf.plt} package. @section{Acknowledgements} Very special thanks to @link["http://www.cs.brown.edu/~sk/"]{Shriram Krishnamurthi} for being understanding when I told him I had coded a @tt{brainf*ck} compiler. Thanks also to Guillaume Marceau, Rodolfo Carvalho, and Eric Hanchrow for grammar and spelling checks. Shoutouts to the PLT group at Brown University --- this one is for you guys. :) @;; Ha! Closing parentheses.


text:
front page
List of Americans Abroad
Boyd has goal, assist in Rapid draw; Everton exits FA Cup without Howard.
AZ's Altidore sets U.S. record for overseas goals; Castillo is injured.
Altidore 2 goals, assist for AZ stun Ajax 3-0, tie Dempsey record.
Dempsey will miss one or two weeks with calf injury; Shea debuts.
Altidore remains on fire, scores 21st goal in AZ draw.
Cherundolo has arthroscopic surgery on left knee; his return is unknown.
In Howard-Guzan net duel, Everton and Aston Villa draw 3-3.
Spurs' Dempsey deals Man. United another blow with goal for 1-1 draw.
Holden returns to Bolton as reserve after long rehabiliation of knee injury.
Packwood suffers serious leg break for Birmingham City; Dempsey nets pair.
Guzan, Aston Villa are shelled in pair of Premier League routs.
Parkhurst moves from Denmark champ Nordsjælland to lowly Augsburg of Bundesliga.
Onyewu scores in stoppage time for Málaga to salvage Copa del Rey draw.
Boyd scores decisive goal as Rapid Wien edges Wacker Innsbruck 2-1.
Howard's four saves send Everton past Spurs, Dempsey 2-1.
Dempsey makes critical contribution to Spurs' advancement in Europa League.
Dempsey makes visit to Fulham and helps Tottenham Hotspur to shutout win.
Wooten's two tallies lead Sandhausen past Energie Cottbus 3-1.
Demspey begins to excel for Spurs while Friedel loses his job in goal.
Torn hamstring shuts down Bocanegra for rest of 2012.
Dempsey's relief appearance can't save Spurs in Arsenal rout.
Onyewu scores in first start for Málaga, which survives in Copa del Rey.
Dempsey fails on late penalty kick, Tottenham Hotspur is bounced from Capitol One Cup.
Despite Friedel's best efforts, Spurs defense is no match for Chelsea in 4-2 loss.
Despite scoring prowess, Altidore runs into stretch of bad luck.
Friedel sees his record streak end as Lloris replaces him in Spurs net.
Dempsey, Friedel help Tottenham to rare road victory at Manchester United.
Johnson, Williams find net for Hoffenheim in 3-1 win over Hannover, Cherundolo.
Altidore score three, assists another, leading Alkmaar to 4-0 victory over Roda.
Boyd scores three more, leads Rapid Wien to pair of victories.
Friedel's EPL record streak might be at risk with Spurs' acquisition of Lloris.
Liverpool deal dashed, Fulham sends Dempsey to Tottenham Hotspur; Onyewu, Bocanegra move.
Americans Abroad
By Robert Wagman (in Washington, D.C.)
(Monday, March 18, 2013) -- United States striker Jozy Altidore scoring his 18th goal in 26 Dutch Eredivisie matches -- his 25th strike in all competitions -- but it wasnt enough for AZ Alkmaar which dropped a 3-2 decision yesterday to visiting Ajax Amerstrerdam, the league leader.
Altidores 18 tallies place him fourth in the goal-happy Eredivisie.
Altidores goal in the 74th minute, assisted by midfielder Adam Maher, closed his sides deficit to 3-2.
With seven matches remaining in the 18-team league, AZ is tied for 14th place at 6-13-8 with 26 points with RKC Waalwijk, also 6-13-8. The last-place club is relegated, while the next two teams in the standings play off with the loser relegated. In 16th place is Roda JC (5-12-10), only one point behind AZ and Waalwijk.
American fans received some good news from the English Premier League when midfielder Clint Dempsey returned to action after sitting out with a calf injury. He played the second half for Tottenham Hotspur in a costly 1-0 loss to Fulham, his EPL team from 2007-12.
Dempsey replaced defender Michael Dawson as manager Andre Villas-Boas made an effort to gain superiority in the midfield.
Dempsey will join the U.S. men for two upcoming CONCACAF World Cup qualifying matches -- Friday against Costa Rica in Colorado and March 26 at Mexico.
Despite his recent lack of action, U.S. manager Jürgen Klinsmann is expecting much from Dempsey. We are confident he can go the distance in both games, Klinsmann told a media conference call today.
Brad Friedel continues to serve as the Tottenham reserve goalkeeper.
Spurs (16-8-6) are in fourth place with 54 points, one point behind Chelsea (16-6-7), which has a game in hand. The top three finishers earn entry into the next European Champions League while fourth place earns a pass into the Champions League qualification round.
Elsewhere in the Premier League, U.S. keeper Brad Guzan had five saves for Aston Villa in a 3-2 victory over Queens Park Rangers.
Villa (7-14-9, 30 points), in 17th place, is one spot and three points clear of the relegation zone, but only four points below 11th place with eight matches remaining.
U.S. defender Eric Lichaj did not dress for Villa.
U.S. central defender Geoff Cameron played 90 minutes for Stoke City in a 0-0 draw with West Bromwich Albion.
U.S. midfielder Brek Shea did not dress for Stoke.
U.S. keeper Tim Howard remains sidelined with fractured bones in his back for Everton, which lost 2-0 to Manchester City.
In the second-tier English League Championship, U.S. defender Jonathan Spector started, but lasted only five minutes before injuring ankle ligaments for Birmingham City in a 1-0 decision over Middlesbrough.
English-American midfielder Seb Hines was not dressed for Middlesbrough.
No other American played last weekend in the Championship. Defender Zak Whitbread was dressed, but didnt play for Leicester City. Midfielder Conor Doyle was dressed, but didnt play for Derby County.
Defender Tim Ream and midfielder Stuart Holden were dressed for Bolton Wanderers.
In the third-tier League One, American defender Frank Simek went the distance for Carlisle United in a 4-1 loss to Leyton Orient
American striker Mike Grella dressed, but did not play for Scunthorpe United in its 1-0 loss to Notts County.
In the German Bundesliga, German-American midfielder Jermaine Jones went 90 minutes for FC Schalke 04 in a 3-0 road loss to 1. FC Nürnberg.
German-American defender Timmy Chandler played the first 84 minutes for the winners.
German-American midfielder Danny Williams went 90 minutes in TSG Hoffenheim in a 0-0 draw with 1. FSV Mainz 05.
Shawn Parker the young German American foward who remains U.S. eligible, played 90 minutes for Mainz. German-American defender Fabian Johnson has a hip ailment and was unavailable to Hoffenheim.
U.S. defender Steve Cherundolo continues his long recovery from arthroscopic surgery on his left knee for Hannover 96 and missed a 1-0 road loss to Borussia Mönchengladbach.
U.S. defender Michael Parkhurst was not dressed for FC Augsburg, while American keeper David Yelldell was not dressed for Bayer Leverkusen.
In the 2. Bundesliga, German-American striker Andrew Wooten went the distance and scored a goal for SV Sandhausen in its 2-2 draw with VfR Aalen.
German-American Alfredo Morales went the distance on the back-line for Hertha Berlin in a 0-0 draw at host 1860 Munich.
American forward Bobby Wood was dressed, but didnt play, while defender John Anthony Brooks was not dressed for Hertha.
After starting in the prior outing, American midfielder Joseph Gyau dressed, but didnt play for FC St. Pauli in a 4-2 loss to Union Berlin.
In Italys Serie A, U.S. midfielder Michael Bradley played the final 24 minutes for AS Roma in a 2-0 shutout of Parma.
In the Austrian Bundesliga, German-American Terrence Boyd went 90 minutes for Rapid Wien in a 1-1 draw with Admira.
In Belgium, U.S. midfielder Sacha Kljestan went the distance for Anderlecht in a 1-1 draw at Gent.
In Spains Primera Division, U.S. defender Oguchi Onyewu dressed, but didnt play for Málaga in its 2-0 setback to Espanyol.
In the Segunda Division, U.S. defender Carlos Bocanegra dressed, but didnt play for Racing Santander in a 1-1 draw with Xerez.
In Turkey, U.S. midfielder Maurice Edu went 90 minutes for Bursaspor in its 3-2 triumph over Trabzonspor.
In Denmarks Superliga, U.S. defender Clarence Goodson went 90 minutes in Brøndby IF in a 1-1 draw with FC Midtjylland.
American striker Charlie Davies played the final minute for Randers FC in its 1-0 win over Silkeborg IF.
American forward Conor OBrien started for FC Nordsjælland, but its game with Aalborg was suspended because of weather.
In Norway, the Eliteserien season has begun. U.S. midfielder Mix Diskerud went the distance for Rosenborg BK in a 1-0 whitewash of Odd Grenland.
American forward Josh Gatt went 90 minutes for visiting Molde FK in a 2-1 loss to Viking FK.
American defender Sean Cunningham did no dress for Molde.
American Steve Clark was in goal for Hønefoss BK in a 3-2 loss to IK Start.
In Swedens Svenska Cupen, American midfielder Brian Span played the final 17 minutes for Djurgårdens IF in a 1-1 cup draw with Åtvidaberg FF in a meeting of first-tier Allsvenskan teams.
U.S. midfielder Alejandro Bedoya is sidelined with a thigh injury and did not dress for Helsingborgs IF in a 3-1 Cup win over Gefle IF in another tilt between Allsvenskan sides.
In Mexico, American defender Greg Garza played the first 71 minutes, while midfielder Joe Corona the final 19 minutes for Club Tijuana in a 2-2 draw with Monterrey.
U.S. defender Edgar Castillo remains out for Tijuana following facial surgery for three fractures.
U.S. defender Michael Orozco Fiscal and midfielder DaMarcus Beasley went 90 minutes for Puebla in a 2-1 loss at host Pachuca.
U.S. striker Herculez Gomez went the distance for Santos Laguna in a 2-1 victory over Atlas.
U.S. midfielder José Torres played the first 81 minutes for Tigres in its 1-1 draw with Chivas de Guadalajara.
American defender Jonathan Bornstein dressed, but did not play for Tigres.
Do you have a comment on this story or something to say about soccer in general? Send us a letter.

subset: commoncrawl


text: I have 10.1.079. My machine is Windows 7/Linux dual-boot. The Windows 7 has two users: Admin and User. My scan preferences are weekly/monthly/every 6 months. Regardless of the dsired scan setting (Quick or Normal), it does a scan every re-boot. In fact, today (May 15) I did a scan at 12:04 PM and the 'Next Scan' date is May 02, 2012! When I log into the Admin account the 'Next Scan' date is the same. Zone Alarm (Ext Sec) cannot add one week to today! When I upgraded to this version, I was assured that this problem was fixed. It is NOT!


text:
[url removed, login to view]
I am planning to launch a new site [url removed, login to view] and same for [url removed, login to view]; I have merchant accounts set up. This is a web store for an actual store that sells confectionaries, sweets in Dubai. Need to establish web presence. We have all the list of the products, the categories, and the prices - can do carry-out or delivery service.
Hi there, I am a web site designer with a background in website design and development, graphic design and advertising. I've designed and redesigned many sites. I also offer hosting if you're in need of this service. C もっと
Smart, error-free complete solution assured. contact us for further detail.
Hi, I can provide you with the solution you are looking for. Please contact me to get a list of sample site I have done. I am looking forward to working with you.
I can get started ASAP . I am skilled in flash, html, php, asp, cgi, xml. .quality work . can your site up and running in no time. contact me
If you are looking to establish web presence, you have to do it right. We will not only establish your website, using our creative designs but also develop a backend system and integrate your merchant accounts in to on もっと
Sounds great. Our team would have no problem handling you site. We look forward to hearing from you.
Sir, I am sure you are looking for me.. Please go through PMB.. thankx
Hello, Though I'm new to this site, but I've the largest database of clients locally. We are into development right from 7 years with immense knowledge in every software programming language and web site designing so もっと
"On the Web, no one knows if you're large or small." Your web site conveys an image of your company. If the visual design of a web site is credible and professional looking, users are likely to stay and browse. もっと
In the design and implementation we check with you step by step to fully consider your needs and requirements in design and implementation.
Website design including one page: $650; Price per page there after: $25; Portfolio available online at: [url removed, login to view]


text:
Manufacturers, the largest sector using expensing, a tax provision that lowers the cost for companies making new business investments, such as in machinery and equipment used on the plant floor, got a boost today by the President's proposal in support of temporary expensing from September 2010 through 2011. President Obama outlined the plan during a visit to the Stromberg Sheet Metal Works facilities in Beltsville, Md. (Remarks.)
This proposal, if not counteracted by punitive tax increases on business, is a way to boost job creation for the workers needed to build and the workers needed to run the new machinery.
With 2010 3Q GDP today registering anemic 2 percent growth and a relentless unemployment rate hovering at 9.6 percent, increased expensing is a proven, effective tool for powering new jobs. In fact, increased expensing was successfully launched by both a Republican Administration after the 2001 terrorist attacks as well as by the current Democratic Administration in recent stimulus laws. This issue might be just the trick (no pun intended on this eve of the eve of Halloween) to foster bipartisanship consensus at both ends of Pennsylvania Ave — between Congress and the Administration.
Latest posts by Monica McGuire (see all)
- Rx for Rising Health Care Costs: Repeal the Health Insurance Tax (HIT) - February 19, 2013
- TI CEO Testimony Hits the Mark on NAM's Innovation Policy Agenda - February 8, 2013
- Pending Fiscal Crisis Already Taking Its Toll on Midwestern Manufacturers - October 24, 2012


text:
The latest feature to
be official announced by the Detroit automaker is the addition
of in-car Wi-Fi. By plugging a mobile broadband card, such
as those offered by Verizon, AT&T, or Sprint in the U.S. into the
USB slot of a Ford vehicle with SYNC, a secure Standard WiFi
Protected Access 2 (WPA2) wireless network will be produced.
feature is sure to excite many in the business community (and more
than a few reporters), who can use the service to get work done while
carpooling to events. Ford cites recent studies as indicating
that one in three Americans would like to use in-car Wi-Fi to check
on email or other services when on the go.
Ford describes the
security protocols attached to the new feature, writing:
Using the SYNC WiFi system, a signal will be broadcast
throughout the vehicle. Default security is set to WiFi Protected
Access 2 (WPA2), requiring users to enter a randomly chosen password
to connect to the Internet. When SYNC sees a new WiFi device for the
first time, the driver must specifically allow that device to
connect, preventing unauthorized users from "piggybacking" on the
SYNC provided signal.
DailyTech was on hand at presentations of Ford's upcoming
vehicles and services on Friday, at which the Wi-Fi features were
first unveiled to the press. At one of the presentations Derek
Kuzak, Ford's global vice president of product development, described
Ford's mindset on the new SYNC platform, stating, "Today we are
thinking and behaving like a consumer electronics company.
People line up at midnight for the latest iPhone, or Blackberry.
We want to get that [level of excitement]. That's where SYNC
comes in."
As more SYNC features are revealed its clear
how seriously Ford took that mindset during the design process.
Along with EcoBoost, the new SYNC should be a key selling point for
Ford going forward, as it looks to continue to swipe
marketshare from GM, Chrysler, and the foreign automakers.


text:
Basic Information
Name : はたけカカシHatake Kakashi
Nickname : Copy Cat
Gender : Male
Age : 20's
✘ Appearance :
Kakashi is a fit and relatively tall shinobi with fair-skinned, tall, spiky white hair, and dark eyes with the left one having a small scar vertically over it. He wears his forehead protector tilted to the left to cover his scarred eye, and a mask which obscures the lower-half of his face. He was once mistaken by Chiyo for his father Sakumo Hatake, whom he greatly resembles despite the obscured lower-half of his face.
As a child, Kakashi wore a simple black outfit with the lower-half of his face concealed. He also wore a green scarf with a simple design on it. As a genin, he wore another simple black outfit along with an open-front apron around his waist and fish-net armour around his ankles. During the Kakashi Gaiden, he wore a black T-shirt with white stripes in the middle of the sleeves. On his arms he wears black sleeves (which he presumably cut out from his shirt) with metal arm protectors over them. He also has leather straps around his back and chest, and his family's White Light Chakra Sabre is kept in a small holder out in the back. He also wore pants similar to the ones he wears today. He appears to wear the same type of outfit as a child (as seen in a flashback). However, in another flashback he is shown wearing a sleeveless black shirt similar to one he sometimes wears as an adult. This type of shirt is presumably for casual wear. As an ANBU, Kakashi wore the standard attire of the group which consisted of a simple blue suit with the standard flak jacket, strapped up sandals, and arm guards. Along with this he wore plated gloves that went all the way up to his arms with a bandage wrapped around the right one. Along with this he carried a sword strapped to his back and his mask was fashioned to resemble a dog's face with red and black markings around the eyes, sides and mouth.
✘ Personality :
Kakashi became more stern and serious after his father's death, following all the rules to the letter and chastising any who disobeyed them, like his team-mate Obito Uchiha. He was also very aloof and apathetic to others especially his team-mate Obito who was always late for their missions and would come in tow with a grand excuse. This caused Obito to resent Kakashi; the dynamics between the two would soon change after Obito was mortally wounded during the Third Shinobi World War, with Kakashi and Obito becoming closer friends after Rin was abducted.
Obito's supposed death had a huge impact on Kakashi's personality, becoming cheerful with greater concern for his team-mates and students over the successful completion of a mission, as well as believing that teamwork is essential to overall success as a team. He has also developed a somewhat carefree personality and is regularly late for appointments, making obvious excuses just like Obito before him. This is often because he loses track of time during his frequent visits to the memorial stone where Obito's name is engraved. However, Kakashi is still just as apathetic as he was during his youth, often speaking bluntly about sensitive topics.
Village Information
Village of Birth : Konohagakure 砂隠れの里
Village of Alliance : Kumogakure 雲隠れの里
Rank | Chakra Information
✘ Ninja Rank : Kage
✘ Specialty :
Sharigan 3 Tomoe | Genjutsu | Medical Ninjutsu | Raiton
✘ Elements :
土 Doton → Mastered
風 Futon → Mastered
火 Katon → Mastered
雷 Raiton → Mastered
水 Suiton → Mastered
✘ Summons :
Marten → Mastered
✘ Techniques :
Genjutsu → Mastered
Kenjutsu → Mastered
Ninjutsu → Mastered
Taijutsu → Mastered
Sharigan Genjutsu → Mastered
Medical Training → In Progress
Kaitos Taijutsu →In Progress
Champloo Kendo →Creator
Background Information
✘ History :
Kakashi is the son of Sakumo Hatake, also known as the "Konoha's White Fang." Not much is known of his mother other than that she died when he was young. Kakashi has been known since a young age as an extremely gifted prodigy, regarded by many as the best of his generation. He had received top marks and had shown an innate aptitude for the ninja arts while in the Academy. This permitted him to graduate from it in a single year at the top of his class at the age of five, and then becoming a chunin a year later, facing and defeating Might Guy during the third stage of the Chunin Exams.
Despite his own success, his father fell into disgrace after choosing to save his comrades rather than complete an important mission, causing Konoha to suffer in the war effort. Dishonoured, Sakumo took his own life after a deep depression and a drop in his skills, which caused Kakashi to lead his life strictly by the ninja code.
Kakashi was teamed with Obito Uchiha and Rin under the leadership of Minato Namikaze. At the age of 13, soon after becoming a jonin, Kakashi was assigned to lead Obito and Rin on a mission that would benefit Konoha in the ongoing Third Shinobi World War. They were to destroy Kannabi Bridge, which was being used by Iwagakure forces to move into Kusagakure. This would also be Konoha's first huge offensive move in the war. On their way to the bridge, Rin was kidnapped by two Iwagakure ninja named Kakko and Taiseki. Obito immediately suggested that they rescue her, but Kakashi disagreed on the basis that they needed to complete their mission, opting not to make the same mistake his father did.
Obito would not hear of it and stubbornly left to save Rin, but not before mentioning that he believed Kakashi's father, the White Fang, was a true hero. Shortly after parting ways, Kakashi reflected on Obito's words and Rin's prior kindness. He realised that his father was not wrong after all, which prompted him to join Obito in the rescue effort. Kakashi arrived in time to save Obito from Taiseki, using his father's blade to combat him. Despite the two-to-one disadvantage, the more experienced Taiseki was able to attack and damage Kakashi's left eye, who took the blow that was intended for Obito, giving him a permanent scar and blinding the eye.
Obito's will to protect his comrades would cause his Sharingan to awaken, and he uses it to kill Taiseki. Finding Rin and defeating Kakko with Obito's help, Kakashi freed Rin before their opponent uses a crushing earth technique to trap them in a cave-in. While trying to escape, Kakashi was hit by a rock which he didn't notice because of his bandaged eye causing him to fall. Obito pushed Kakashi out of the path of a falling boulder, causing himself to be crushed beneath it instead. Knowing he would die, Obito instructed Rin to implant his left Sharingan into Kakashi's damaged eye. Rin complied, and as soon as the surgery was completed Kakashi used the Sharingan and his Chidori to kill Kakko. He then returned to Obito to see if there was anything he could do for him, but was forced alongside Rin to leave him. With the help of Minato, they ultimately completed their mission, allowing them to mourn Obito's supposed death.
Some time after the events at Kannabi Bridge, the pair were apparently sent out on a mission where they were ambushed by jonin and ANBU-level Kirigakure shinobi. The events of this encounter culminated in a tearful Kakashi running Rin through her chest with his Chidori.
Soon after the end of the war, when the Nine-Tails attacked Konohagakure, Kakashi and the rest of his peers were barred from participating in the defence of the village by Kurenai Yuhi's father and other older shinobi.
Over the years, Kakashi became well-known among all the Five Great Shinobi Countries for the extensive use of his Sharingan, gaining him a reputation as "the man who has copied over a thousand techniques", hence his nickname. Kakashi eventually joined the Konoha ANBU, and also served as a mentor to Tenzo.
Kakashi with his ninken during his ANBU days.
He later left for unknown reasons, but maintained strong connections with the ANBU. Kakashi eventually became a team leader, and tested many genin. As the Third Hokage told Iruka, Kakashi had never passed any of them due to their inability to live up to his expectations of working as a team.
In the anime, he once had a mission where one of his team-mates, Iruka Umino, was injured, paving the way for the latter to become an instructor at the Academy. When Iruka was having doubts at being assigned to be the home room teacher of Naruto Uzumaki, Kakashi served to remind him of his real reasons for wanting the post in the first place.
Although later earning status as a jonin-sensei, Kakashi developed a reputation throughout the academy for having exceedingly high standards on who he would train, and failing every potential genin team that took the survival training exam he proctored. When he was given the next potential Team 7 — which consisted of Naruto Uzumaki, Sasuke Uchiha, and Sakura Haruno — he gave them a bell test, requiring the three of them to obtain at least one bell that he keeps on his waist. With only two bells available and three genin present, his students believed the test to be a competition against each other and so they worked independently in the attempt to take a bell.
Each of the young ninja try their own methods to getting a bell, only for Kakashi to easily defeat them. After Team 7 failed their test, Kakashi was quick to express how displeased he was with their performance. After belittling each of their performances, he revealed the true goal of this test: teamwork. After explaining the importance of teamwork and seeing how ashamed they were at their performance, Kakashi decided to give Team 7 one more chance to act as a team, and let them take a break for lunch. However, Naruto, having earlier tried to steal their lunches, was forbidden to eat. Deciding that they would need Naruto in peak condition if they were to work together, Sasuke and Sakura gave him food anyway. Kakashi witnessed this act and immediately confronted them, feigning anger that they disobeyed him, before passing them. The newly formed team explained that they needed to work as a team first before anything else. He then congratulated them on being the first team to pass under him after revealing the true objective of the test: teamwork and loyalty to your team-mates.
It was later revealed that Kakashi was chosen specifically to be the leader of Team 7 because of Naruto and Sasuke. Kakashi's duty in addition to training the team was also to keep the Nine-Tailed Demon Fox in Naruto contained, and to keep Sasuke from walking down a dark path, since they had similar traits that would allow Kakashi to better understand him.
After completing a number of easy D-rank missions, Team 7, at Naruto's insistence, was assigned a somewhat more difficult C-rank task of escorting the bridge-builder Tazuna to the Land of Waves. They were attacked en route by the Demon Brothers. After Kakashi easily defeated them, he realised that there was more to the mission than a simple escort, and convinced Tazuna to tell them the truth, that the Land of Waves was under the tyranny of Gato. Tazuna hoped to build a bridge that would free the country, and had thus garnered Gato's assassination attempts. Even though the mission was far more dangerous than what they had been initially assigned (A-rank, B-rank jonin difficulty), Team 7 agreed to act as his bodyguard until the bridge was complete.
Upon arriving in the Land of Waves, Team 7 was attacked by Zabuza Momochi, another of Gato's hired assassins. Zabuza's superior experience with water-based techniques, combined with Kakashi's focus on protecting his team-mates, allowed him to catch Kakashi off guard, resulting in Zabuza trapping Kakashi with a water prison. Kakashi pleaded with his students to flee with Tazuna, but they instead chose to work together, and managed to free him. Using his Sharingan, Kakashi was able to turn the tide against Zabuza. Before Kakashi could land a killing blow, a boy named Haku stepped in, and appeared to kill Zabuza first. He then took Zabuza's body away, claiming that he was a Kirigakure hunter-nin and would dispose of it, after which Kakashi collapsed from exhaustion due to overuse of his Sharingan.
Realising that Haku might have faked Zabuza's death to save him, Kakashi trained Team 7 to gain better chakra control while recuperating. In a week, they had mastered the training, and thus resumed their bodyguard duty. At the bridge they were confronted by Zabuza and Haku, confirming Kakashi's suspicions. While Haku engaged Naruto and Sasuke, Kakashi fought Zabuza.
Having learned from his defeat, Zabuza relied on sneak attacks during the battle through his Hiding in Mist Technique to keep him from falling prey to Kakashi's Sharingan. In response, Kakashi summoned his ninken underground to locate and pin down Zabuza, making him an easy target for his Lightning Cutter. Before he could kill Zabuza, Kakashi was once again interrupted by Haku, who used himself as a human shield and took the blow intended for Zabuza, thus being killed in the process.
Still determined to win, Zabuza relentlessly attacked Kakashi but the battle turned completely in Kakashi's favour, as he easily outmanoeuvred Zabuza. Gato and the rest of his henchmen later showed up to have Zabuza disposed of as a result of his failure, only for Zabuza to kill Gato. While Kakashi witnessed the event, Gato's henchmen in turn killed Zabuza. In response, Kakashi used his Multiple Shadow Clone Technique to scare the thugs away. As Zabuza died, he asked Kakashi to bring his body beside Haku's before he passed away. Kakashi buried them alongside each other before returning to Konoha with Team 7.
Feeling his students were ready, Kakashi entered Team 7 in the Chunin Exams, despite some initial disapproval from other elite ninja. After Sasuke was branded with the Cursed Seal of Heaven by Orochimaru during the exam's second phase, Kakashi took it upon himself to deal with the cursed seal. Unable to remove it, he instead used the Evil Sealing Method to try and prevent its usage. Following the preliminary matches, Kakashi decided to personally train Sasuke for a month after realising how much Orochimaru desired Sasuke from his subordinate Kabuto Yakushi attempting to abduct him. Kakashi tried to reinforce Sasuke's self-worth and value for his friends by teaching him how to use Chidori as a deterrent against the cursed seal. As the training also involved taijutsu training copied from Rock Lee to better condition Sasuke's body for the Chidori, Kakashi runs late in delivering Sasuke to his final round match. When Sunagakure and Otogakure's invasion of Konoha began during Sasuke's match, Kakashi released a genjutsu along with Might Guy and Sakura, and helped repel the invaders along with Guy. They ended up having several contests to see who could defeat the most Suna and Oto-nin, although Guy usually won. When he noticed that Sasuke was going after Gaara, Kakashi sent Naruto, Sakura, Shikamaru Nara, and Pakkun to stop him and bring him back. After defeating several Suna and Oto-nin, he is briefly seen with Guy, Aoba and Kurenai. After the failed Invasion, he attends the Third Hokage's funeral, mourning his loss, he listens to Iruka's words at the funeral and thinks how sad it would be if the Third had died for nothing.
Shortly after the invasion was prevented, Itachi Uchiha, Sasuke's older brother, and Kisame Hoshigaki of Akatsuki infiltrated the village. Asuma Sarutobi and Kurenai Yuhi tried to apprehend the two, but they were almost killed, making Kakashi intervene. Although Kakashi was able to hold his own against Itachi for a short while, Kakashi fell victim to Itachi's Tsukuyomi. Severely weakened by the technique, Kakashi confirmed that Itachi and Kisame were after Naruto and the Nine-Tails before collapsing. With Kakashi's knowledge on them, Itachi ordered Kisame to kidnap Kakashi. Luckily, Guy arrived just in time to drive the Akatsuki members off.
Kakashi was left in a coma after what happened, and was not revived until Tsunade returned to the village. Immediately after recovering, he was sent on a new mission.
Before setting out on his mission, Kakashi stops a battle between Naruto and Sasuke. Learning that in his absence, Sasuke had begun reverting to his obsession for power and revenge. Kakashi lectures Sasuke about misusing the Chidori, pointing out that it was designed to protect friends, not attack them. He encourages Sasuke to place greater importance on friendships than on revenge, then leaves to let his words sink in, unaware that Sasuke was given little time to embrace those words thanks to Orochimaru's Sound Four.[
When Kakashi returned from his mission, he found out that Sasuke had defected to Orochimaru, and that a squad of genin, led by Shikamaru, was all that had been sent out to retrieve him. Ignoring the fact that he had a new mission, Kakashi rushed out to track down Sasuke and the retrieval team. Using his ninken, Kakashi was able to locate a defeated Naruto, with Sasuke having already left. Unable to pursue Sasuke because of a fresh rainfall and due to Naruto's current condition, Kakashi took Naruto back to the village to recover, saddened that he failed to help his students.
Kakashi continued to be sent on missions during the anime's filler arcs, leaving him with very few appearances. He returned from a mission in time to recapture some of the prisoners that had escaped from prison when Mizuki led a breakout. He was later sent to assist with the Cursed Warrior incident in the Land of Birds. While not officially his mission and arriving much later, Kakashi realised the situation wasn't as it seemed, and ultimately took command of the team, thereby deciding to investigate. This led to Kakashi's fight with Hoki's minions, Nagare and Hokushin, whom he defeated with relative ease.
In the Ultimate Weapon Arc, Kakashi was sent to spy on the Takumi Village when rumours of an uprising reached Konoha. There, he discovered the entire village abandoned, and the corpses missing. He later showed up towards the end of the arc, where he was sent as part of reinforcements, along with Jiraiya, to aid Naruto and the rest of the genin in helping Sunagakure, only to discover that Naruto's team had already successfully completed their mission. At the conclusion of Part I, Naruto and Sakura began training under Jiraiya and Tsunade respectively, leaving Kakashi free to train himself.
With Team 7 effectively dissolved, Kakashi spent the two and half years further enhancing and refining his abilities to prepare for the inevitable battle with Akatsuki. After Naruto's return to the village, Kakashi was given, by Naruto, the newest edition to the Icha-Icha series. Later, Kakashi had Naruto and Sakura take another bell test, with the real objective being to actually capture the bells, to see how much they have improved. When they were unable to get close enough to Kakashi to each take a bell, Naruto and Sakura resorted to trying to spoil the plot of the most recent Icha-Icha novel, throwing Kakashi off guard and allowing them to take the bells.
When word reached Konoha that Gaara had been kidnapped by Akatsuki, Team Kakashi was sent to rescue Gaara. Upon arrival in Sunagakure, they are teamed with Chiyo before following Akatsuki's trail. Along the way, they encountered Itachi. Kakashi was able to fight on even grounds in this battle, but noted that Itachi's performance wasn't what it was the last time they met. With a well-timed manoeuvre, Kakashi was able to trick and restrain Itachi, giving Naruto the opening needed to finish the fight with his Big Ball Rasengan. Afterwards, they discovered that the Itachi was only a lookalike. They then met up with Team Guy, which was sent as back-up to Team Kakashi, outside an Akatsuki lair. Because there is a barrier over the entrance, Team Guy went to take down the barrier. This allowed Team Kakashi to infiltrate the lair, where they found Sasori, Deidara and Gaara
Other Information
✘ Raiton :
Kakashi's mastery over the Ligthning element is so intense, that he's able to perform any lightning technique with only one hand seal.
✘ Will of Cloud :
Kakashii has a really strong willpower, and carries the will of cloud inside from his very proud village of Kumogakure. Having such strong will means that in a fight, small injuries are not enough to stop him. His will to live for, and protect the village is a very great deal.
Battle Information
✘ Won : 7
✘ Lost : 3
✘ Updating: Kakashi Hatake in Signture
✘Special Thanks to Toshiro


text:
Hi All,
While working with a full diameter core I came across a "different" grain that looks very much like a tooth. Please take a look on the images below.
Any idea of what animal are we talking about? My first thought was to take it to the National History Museum for an expert to take a look and after reading a bit I found this forum
The 2nd picture just illustrates the place where I think I found it. Actually the tooth came out of the rock when we were cleaning the core surface with an iron brush. The rock is an unconsolidated sandstone.
Many thanks for any feedback.
Kind regards,
Looks like a tooth, maybe from a prehistoric fish or an icthyosaur tooth.
Hello royalgeologist
I have a core sample 'somewere' with a plant inside of it but I think your specimen could be what's left of a shark's tooth.
An exceptional find! well done.
I think you should take it to the NHM for id because of were/how it was found.
I agree with tabfish. I thought it was from a some kind of fish, but it does look like a shark tooth with the root and the cusps missing.
Hi Tabfish/Dan,
Many thanks for the quick feedback. It's just incredible how this forum works! Amazing!!
Would you have someone in mind that I should look for at the NHM? Do you know if I need to book in advance or it is just a matter of popping up with the tooth and look for the fossil identification department?
Kindest regards,
Dear Royageologist,
Thank you so much for your enquiry, it was very interesting to see your specimen and talk to you in person. I have sent the images to expert shark specialists and look forward to hearing what they have to say about it.
Thank you Tabfish for suggesting you bring this in to show us.
Kind regards,
Hi royalgeologist,
Initial feedback :
Lamniform tooth. Could be anything from Albian to Recent. Do you have and age for the sediments?
All the best,
Hi Fiona,
Many thanks for your reply.
I think it is Tertiary. Would that help?
Have you came across a similar tooth that you might be able to share the picture, just for comparative purposes?
Hi royalgeologist,
Yes it would help - please can you check. Any additional information regarding the sediments and age is helpful. A more precise location would be useful.
All the best,
Hi Fiona
Glad you did not mind, we all find fossils and everyone is very important but to find a tooth like royalgeologist did is exceptional.


text:
Election fatigue
By now, regular readers are well aware of the miserable 6.68 percent turnout at the polls from last Tuesday's Republican primary. For those of you who aren't, catch up here with our analysis of Beaufort County Council Chairman Weston Newton's lopsided victory.
Election officials blamed poor turnout on a bevy of potential factors, including the limited number of races on the ballot, the absence of statewide contests, no primaries from the Democrats, and, of course, the perennial turnout dampener -- intermittent thunderstorms.
These sound like perfectly reasonable guesses to me, but could part of the problem -- as Newton's opponent Jerry Stewart suggested -- be a sense of election fatigue from a seemingly unrelenting campaign cycle that never appeared to let up after the 2010 midterms? That's the question I pose to you: is there any validity to this idea? Are people that fed up with campaigning that always seems to march on in some corner of the political world?


text:
http://mmajunkie.com Here we go again.
The Texas Department of Licensing and Regulation declined to license Mark Martinez due to incomplete medical paperwork, and Karl Knothe (20-6) has stepped in to fight Bobby Lashley (6-1) at Shark Fights 21. MMAjunkie.com (www.mmajunkie.com) today confirmed the news with a source close to the event after an initial report by Sherdog.com.
The heavyweight title bout headlines the event, which takes place Nov. 11 at Fair Park Coliseum in Lubbock, Texas. The event airs via delay on FUEL TV on Dec. 23.
Knothe is the fourth proposed opponent for Lashley and comes into the fight on the strength of a 12-fight win streak. All of those wins have come inside the first round, and eight of them have come by way of stoppage due to strikes.
That's a considerable departure from Martinez, who brought a 4-1 record to the table. Martinez follows Dave Huckaba, Darrill Schoonover, as confirmed opponents that have fallen by the wayside. A rumored matchup with UFC vet Tim Hague was denied by Shark Fights executives.
The Knothe fight is the first obligation of a three-fight deal Lashley signed with Shark Fights in September.
After transitioning from pro wrestling to MMA, Lashley went undefeated in his first five fights before Chad Griggs outworked him to earn a TKO victory at "Strikeforce: Houston."
Lashley, who owns victories over the likes of Bob Sapp and Wes Sims, was a two-time NAIA national wrestling champion who also wrestled for the U.S. Army. That ultimately led to a WWE contract in 2004.
(Pictured: Bobby Lashley)


text:
Read the full story here Web Link posted Wednesday, March 6, 2013, 7:41 AM
Town Square
Bay Bridge glistens as 25,000 LED lights turned on for 2-year-long show
Original post made on Mar 6, 2013
Read the full story here Web Link posted Wednesday, March 6, 2013, 7:41 AM
Comments (13)
a resident of Downtown
on Mar 6, 2013 at 12:52 pm
This is an innovative example of Civic Art and was first inspired by a small LED lighting art exhibit at the Computer History Museum in Mountain View and the Giants World Series win in 2010. We also have a strong Pleasanton connection to the project as several members of the lighting manufacturer's team assigned to this project have stayed overnight at my Downtown Pleasanton home (and also the Stoneridge apartments when I was living there) while working on the Bay Lights project. If you play trivia at Redcoats on Wednesday nights, then you have probably seen them playing with us on our Townies and Transplants trivia team.
I am sharing this story because I know we have lots of stories like this in Pleasanton and it would be fun to figure out a way to share them with each other. In fact, I was at Sephora at the Stoneridge Mall yesterday and heard about how someone from Pleasanton was there a few weeks ago to get some new makeup ideas for attending the Grammy Awards Ceremony.
Pleasanton has an amazing connection to exciting events happening in the world and I hope we can come together to share these stories and be positive.
I posted some pictures from last night's party on my twitter and campaign facebook page:
Web Link
Also, here is a link to a YouTube video for a lighting show on top of the Empire State Building - this shows the color changing capabilities of the same lighting manufacturer that created the white lights currently on the Bay Bridge: Web Link
a resident of Livermore
on Mar 6, 2013 at 10:29 pm
looks like a waste of money...thank you for sharing...not my priority
a resident of Another Pleasanton neighborhood
on Mar 6, 2013 at 11:07 pm
It frosts my behind to no end to see such a squandering of taxpayer money (supplements for the arts and humanities). Unless our taxes go to defending our freedoms, with emphaissis on freedoms, then its a big waste and only makes the government all that more powerful. How about a tax rebate instead of this extravagent waste?
a resident of Vintage Hills
on Mar 6, 2013 at 11:16 pm
Kathleen Ruegsegger is a registered user.
From the article: ". . . an $8 million privately funded project"
a resident of Another Pleasanton neighborhood
on Mar 7, 2013 at 1:35 am
That's exactly my point! Why have government fund arts and humanities with taxpayer money when all artists have to do is get $8 million in privat funding? All artists could be millionaires if they paid more attention to fund raising out in the private sector. Instead, their pampered wards of the state. I want my rebate!
a resident of another community
on Mar 7, 2013 at 6:39 am
a resident of Foothill Farms
on Mar 7, 2013 at 8:45 am
Nice post Vincent
a resident of Another Pleasanton neighborhood
on Mar 7, 2013 at 8:54 am
When you get clear about what you're trying to say, Vincent, let us know. Until then, you're welcome to bask in the nonsense your spouting. If there are 'hundreds of starving artists among the readership,' in my humble estimation they deserve to starve until either consumers show a willingness to purchase there art or some wealthy patrons allow them access to there wealth. In the law of the capitalist marketplace, in case you didn't know, demand dictates. If artist wannabees want to starve, that's okay by me. Just don't ask me to pay taxes to "supplament" the poor "artists" who aren't good enough to convince people to purchase there "art". IMHO most artists would be better off in a technology program where they can be useful to a corporation.
a resident of Country Fair
on Mar 7, 2013 at 1:17 pm
I'll let Libertarian speak for himself. But I don't like the name calling one bit. And instead of engaging him, you skurt the issue.
Does anyone want to deny that artist's are pulling a scam on the American taxpayers? We need artists about as much as we need comix book readers. Neither contributes anything of value. People are free to read comix books all they want. That's freedom which is the American way. But don't make all the hard workers fork over their earnings for the sake of some lay about artist who wants to fingerpaint a mural or hang lights from a bridge. Where are our values going? This is why we're falling behind China and India.
a resident of another community
on Mar 7, 2013 at 3:12 pm
[removed because it was disrespectful and did not further the conversation]
a resident of Laguna Oaks
on Mar 8, 2013 at 10:54 am
[removed] We need artists, authors, entrepreneurs and everything in between, including comic book readers. I don't have the least bit of artistic talent but surely appreciate those who do. The privately funded light sculpture on the bridge shows the sheer creative genius and technological brilliance of the talented people involved. It's beautiful. It's appreciated. My thanks to everyone who contributed to it and especially to those who created it.
a resident of Pleasanton Heights
on Mar 8, 2013 at 12:11 pm
A group of us visited the Asian Art Museum last night for the Terracotta Warrior exhibit and had dinner at Sinbads specifically to see the lights on the Bridge. It was quite entertaining and somewhat spectacular. Although it may not be helping East Bay revenues, I'm sure it is providing a boom to the SF downtown economy!
a resident of another community
on Mar 8, 2013 at 8:39 pm
Awfully heavy hand by the Moderator of this board -- reminds of an exchange from a favorite movie:
Henry Drummond: Radio! God, this is going to break down a lot of walls.
Radio Announcer: You're not supposed to say "God" on the radio!
Henry Drummond: Why the hell not?
Radio Announcer: You're not supposed to say "Hell", either.
Henry Drummond: This is going to be a barren source of amusement!
Salami, Salami … Baloney
By Tom Cushing | 24 comments | 695 views
Time for new collaboration between city and school district
By Tim Hunt | 2 comments | 501 views
Holiday Fund raises $70,000 for 12 Tri-Valley nonprofits
By Jeb Bing | 0 comments | 111 views


text:
Lemon Cream Pie
by lisa ann toney of Carolina Cotton Company
My original recipe combines several you already know! Easy! Quick! It is smooth and light with creamy yet deep flavor and pleases the multitudes! Hope you enjoy it! I use it ALL the time! Feel Free to copy/paste and share if you keep my link! ;)
- 2 Pie Crusts. You can buy graham or shortbread foiled ones or the pastry ones and RECOOK/COOL. Or, of course, you could make your own pastry crust! MMMmm. Make sure it is cooled b4 use.
- 16 oz of Cream Cheese. Room temperature only not chilled. Do not attempt to rush this part! It won't blend well if it's warmed up too fast! I know from experience! :o
- 1/2 cup Lemon Juice. I use the bottle but feel free to squeeze! You can use 1/4 if you prefer.
- 2 tsp Lemon Extract. May use a bit more or less!
- 7 oz Sweetened Condensed Milk. I have used more of this when I use more of others. Customize! I keep wanting to try LIME juice and add white chocolate to top! HAVE fun!
- 8 oz Whipped Topping-thawed. I tend to use Cool Whip. You can use 16 oz w/o harming recipe! I have! Do use 16oz if you use more milk/juice.
- Prepare crusts. Set aside ready to be used. Get a large mixing bowl, mixer, and a few teaspoons because you must have a taster to get it "right." Make sure that cream cheese is not cold.
- Put cream cheese in bowl. Mix on low; then whip until smooth and lighter.
- Add lemon juice. I usually use 1/2 cup as is. It does not make it too tart at ALL! If you plan to use 16 oz of whipped topping, do be sure to use 1/2 cup. Blend it with cream cheese.
- Blend in Sweetened condensed milk. IF you use more, be sure to use more topping! We want it firm.
- Blend in a teaspoon of lemon extract. You want the flavor a bit strong as the topping will dilute it. Taste!It should taste as strong as lemon iced box pie at this point. I like mine a bit more-I use Tbsp at least!
- Blend well. Gently FOLD in the thawed whipped topping. Do not use mixer! Taste again.
- It should taste LIGHT. Split between the two crusts and enjoy the extra! :)
- Chill a couple of hours in refrigerator. Done! YES! It IS that easy! Hope you and yours enjoy!:D
Original recipe by Lisa Ann Toney of http://www.carolinacottoncompany.com Share with link only please. Thanks!


text:
Edit: http://www.youtube.com/watch?v=6mTFOVQsjB0
wow i am totally not interested in playing my PS3...all i do is visualize the PS4 demos from E3.
Edit: http://www.youtube.com/watch?v=6mTFOVQsjB0
this is funny...
but i still think MS might be packing a punch with XB1
Hahaha yeah saw that. Microsoft taking a big gamble they are hoping works out in the long run. Sony is soaking it up for now taking the easy brutal shots.
Full disclosure: I pre-ordered both.
nba live
i hope NBA2K is a launch title, thats going to be the other one i preorder
happy birthday to me
i am very excited about the XB1, i dont share games, and i have had internet every day since i was a kid...so those things are not an issue for me.
Region-free, upgradeable, best graphics, sound, processing power and simply-bad-ass; PC. With Steam Big Picture, how can you go wrong?
Holy sh*t this looks amazing!
Wish this was a launch game
Never cared for the "Ghost Recon" games, but this looks like Fallout with a sweetass online, multiplayer twist.
Supposedly, it's about a worldwide pandemic passed along banknotes and the wasteland survivors that have to scavenge through the aftermath.
Notice the little subtleties like the bullets ripping through the car windshields or the guy creeping along and shutting the car doors. That kind of small sh*t makes a world of difference.
If this truly has a reclamation of NYC/Jersey with a Fallout/Mad Max/Online multiplayer feel...then holy sh*t!
Check out and read the info on CyberPunk 2077 also.
Just found out about these games yesterday haha.
And nevermind the pissed off smilie. Typo. Haha
Last edited by Untouchable; 06-15-2013 at 11:31 PM.
Started playing "Last of us" today, great game. I am about an hour in, and so far highly recommended.
Exactly what I was thinking. Was that a single player experience with two bots on that demo? I'm not sure, but even the voice acting seemed spot on, was really engaging to me. Add that one to my list.
Sooo.....I picked up The Last Of Us and just played through the first 15 minutes.....
I have a daughter around the age of the Joel's daughter in this game....the feels, my god, the feels......
Great article on the argument of the used games market - also if MS is really pushing the digital only format, then how about lowering the ****ing price?
Last edited by Fishooked; 06-17-2013 at 08:11 AM.
Had someone send me this, thought I'd share it here....so many memories -
You know you are getting old when stuff you played with as a kid enters the 'museum' phase....
E3 Videogame Museum
Microsoft is backpedaling...
http://www.cnn.com/2013/06/19/tech/g...html?hpt=hp_t2(CNN) -- Reacting to "feedback from the Xbox community," Microsoft is appearing to reverse course and change two key components to policies for its new Xbox One video game console.
All disc-based games can be played without ever connecting online, and the 24-hour connection requirement has been dropped, according to an update to a May post concerning questions about the new device, due to be released this fall.
Wow....amazing. Biggest backpedal ever.
I think in the court of public opinion the damage has been done.
When they were pressed on being able to turn DRM on or off, they said something about it 'not being that simple'. Apparently it was.
I'm still getting a PS4 though
My favorite franchise is getting jerked around .
Reports of Fallout 4 being demo'd behind closed doors turned out to be bs.


text:
EVERY Marvel Comics OCTOBER 2 Preview
Here's every preview for Marvel Comics on sale October 2, 2013, including All-New X-Men #17, Mighty Avengers #2, and Hunger #3.
Click the title to jump to that preview, or just click on through to read them all!
Captain America: Living Legend #1
Marvel Universe Avengers Assemble #1
The Superior Foes of Spider-Man #4
Got a comment? There's lots of conversation on Newsarama's FACEBOOK and TWITTER!
EVERY Marvel Comics OCTOBER 2 Preview
Marvel Previews for October 2, 2013
Credit: Marvel Comics
Twitter activity Tweets by @Newsarama


text:
Coffee Service
Music & Games
Bulk Vending
ATMs & Kiosks
Meetings & Events
Names in the News
Vend Product News
Bulk Vending and Crane Products
Small Business News
Video Content
Press Releases
Sponsored Content
Classified Ads
Buy a Classified Ad
e-Newsletter Signup
Bookstore Sales
About Vending Times
Media Kits
Editorial Calendars
Circulation Data
Contact Us
DALLAS -- Dave & Buster's Inc. has selected Proxomo Software Inc. for a back-of-the-store management system that will be used in all D&B's locations. The Mobile Restaurant Management application is designed to help the big box amusement-restaurant operator reduce operational costs and streamline readiness and incident reports, location audits, compliance and training.
The Proxomo application includes a Web console that allows an administrator to manage users, track and monitor responses from the field, and identify issues at the store level. With many restaurant apps dedicated to customer interaction and wait staff efficiencies, Proxomo's focuses on managing kitchen and supply chain activities, according to the company. The system package includes an iPad or iPad Mini, a Bluetooth thermometer and the software.
Up until now, the Dave & Buster's technology effort has been focused on guest-centric tools rather than back-of-house operations, according to D&B's IT vice-president Greg Clore. "Due to the fast-paced growth of D&B's, it was time to proceed with a digital solution to some of our basic compliance and routine checks across the organization," he said. "Proxomo has provided us with an application that gives us the flexibility to control, collect and analyze many of our key day-to-day operational metrics throughout our stores across the country in a matter of minutes instead of hours or days."
Dave & Buster's is headquartered in Dallas and operates 65 stores, mostly in the U.S. The stores, which cater to adults, combine arcade amusements, casual dining and alcohol service.
Proxomo, also based in Dallas, specializes in the development of MBaaS (mobile backend as a service) technology. The company was acquired by Lucent Mobile Inc. in May. The Proxomo Mobile Restaurant Management app reportedly is used by other casual and quick-serve restaurant chains.
Connect With Us!


text:
- What's Included
- Atlas Fit 370 Universal Green Medium Thin Nitrile Gardening Work Gloves, 12-Pairs
Warranty: Limited 30 Day WarrantyDesigned for a superior tight fit and machine washable with added flexibility for gardening, planting, and weeding the heavy duty Green Atlas Fit 370 gloves come Included with (12) Universal Green Medium Nitrile Garden Work Gloves. Each Atlas Fit 370 Garden Work Glove is made of lightweight nylon knit and a double-dipped nitrile palm for improved user feel and comfort. Includes (12) Medium Atlas Fit 370 Work Gardening Gloves.
- Features & Specs
- Super durable, soft and supple glove.
- Protects your hands yet provides dexterity.
- "Clean" nylon liner is a lint free nylon liner protects parts from contamination.
- Excellent gardening or thin work glove.
- The Sure grip thin coating over fingers provides superior flexibility, dexterity and feel.
- Anti-germ treatment, hypoallergenic gloves.
- Nitrile palm, open back and washable.
- Part Number: ATL370
- Condition: New
- Size: Medium
- Condition: New
- Pack Size: 12-Pairs
- Color: Green
- Weight: 1.15 lbs
- Reviews
Customer Reviews
No reviews have been found


text:
Police appeal after girl assaulted on X1 bus going from Norwich to King's Lynn
PUBLISHED: 16:25 11 December 2012
Archant © 2012
Police are appealing for information after a girl was physically and verbally abused on a bus going from Norwich to King's Lynn.
The 16 year old was travelling on the X1 service when the assault, which left her shaken but unhurt, happened between 6.05pm and 6.50pm on Thursday November 22.
Officers want to speak to anyone who was on the bus at the time, or may have seen a group of young people leaving the bus in Dereham.
Contact PC James Shepherd at Dereham Police Station on 101 or Crimestoppers anonymously on 0800 555 111.


text:
Two new surveys reveal widespread belief among teachers that constant use of technology is hampering student attention spans and perseverance in the face of challenging tasks, reports The New York Times. The studies were conducted by the Pew Internet Project and Common Sense Media, and their timing appears coincidental. Researchers also caution that they offer subjective views of teachers, not definitive proof that computers, phones, and video games affect student capacity to focus. Even so, those who study technology's impact on behavior and the brain say the studies are significant because teachers spend hours a day observing students. Nearly 90 percent of 2,462 respondents in the Pew survey said that digital technologies were creating "an easily distracted generation with short attention spans." Similarly, of the 685 teachers surveyed in the Common Sense project, 71 percent thought technology was hurting attention spans "somewhat" or "a lot." About 60 percent said it hindered students' ability to write and communicate face-to-face, and almost half said it hurt critical thinking and ability to do homework. There was little difference in perception between younger and older teachers. While the Pew research explored how technology affects attention span, it also examined how it has changed student research habits. The Common Sense survey focused largely on how teachers saw the impact of technology on a range of classroom skills.
Read more: http://tinyurl.com/c96j6st Source: PEN Newsblast


text:
Kehribar (Ayse) has just IMed me asking me if I can post her question here. See, she told me that she asked this earlier and that beth responded, but it's still happening. She has ben trying since this morning (it's late evening for her now) and it keeps saying the HTTP 400 error. I told her that not too many people are on, and she doesn't know why it's only doing it for MNFF.
(Ayse says hi, too!)


text:
I think it was a case of there not being any good C prospects in next year's draft (while also having some good PG prospects) and JV falling into our laps this year which caused us to pass on Kemba and Knight. If Jose is on our roster opening night (likely, if there is one anyways), he starts, no question. Bayless is going to handle backup PG duties, and has to show next year that he can run an offense effectively if he wants to earn minutes. If Barbosa is traded at the deadline (possible), Bayless could average about 25 mpg backing up both guard spots, and that should be a good gauge of whether or not he has a future with this franchise, whether it be as our starging PG or 6th man. I'm rooting for the guy to succeed, I just hope he's putting in work during the extended offseason and comes out next year ready to prove himself.
the thing is i see bayless as a PG and he even said so himself during an interview with David amber. Just cause he can score doesn't mean he's a combo guard. I see him like a D rose type PG except with a little less explosiveness and not as good at passing(yet). He still has time to develop and become a top 15 PG like Tim said.
There is no doubt Bayless has somethings to tighten up in his game to be a legit starting PG in this league. Running the offense and picking his spot is definitely the biggest obstacle for any PG with scoring ability. Very few have that perfect balance (Nash, CP3 and D-Will) and even some all-star caliber PG's are battling that balance (Rose and Westbrook). He just needs time and realistically will having a full season with 25-30 minutes will help continue his growth as a floor general. I love the fact we have Jose on the roster to tutor him and help Bayless's biggest weakness with his biggest strength.
There are currently 1 users browsing this thread. (0 members and 1 guests)


text:
Walking Escorts for Final Exams
As in past years, the Division of Public Safety, working with the Undergraduate Assembly, is offering the Public Safety Walk-back Program. During reading days and finals, from Saturday, December 10 through Wednesday, December 21, an AlliedBarton Security Officer will be posted at the Button on Locust Walk from 10 p.m.-3:30 a.m. Approximately every 1/2 hour the officer will enter Van Pelt-Dietrich Library to determine if any student would like an escort. The Penn Public Safety Officer will then perform the escort and return to repeat the process.
The Division of Public Safety is providing this service in addition to its normal Walking Escort Programs. Uniformed AlliedBarton Security Officers provide escorts to campus locations. Escorts are dispatched by radio and will accompany you from one campus location to another, to a Penn Transit Stop or to an on-campus SEPTA regional transit stop. Escorts are available 24 hours a day, 7 days a week.
To request a Walking Escort, call (215) 898-9255 (898-WALK), use any blue light phone or callbox or simply ask a Public Safety Officer.
—Division of Public Safety
Related: Rules Governing Final Examinations; Winter Break Special Checks of Residences


text:
Michigan Dairy Youth Program earns sixth invitation to Europe in nine years
Michigan is home to the No. 1 youth dairy judging team in the country. The Michigan youth delegation earned enough points to top teams representing 31 other states in this year's National 4-H Dairy Judging Contest, held Oct. 1 at World Dairy Expo in Madison, Wis. The team was the highest ranking team both overall (beating out second-place Minnesota by 44 points) and in oral reasons. The double win is a first for the Michigan Dairy Youth Program, which is led by Joe Domecq, Michigan State University (MSU) animal science specialist and coordinator of the Michigan dairy judging program.
By winning first place overall, the team earned an invitation to travel to Europe for the two-week International Livestock Judging Tour, an honor awarded to the three top-ranking teams from the national contest. This year marks the sixth time in nine years that the youth team from Michigan has earned this honor by placing either second or third (five times) and first in 2012.
Competing on the Michigan youth team were MSU students Megan Bush, from Swartz Creek; Hayleigh Geurink, Allendale; and Savannah Katulski, Goodrich; and Alma College student Megan Filhart, Rosebush. The team was coached by Domecq and Sarah Black, volunteer assistant coach from Eagle.
"I can't say enough about the level of commitment and dedication the members of this team made in preparation for the national contest," Domecq said. "In addition, the program is fortunate to have a large number of volunteers and judging team alumni who are willing to volunteer numerous hours to help train and mentor the youth over the course of the practice season. The entire experience is about more than practicing for a contest it's about continuing to build the dairy judging program and helping these young people develop the skills necessary to succeed in life."
As a team, Michigan placed first in the Ayrshire breed, first in the Guernsey breed, second in the Holstein breed and fifth in the Jersey breed. Individually, each team member placed among the top 10 in one or more breeds.
Bush finished second place overall, fourth place in placing points only and fifth place in oral reasons. She was high individual in the Guernsey breed, third high individual in the Ayrshire breed and sixth in Jerseys.
Filhart was third high individual overall, second in both the Ayrshire and Holstein breeds, fifth place in placing points only and seventh place in oral reasons. Geurink placed eighth in oral reasons, ninth overall and was the second high individual in the Guernsey breed. Katulski placed seventh in the Brown Swiss and Guernsey breeds and was 20th high individual overall.
World Dairy Expo is like no other dairy industry event in the world. It features an industry trade show with well over 1,100 exhibitors from around the world, national dairy cattle shows and sales for seven dairy cattle breeds, youth judging contests, virtual farm tours and educational programs. Total attendance for the weeklong event tallies close to 70,000.
For more information about the Michigan Dairy Youth Program and the Michigan dairy judging program, contact Domecq at email@example.com or (517) 353-7855.
Sponsors for the MSU and Michigan dairy youth judging programs are ABS Global, Inc., NorthStar Cooperative, the Michigan Holstein Association, the Michigan District 1 and District 6 Holstein Associations, the Michigan Jersey Cattle Club, the United Dairy Industry of Michigan, the Michigan Milk Producers Association and the Michigan Dairy Memorial Foundation.


text:
UDFclient is a userland implementation of the UDF filesystem as defined by the OSTA group. It is designed to be a study platform and a run-up to a full read and write (NetBSD) kernel level implementation. It provides a user interface not unlike ftp but differs in that it always fetches or writes files recursively. It supports the basic get, mget, put, mput, mv, rm, mkdir, cd, lcd, free, pwd, and lls command set.
libpubsub provides everything needed to set up a simple publish/subscribe environment. It allows a programmer to let several processes (not necessarily on the same host) exchange information with each other in a very easy way. It is mainly intended for use in C++ applications, but the package also includes a tool to let shell scripts use pubsub.
Ion is a tiling (no overlapping windows) window manager that also has PWM-style tabbed frames which can contain multiple client windows. These features help to keep windows organized and to switch quickly between them. Ion was designed primarily as an efficient and unobtrusive window manager for users who prefer the keyboard.
Aphid (the Apache/Perl HTTP Installation Daemon) provides a quick facility for compiling and installing the Apache Web server with support for SSL via mod_ssl, and with the embedded Perl interpreter provided by mod_perl. It downloads, compiles, and installs the software into the directory of your choice. Aphid places emphasis on providing an intuitive, browser-based interface and keeping a tiny distribution footprint. To date Aphid has been tested on Rehat Linux 6 and 6.2, FreeBSD 4.0, and Solaris 2.6 and 7.
You are captain of the cargo ship Chromium B.S.U., responsible for delivering supplies to our troops on the front line. Your ship has a small fleet of robotic fighters which you control from the relative safety of the Chromium vessel. Chromium B.S.U. is a fast paced, arcade-style, top-scrolling shooter. It uses OpenGL for graphics, OpenAL/SDL_mixer for sound effects, GLC/FTGL for text rendering, and glpng/SDL_image for texture loading.