I'm just, finally, looking at the language. I've run into Martin O. a few times over the years and you guys are reading a book about his language, so I figured I should at least keep up.
I've also been interested in some of the recent functional programming resurgence, functional data structures (Okasaki), and the newer, richer multi-paradigmatic languages, such as Oz.
So far, I think Scala is clever, intellectually fun, and very (too?) expressive. I think Scala resembles Java's replacement, though I have doubts that Scala can be the "working man's" language that Java is now. It's much easier to skewer code in Scala than in Java.
Joe
On Fri, Nov 27, 2009 at 12:44 PM, Robert Kuhar wrote:
Joe,
Are you doing Scala for pay, or are just working with Scala to become familiar. I'm asking because I wonder if anywhere in Seattle is hiring for Scala yet.
Bob
--- On Fri, 11/27/09, Joe Bowbeer wrote:
From: Joe Bowbeer Subject: Re: [wingding] Re: scala collections redesigned in 2.8
To: wingding@yahoogroups.com Date: Friday, November 27, 2009, 11:45 AM
This one doesn't use Scala collections -- despite the subject of this thread.
This example (findMayor) uses reduceLeft, whereas the first example could be refactored as a foldLeft (replacing the foreach).
Note: It seemed easier to code finfMayor using a "null" return value instead of using Scala's cool Option Some/None thing. If there's a cooler way to code this using Option, please let me know. I'm still honing my Scala style:)
--Joe
On Mon, Nov 23, 2009 at 9:31 PM, Joe Bowbeer wrote:
On Mon, Nov 23, 2009 at 8:45 PM, Robert Kuhar wrote:
We have an svn repository at google-code, although we haven't exactly been diligent about getting the code from this book in there: https://wing-ding.googlecode.com/svn/trunk
The project home shows you as a committer, so I think you can just send it.
--- On Mon, 11/23/09, Joe Bowbeer wrote:
From: Joe Bowbeer
Subject: [wingding] Re: scala collections redesigned in 2.8 To: "WingDing" <wingding@yahoogroups.com>
Date: Monday, November 23, 2009, 7:13 PM
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } }
Are you doing Scala for pay, or are just working with Scala to become familiar. I'm asking because I wonder if anywhere in Seattle is hiring for Scala yet.
Bob
--- On Fri, 11/27/09, Joe Bowbeer <joe.bowbeer@...> wrote:
From: Joe Bowbeer <joe.bowbeer@...> Subject: Re: [wingding] Re: scala collections redesigned in 2.8 To: wingding@yahoogroups.com Date: Friday, November 27, 2009, 11:45 AM
This one doesn't use Scala collections -- despite the subject of this thread.
This example (findMayor) uses reduceLeft, whereas the first example could be refactored as a foldLeft (replacing the foreach).
Note: It seemed easier to code finfMayor using a "null" return value instead of using Scala's cool Option Some/None thing. If there's a cooler way to code this using Option, please let me know. I'm still honing my Scala style:)
--Joe
On Mon, Nov 23, 2009 at 9:31 PM, Joe Bowbeer wrote:
On Mon, Nov 23, 2009 at 8:45 PM, Robert Kuhar wrote:
We have an svn repository at google-code, although we haven't exactly been diligent about getting the code from this book in there: https://wing-ding.googlecode.com/svn/trunk
The project home shows you as a committer, so I think you can just send it.
--- On Mon, 11/23/09, Joe Bowbeer wrote:
From: Joe Bowbeer
Subject: [wingding] Re: scala collections redesigned in 2.8 To: "WingDing" <wingding@yahoogroups.com>
Date: Monday, November 23, 2009, 7:13 PM
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } }
This one doesn't use Scala collections -- despite the subject of this thread.
This example (findMayor) uses reduceLeft, whereas the first example could be refactored as a foldLeft (replacing the foreach).
Note: It seemed easier to code finfMayor using a "null" return value instead of using Scala's cool Option Some/None thing. If there's a cooler way to code this using Option, please let me know. I'm still honing my Scala style:)
--Joe
On Mon, Nov 23, 2009 at 9:31 PM, Joe Bowbeer wrote:
On Mon, Nov 23, 2009 at 8:45 PM, Robert Kuhar wrote:
We have an svn repository at google-code, although we haven't exactly been diligent about getting the code from this book in there: https://wing-ding.googlecode.com/svn/trunk
The project home shows you as a committer, so I think you can just send it.
--- On Mon, 11/23/09, Joe Bowbeer wrote:
From: Joe Bowbeer
Subject: [wingding] Re: scala collections redesigned in 2.8 To: "WingDing" <wingding@yahoogroups.com>
Date: Monday, November 23, 2009, 7:13 PM
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } }
What "order" is your algorithm? Mine is O(n log m), where n is length of input and m is size of set.
The algorithm does a couple O(log m) HashMap operations per input character.
--Joe
On Wed, Nov 25, 2009 at 4:07 PM, Stan Dyck wrote:
Because I couldn't help myself here is a clojure implementation of Joe's problem. I suspect the combination-seq function
could be made lazy which would presumably improve the efficiency but I haven't figured that out yet.
;;The problem is: given a set of characters and an input string, find the shortest substring of the input that contains
;;all the characters in the set.
;;If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
;;Shortest span = [AXCWB]
(defn combination-seq [str substr]
(loop [result '()
n (count substr)]
(if (> n (count str))
result
(recur (concat result (partition n 1 str)) (inc n)))))
(defn is-subset?
"Tests to see if set1 is contained within the collection coll"
[set1 coll]
(= set1 (intersection set1 (set coll))))
;;A call to to the test should return AXCWB
(shortest-span test-string test-substr)
Joe Bowbeer wrote:
>
>
> ... just for the record, these lines are unnecessary:
>
> // trim map and continue if we've gone far enough
> if (len != 0 && newlen >= len) {
> map take(1)
> }
> --Joe
>
>
> On Mon, Nov 23, 2009 at 7:13 PM, Joe Bowbeer wrote:
>
> Are you wingdingers posting code to a wiki or somewhere?
>
>
> Here's the result of some Scala 2.8 collections hacking applied to a
> tricky little problem that I encountered recently.
>
> The problem is: given a set of characters and an input string, find
> the shortest substring of the input that contains all the characters
> in the set.
>
> If you run the following snippet with set "ABC" and input
> "ZCCYYBZXAXCWBWC" the output will be:
>
> Shortest span = [AXCWB]
>
> --- snip ---
>
> import scala.collection._
>
> object Main {
>
> type E = Char
>
> def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = {
> var pos = 0
> var len = 0
> val map = mutable.LinkedHashMap[E,Int]()
> pat.zipWithIndex.filter(p => goal(p._1)).foreach { p =>
> // append next E->index to linked map
> (map -= p._1) += p
> // if we have a shorter span, record it
> val newlen = map.last._2 - map.head._2 + 1
> if (map.size == goal.size && (len == 0 || newlen < len)) {
> pos = map.head._2;
> len = newlen
> }
> }
> return (pos, len)
> }
>
> def main(args: Array[String]) :Unit = {
> val goal = args(0)
> val pat = args(1)
> val (pos, len) = span(goal.toSet, pat)
> println("goal = " + goal)
> println("pattern = " + pat)
> println("Shortest span = [" + pat.substring(pos, pos + len) + "]")
> }
> }
>
> --- snip ---
>
>
> On Mon, Nov 23, 2009 at 3:47 AM, Joe Bowbeer wrote:
>
> I was doing a little hacking in Scala 2.8 and I couldn't find
> any doc on the collections. The following paper
> (collections.pdf) was very helpful:
>
Because I couldn't help myself here is a clojure implementation of Joe's
problem. I suspect the combination-seq function
could be made lazy which would presumably improve the efficiency but I haven't
figured that out yet.
(ns bowbeer
(:use [clojure.set :only [intersection]]))
;;The problem is: given a set of characters and an input string, find the
shortest substring of the input that contains
;;all the characters in the set.
;;If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC"
the output will be:
;;Shortest span = [AXCWB]
(def test-string "ZCCYYBZXAXCWBWC")
(def test-substr "ABC")
(defn combination-seq [str substr]
(loop [result '()
n (count substr)]
(if (> n (count str))
result
(recur (concat result (partition n 1 str)) (inc n)))))
(defn is-subset?
"Tests to see if set1 is contained within the collection coll"
[set1 coll]
(= set1 (intersection set1 (set coll))))
(defn shortest-span [coll substr]
(let [comb (combination-seq coll substr)]
(first (filter #(is-subset? (set substr) %) comb))))
;;A call to to the test should return AXCWB
(shortest-span test-string test-substr)
Joe Bowbeer wrote:
>
>
> ... just for the record, these lines are unnecessary:
>
> // trim map and continue if we've gone far enough
> if (len != 0 && newlen >= len) {
> map take(1)
> }
> --Joe
>
>
> On Mon, Nov 23, 2009 at 7:13 PM, Joe Bowbeer <joe.bowbeer@...
> <mailto:joe.bowbeer@...>> wrote:
>
> Are you wingdingers posting code to a wiki or somewhere?
>
>
> Here's the result of some Scala 2.8 collections hacking applied to a
> tricky little problem that I encountered recently.
>
> The problem is: given a set of characters and an input string, find
> the shortest substring of the input that contains all the characters
> in the set.
>
> If you run the following snippet with set "ABC" and input
> "ZCCYYBZXAXCWBWC" the output will be:
>
> Shortest span = [AXCWB]
>
> --- snip ---
>
> import scala.collection._
>
> object Main {
>
> type E = Char
>
> def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = {
> var pos = 0
> var len = 0
> val map = mutable.LinkedHashMap[E,Int]()
> pat.zipWithIndex.filter(p => goal(p._1)).foreach { p =>
> // append next E->index to linked map
> (map -= p._1) += p
> // if we have a shorter span, record it
> val newlen = map.last._2 - map.head._2 + 1
> if (map.size == goal.size && (len == 0 || newlen < len)) {
> pos = map.head._2;
> len = newlen
> }
> // trim map and continue if we've gone far enough
> if (len != 0 && newlen >= len) {
> map take(1)
> }
> }
> return (pos, len)
> }
>
> def main(args: Array[String]) :Unit = {
> val goal = args(0)
> val pat = args(1)
> val (pos, len) = span(goal.toSet, pat)
> println("goal = " + goal)
> println("pattern = " + pat)
> println("Shortest span = [" + pat.substring(pos, pos + len) + "]")
> }
> }
>
> --- snip ---
>
>
> On Mon, Nov 23, 2009 at 3:47 AM, Joe Bowbeer <joe.bowbeer@...
> <mailto:joe.bowbeer@...>> wrote:
>
> I was doing a little hacking in Scala 2.8 and I couldn't find
> any doc on the collections. The following paper
> (collections.pdf) was very helpful:
>
> http://www.scala-lang.org/sid/3 <http://www.scala-lang.org/sid/3>
>
> "Scala 2.8 contains a major redesign of the collection
> libraries. This paper describes their API and architecture."
>
> --Joe
>
>
>
On Wed, Nov 25, 2009 at 13:44, P.Hill & E. Goodall
<goodhill@...> wrote:
> "I adhoculous create an anonymous function"?
>
> Hmm... I want to say
>
> "I adhoculously create an anonymous function" :-)
>
> But I see your dictionary reference puts the modifier after the verb
> like we bespeaking some kind of Latin derived language.
>
> "I create ad doc an anonymous function"
"I create an anonymous function ad hoc"
Come to think of it: How can an anonymous function be anything but "ad hoc"?
Eric Jain wrote:
> On Wed, Nov 25, 2009 at 10:57, P.Hill & E. Goodall
> <goodhill@...> wrote:
>
>>p.s. when using adhoc as an adverb should it be "ad hocily" or "ad hocly"?
>
> adhoculous
>
> http://dictionary.reference.com/browse/ad+hoc
"I adhoculous create an anonymous function"?
Hmm... I want to say
"I adhoculously create an anonymous function" :-)
But I see your dictionary reference puts the modifier after the verb
like we bespeaking some kind of Latin derived language.
"I create ad doc an anonymous function"
Well at least I learned something about English if not Scala this week.
-Paul
The closure is the "lexically" bound environment that the function executes in.
My encounters with this, and my terminology, date from Scheme, which largely replaced Lisp's "dynamic" binding with lexical binding. In Lisp, you had plenty of anonymous functions ("lamdas") , but they executed in the environment of their invocation rather than the lexical environment of their creation. So free variables in the function would be bound to the invocation stack not to a closure.
Joe
On Wed, Nov 25, 2009 at 10:57 AM, P.Hill & E. Goodall wrote:
Last night at the meeting I mentioned that some obnoxious ComSci nerd
once corrected me (and everyone else on whatever list I was on at the
time) about the definition of closure.
The Wikipedia article captures the distinction:
"The term closure is often mistakenly used to mean [a] anonymous function."
vs.
"At runtime, when the outer function executes, a closure is formed,
consisting of the inner functions code and references to any variables
of the outer function required by the closure;"
For example, when you write the entire call to a "map" method/function
which includes a (typically anonymous) function the whole thing
eventually results in a closure. The closure is the result of act of
binding the provided function.
All of this involves the use those yet too hard for our yet untrained
little Java heads and those functionN(a1, ..., an ) things we saw last
night, so that instead of a predefined interface like our friend the
visitor pattern, we can adhoc create (using adhoc as an adverb) a type
safe 1, 2 or n (up to 23 for some reason) argument anonymous "visitor"
just with a few key strokes and probably the use "_" (particularly in
the 1 argument anonymous function).
You following all that? Neither am I.
-Paul
p.s. when using adhoc as an adverb should it be "ad hocily" or "ad hocly"?
Last night at the meeting I mentioned that some obnoxious ComSci nerd
once corrected me (and everyone else on whatever list I was on at the
time) about the definition of closure.
The Wikipedia article captures the distinction:
"The term closure is often mistakenly used to mean [a] anonymous function."
vs.
"At runtime, when the outer function executes, a closure is formed,
consisting of the inner functions code and references to any variables
of the outer function required by the closure;"
For example, when you write the entire call to a "map" method/function
which includes a (typically anonymous) function the whole thing
eventually results in a closure. The closure is the result of act of
binding the provided function.
All of this involves the use those yet too hard for our yet untrained
little Java heads and those functionN(a1, ..., an ) things we saw last
night, so that instead of a predefined interface like our friend the
visitor pattern, we can adhoc create (using adhoc as an adverb) a type
safe 1, 2 or n (up to 23 for some reason) argument anonymous "visitor"
just with a few key strokes and probably the use "_" (particularly in
the 1 argument anonymous function).
You following all that? Neither am I.
-Paul
p.s. when using adhoc as an adverb should it be "ad hocily" or "ad hocly"?
I have invites as well. My address is stan.dyck@.... What is your google
wave address, David? I didn't find you on
there.
StanD.
David Gallardo wrote:
>
>
> I thought the idea of using Google Wave for our Scala discussion
> sounded interesting.
>
> I've got a few extra invites if folks are interested.
>
> @D
>
> --
> Follow me on twitter: djgallardo
>
I thought the idea of using Google Wave for our Scala discussion
sounded interesting.
I've got a few extra invites if folks are interested.
@D
--
Follow me on twitter: djgallardo
On Mon, Nov 23, 2009 at 8:45 PM, Robert Kuhar wrote:
We have an svn repository at google-code, although we haven't exactly been diligent about getting the code from this book in there: https://wing-ding.googlecode.com/svn/trunk
The project home shows you as a committer, so I think you can just send it.
--- On Mon, 11/23/09, Joe Bowbeer wrote:
From: Joe Bowbeer Subject: [wingding] Re: scala collections redesigned in 2.8 To: "WingDing" <wingding@yahoogroups.com> Date: Monday, November 23, 2009, 7:13 PM
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } } return (pos, len) }
We have an svn repository at google-code, although we haven't exactly been diligent about getting the code from this book in there: https://wing-ding.googlecode.com/svn/trunk
The project home shows you as a committer, so I think you can just send it.
--- On Mon, 11/23/09, Joe Bowbeer <joe.bowbeer@...> wrote:
From: Joe Bowbeer <joe.bowbeer@...> Subject: [wingding] Re: scala collections redesigned in 2.8 To: "WingDing" <wingding@yahoogroups.com> Date: Monday, November 23, 2009, 7:13 PM
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } // trim map and continue if we've gone far enough if (len != 0 && newlen >= len) { map take(1) } } return (pos, len) }
... just for the record, these lines are unnecessary:
// trim map and continue if we've gone far enough if (len != 0 && newlen >= len) { map take(1) }
--Joe
On Mon, Nov 23, 2009 at 7:13 PM, Joe Bowbeer <joe.bowbeer@...> wrote:
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } // trim map and continue if we've gone far enough if (len != 0 && newlen >= len) { map take(1) } } return (pos, len) }
Are you wingdingers posting code to a wiki or somewhere?
Here's the result of some Scala 2.8 collections hacking applied to a tricky little problem that I encountered recently.
The problem is: given a set of characters and an input string, find the shortest substring of the input that contains all the characters in the set.
If you run the following snippet with set "ABC" and input "ZCCYYBZXAXCWBWC" the output will be:
Shortest span = [AXCWB]
--- snip ---
import scala.collection._
object Main {
type E = Char
def span(goal: Set[E], pat: Iterable[E]) :(Int,Int) = { var pos = 0 var len = 0 val map = mutable.LinkedHashMap[E,Int]() pat.zipWithIndex.filter(p => goal(p._1)).foreach { p => // append next E->index to linked map (map -= p._1) += p // if we have a shorter span, record it val newlen = map.last._2 - map.head._2 + 1 if (map.size == goal.size && (len == 0 || newlen < len)) { pos = map.head._2; len = newlen } // trim map and continue if we've gone far enough if (len != 0 && newlen >= len) { map take(1) } } return (pos, len) }
I hate when that happens. Wingdings meets on November 24, not November 22, for
some tech talking about Scala.
Bob
--- On Sat, 11/21/09, Robert Kuhar <robertkuhar@...> wrote:
> From: Robert Kuhar <robertkuhar@...>
> Subject: [wingding] WingDing Study Group meeting November 24
> To: "SeaJUG" <seajug@yahoogroups.com>, wingding@yahoogroups.com
> Date: Saturday, November 21, 2009, 11:59 AM
> The WingDings Study Group (http://tech.groups.yahoo.com/group/wingding)
continues
> our coverage of "Programming Scala" by Dean Wampler and Alex
> Payne. This book is available online at
http://programming-scala.labs.oreilly.com/index.html
>
> The next meeting is...
> Tuesday, November 22 7:00 to 9:00 PM
>
> Fulcrum Technologies
> 712 Aurora Ave. N.
> Seattle, WA. 98109
>
> We will Chapter 7: The Scala Object System.
> This chapter covers the structure and packaging of the Scala
> class hierarchy as well as method dispatch. In Scala,
> linearization refers to the algorithm used to “flatten”
> a directed, acyclic graph for the purposes of resolving
> method lookup priorities, constructor invocation order,
> binding of super, etc. Bob will lead the discussion,
> and is hopeful that he can make sense of it all before
> Tuesday.
>
> Bring some cash if you would like to order pizza for
> delivery at Fulcrum. All are welcome.
>
> Bob
>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
> wingding-fullfeatured@yahoogroups.com
>
>
>
The WingDings Study Group (http://tech.groups.yahoo.com/group/wingding)
continues our coverage of "Programming Scala" by Dean Wampler and Alex Payne.
This book is available online at
http://programming-scala.labs.oreilly.com/index.html
The next meeting is...
Tuesday, November 22 7:00 to 9:00 PM
Fulcrum Technologies
712 Aurora Ave. N.
Seattle, WA. 98109
We will Chapter 7: The Scala Object System. This chapter covers the structure
and packaging of the Scala class hierarchy as well as method dispatch. In
Scala, linearization refers to the algorithm used to “flatten” a directed,
acyclic graph for the purposes of resolving method lookup priorities,
constructor invocation order, binding of super, etc. Bob will lead the
discussion, and is hopeful that he can make sense of it all before Tuesday.
Bring some cash if you would like to order pizza for delivery at Fulcrum. All
are welcome.
Bob
On Sun, Nov 8, 2009 at 22:59, Kirkdorffer, Daniel
<daniel.kirkdorffer@...> wrote:
> I thought we decided just to do chapter 5. Given how we barely got through
14 pages for chapter 4 last time, do we really expect to get through all of
chapter 5 (21 pages), and chapter 6 (34 more pages)?
Chapter 5 looks like it can be summarized in one or two "Java vs
Scala" slides... Unless we end up with another "let's see what else
can't be compiled" session :-)
I don't think we expect to get through all of 6, but I thought the plan was to
get into 6, and pick up with the remainder at the Nov 24 meeting if necessary.
Chapter 5 doesn't really have much in terms of content and the examples kind-of
suck in that most of them don't compile; they seem to exist to show you what you
can't do regarding public, protected, private visibility. Maybe Wampler is a
"glass half empty" kind-of guy?
I'm expecting the coverage of Chapter 5 to go rather quickly, things get more
interesting in Chapter 6. Eric, what say you? Did I just dream up this "lets
shoot for 2 chapters here" or didn't we talk about this?
Bob
--- On Sun, 11/8/09, Kirkdorffer, Daniel <daniel.kirkdorffer@...> wrote:
> From: Kirkdorffer, Daniel <daniel.kirkdorffer@...>
> Subject: RE: [wingding] WingDing Study Group meeting November 10
> To: wingding@yahoogroups.com
> Date: Sunday, November 8, 2009, 10:59 PM
> I thought we decided just to do
> chapter 5. Given how we barely got through 14 pages
> for chapter 4 last time, do we really expect to get through
> all of chapter 5 (21 pages), and chapter 6 (34 more pages)?
>
> Dan
>
> --
> Daniel Kirkdorffer
> Senior Consultant
> CGI
> 10655 NE 4ht Street, Suite 900
> Bellevue, WA 98004
> daniel.kirkdorffer@...
> <mailto:daniel.kirkdorffer@...>
>
> www.cgi.com <https://sera-phx.cgi.com/>
>
> CONFIDENTIALITY NOTICE: Proprietary/Confidential
> Information belonging to CGI Group Inc. and its affiliates
> may be contained in this message. If you are not a recipient
> indicated or intended in this message (or responsible for
> delivery of this message to such person), or you think for
> any reason that this message may have been addressed to you
> in error, you may not use or copy or deliver this message to
> anyone else. In such case, you should destroy this message
> and are asked to notify the sender by reply email.
>
> ________________________________
>
> From: wingding@yahoogroups.com
> on behalf of Robert Kuhar
> Sent: Fri 11/6/2009 9:18 PM
> To: wingding@yahoogroups.com;
> SeaJUG
> Subject: [wingding] WingDing Study Group meeting November
> 10
>
>
>
>
> The WingDings Study Group (http://tech.groups.yahoo.com/group/wingding
<http://tech.groups.yahoo.com/group/wingding> )
> continues our coverage of "Programming Scala" by Dean
> Wampler and Alex Payne. This book is available online at
http://programming-scala.labs.oreilly.com/index.html
> <http://programming-scala.labs.oreilly.com/index.html>
>
>
> The next meeting is...
> Tuesday, November 10 7:00 to 9:00 PM
>
> Fulcrum Technologies
> 712 Aurora Ave. N.
> Seattle, WA. 98109
>
> We will cover 2 chapters this week as Chapters 5 and 6 are
> Basic and Advanced Object-Oriented Programming in Scala
> respectively. The book to date has concerned itself mainly
> with the syntax of the Scala language, Chapters 5 and 6 put
> this syntax to application presenting how the familiar OO
> constructs are realized in Scala. Eric will lead the
> discussion.
>
> Bring some cash if you would like to order pizza for
> delivery at Fulcrum. All are welcome.
>
> Bob
>
>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
> wingding-fullfeatured@yahoogroups.com
>
>
>
I thought we decided just to do chapter 5. Given how we barely got through 14
pages for chapter 4 last time, do we really expect to get through all of chapter
5 (21 pages), and chapter 6 (34 more pages)?
Dan
--
Daniel Kirkdorffer
Senior Consultant
CGI
10655 NE 4ht Street, Suite 900
Bellevue, WA 98004
daniel.kirkdorffer@... <mailto:daniel.kirkdorffer@...>
www.cgi.com <https://sera-phx.cgi.com/>
CONFIDENTIALITY NOTICE: Proprietary/Confidential Information belonging to CGI
Group Inc. and its affiliates may be contained in this message. If you are not a
recipient indicated or intended in this message (or responsible for delivery of
this message to such person), or you think for any reason that this message may
have been addressed to you in error, you may not use or copy or deliver this
message to anyone else. In such case, you should destroy this message and are
asked to notify the sender by reply email.
________________________________
From: wingding@yahoogroups.com on behalf of Robert Kuhar
Sent: Fri 11/6/2009 9:18 PM
To: wingding@yahoogroups.com; SeaJUG
Subject: [wingding] WingDing Study Group meeting November 10
The WingDings Study Group (http://tech.groups.yahoo.com/group/wingding
<http://tech.groups.yahoo.com/group/wingding> ) continues our coverage of
"Programming Scala" by Dean Wampler and Alex Payne. This book is available
online at http://programming-scala.labs.oreilly.com/index.html
<http://programming-scala.labs.oreilly.com/index.html>
The next meeting is...
Tuesday, November 10 7:00 to 9:00 PM
Fulcrum Technologies
712 Aurora Ave. N.
Seattle, WA. 98109
We will cover 2 chapters this week as Chapters 5 and 6 are Basic and Advanced
Object-Oriented Programming in Scala respectively. The book to date has
concerned itself mainly with the syntax of the Scala language, Chapters 5 and 6
put this syntax to application presenting how the familiar OO constructs are
realized in Scala. Eric will lead the discussion.
Bring some cash if you would like to order pizza for delivery at Fulcrum. All
are welcome.
Bob
The WingDings Study Group (http://tech.groups.yahoo.com/group/wingding)
continues our coverage of "Programming Scala" by Dean Wampler and Alex Payne.
This book is available online at
http://programming-scala.labs.oreilly.com/index.html
The next meeting is...
Tuesday, November 10 7:00 to 9:00 PM
Fulcrum Technologies
712 Aurora Ave. N.
Seattle, WA. 98109
We will cover 2 chapters this week as Chapters 5 and 6 are Basic and Advanced
Object-Oriented Programming in Scala respectively. The book to date has
concerned itself mainly with the syntax of the Scala language, Chapters 5 and 6
put this syntax to application presenting how the familiar OO constructs are
realized in Scala. Eric will lead the discussion.
Bring some cash if you would like to order pizza for delivery at Fulcrum. All
are welcome.
Bob
Thanks. I expect IntelliJ will do a great job with this.
Your post spurred me to install the Netbeans Scala plugin (http://wiki.netbeans.org/Scala68v1). While I haven't done much more with it than Hello World at this point, I thought this tidbit was worth sharing:
The NetBeans Scala plugin was rewritten in Scala :)
I think I did. Sorry for the repost. Its a good talk.
--- On Tue, 10/27/09, Joe Bowbeer <joe.bowbeer@...> wrote:
From: Joe Bowbeer <joe.bowbeer@...> Subject: Re: [wingding] Behavior Driven Development video To: wingding@yahoogroups.com Date: Tuesday, October 27, 2009, 7:41 PM
Did you send a link to same talk on Oct. 5?
On Oct 27, 2009 7:37 PM, "Robert Kuhar" <robertkuhar@...> wrote:
Google TechTalks from March 2006 on Behavior Driven Dev by Dave Astels (co-author of "A Practical Guide to eXtreme Programming" and author of Jolt Award winning "Test-driven Development: A Practical Guide")
Google TechTalks from March 2006 on Behavior Driven Dev by Dave Astels (co-author of "A Practical Guide to eXtreme Programming" and author of Jolt Award winning "Test-driven Development: A Practical Guide")