Your SlideShare is downloading. ×
nescala 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

nescala 2013

290
views

Published on

This is the tech talk I gave at my company (Audax Health) to share the things I learned at nescala 2013 (http://nescala.org/)

This is the tech talk I gave at my company (Audax Health) to share the things I learned at nescala 2013 (http://nescala.org/)


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
290
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. NESCALA NOTES by Hung Lin @hunglin
  • 2. nescala 20132 days event in PhiladelphiaDay 1: 17 talksSpeakers from typesafe, twitter, tumblr, ...Scala book authors: Bill Venners , Josh SuerethDay 2: unconference$50 entrance fee
  • 3. Function Patterns for the Asynchronous Webby Josh Suereth @ TypeSafe, author of Scala in Depth
  • 4. The new WebAsynchronousEvent drivenData drivenBig dataSingle page designComposition of servicesUser experiences
  • 5. Futureftr { uue / D smtm ltr / o oeie ae .. .}mp{rsl = a eut > / D smtigwt rsl / o oehn ih eut .. .}
  • 6. Monadic Flowdfrne(aa DRsl) Ftr[tl =ftr(tl..) e edrdt: beut: uueHm] uueHm(.)dfhnlRqet..:Ui ={ e adeeus(.) nt fr{ o dt < qey.. aa - ur(.) hm < rne(aa tl - edrdt) }yedwietlsce,hm) il rtHm(okt tl}
  • 7. Joinvlues Ftr[beut = a sr: uueDRsl] qey.. ur(.)vlpoet:Ftr[beut = a rjcs uueDRsl] qey.. ur(.)vldt:Ftr[DRsl,DRsl) = a aa uue(beut beut] (sr zppoet) ues i rjcsLs[uueDRsl] - Ftr[itDRsl] itFtr[beut] > uueLs[beut]
  • 8. The Essence of the Iterator PatternJeremy Gibbons and Bruno C. d. S. Oliveira @ Oxford University Computing Laboratory Monadic Map Applicative Functors Monadic Applicative Functors ...
  • 9. Cake Patternby Daniel Spiewak, Code Commit
  • 10. Not only for Dependency InjectiontatUeRpstrCmoet{ ri sreoioyopnn vlueRpstr:UeRpstr a sreoioy sreoioy casUeRpstr { ls sreoioy .. . }}tatUeSrieopnn { ri srevcCmoet ti:UeRpstrCmoet= hs sreoioyopnn > vlueSrie UeSrie a srevc: srevc casUeSrie{ ls srevc .. . }}
  • 11. Traits are modulestatUeMdl { ri sroue dflaUe(d Ln) Ue e odsri: og: sr}tatTetoue{ ri weMdl dfps(srd Ln,bd:Srn) e otueI: og oy tig}tatMSLsroueetnsUeMdl {..} ri yQUeMdl xed sroue .tatTitroueetnsTetouewt UeMdl {..} ri wteMdl xed weMdl ih sroue .vluies =nwMSLsroue a nvre e yQUeMdl wt Titroue{ ih wteMdl }
  • 12. Package is just a namespace to avoid name collision. So, instead import, use extends/with Explicit dependencies
  • 13. Interesting problem #1tatA{ ri vlfo Srn a o: tig}tatBetnsA{ ri xed vlbr=fo+"ol" a a o Wrd}casCetnsB{ ls xed vlfo="el" a o Hlo pitnbr rnl(a)} solution: use def or lazy val
  • 14. Interesting problem #2tatA{ ri ojc suf{ bet tf ojc Fo bet o ojc Br bet a ojc Bz bet a}}tatBetnsA{ ri xed ojc ma { bet or ojc Fo bet o ojc Bz bet a ojc Br bet a}} solution: use val
  • 15. abstract override tatTat { ri riA dfmto1l Ls[tig) Ls[tig e ehd(: itSrn]: itSrn] } tatTat etnsTat { ri riB xed riA oerd dfmto1l Ls[tig)=l: "riB vrie e ehd(: itSrn] + tat" } tatTat etnsTat { ri riC xed riA asrc oerd dfmto1l Ls[tig)=sprm btat vrie e ehd(: itSrn] ue.eto1l : "riC hd() + tat" } casCas { ls lsA ti:Tat = hs riA > dfso( {pitnmto1Ls(Cas") } e hw) rnl(ehd(it"lsA)) }
  • 16. Advanced Stream Processing
  • 17. Programming + Math
  • 18. Finagle
  • 19. scala.collection.approximate
  • 20. Play! 2 Framework
  • 21. Dependency management
  • 22. Day 2: Unconference typeclass unapply ScalaTest and a lot more
  • 23. precog8 people attendedgave 5 talks
  • 24. Audax @ nescala 2014 more people attend give talks (Lift, ScalaTest, ...) projects @ unconference

×