2015-08-01 Scalaé¢è¥¿ Summit 2015 çºè¡¨è³æ (é¢ä¿ã¢ããã«ã¤ãã¦çºè¡¨å¾ã«å ¬éããã³ã¼ããªã©ã¸ã®ãªã³ã¯ã®ã¹ã©ã¤ãã追å )
In this post, I give an overview of my current Vim [1] setup. I use Vim as my main editor for text files, among them also code and especially Scala [2] code. The post introduces the Vim plugins I use, my .vimrc configuration file and shows a way to combine Vim with Eclipse [3] using Eclim [4] . This post had a major update in January 2014. It has inspired a vim-scala-setup [5] project available on
There are Vim users and there are Scala coders and, occassionally those two wonderful things happen to get mixed up into the same person. I'm one of those people, and have finally gotten around to sharing how I code Scala with Vim in a screencast. Watch it on Vimeo using this link, or just watch it below. The Workflow This is exceedingly simple; it involves only two GUI elements: Vim and a termina
val is better than Java's final? JavaScript hoisting var r = double(1) + triple(1); function double(x) {return x * 2;} var triple = function(x) {return x * 3;} Throws: java.lang.NullPointerException at Vals.<init>(Vals.scala:2) Simplified class Vals { println(answer) private[this] val answer = 42 } Prints... 0 return in lambda def samples(xs: TraversableOnce[Int]) { xs map {x => return x * 10} for
ãã®ãã¼ã¸ã§ã¯ãå¤§ä½ ä½¿ãæ¹ï¼1,2)ã§ãã£ãã®ã«æºãã¦ãLogback ã®ä½¿ãæ¹ã解説ããã ç®æ¬¡ Logback ã®å¼ã³æ¹ãã¨ããã slf4j 解説 slf4jã®ãã¬ã¼å®è£ åæ¿ãã¡ã«ããºã logback.xml ãã°åºå ã¬ã¤ã¢ã¦ã Logback ã®å¼ã³æ¹ãã¨ããã slf4j 解説 ã¾ããæ½è±¡è«ããããå ·ä½çãªã³ã¼ããè¦ãããããªããããµã³ãã«ã³ã¼ãã¯ãããªãã®ã ã import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Test { protected static Logger log = LoggerFactory.getLogger( TestLogback.class ); public static void main( String [] args ) { new SimpleTe
Scalaã§ã¯Reflectionã使ãã¨ãã詳細ãªåæ å ±ãåå¾ãããã¨ãã§ãã¾ãã ã¯ã©ã¹æ å ±ãåå¾ (Scala2.10以å) Scala2.10以åã§ã¯ã以ä¸ã®ããã«åæ å ±ãåå¾ã§ãã¾ãã case class Person(id:Int, name:String, age:Option[Int]) val c = classOf[Person] // Class[Person]ãåå¾ c.getSimpleName // Person c.getName // Personã¯ã©ã¹ã®ããã±ã¼ã¸åãå«ãfull path ããããPersonã¯ã©ã¹ã«ã©ã®ãããªåã®å¤æ°ãå®ç¾©ããã¦ãããç¥ãããå ´åã javaã®Reflectionæ©è½ã使ããClass.getDeclaredFields/Methodsãªã© javapãASMãªã©ã§ã³ã³ãã¤ã«å¾ã®ãã¤ãã³ã¼ããç´æ¥åç § ScalaSig
kmizu @kmizu çç´ãªå°è±¡ã¨ãã¦è峿·±ãã®ã§ãèªåã®è¦è§£ããã£ããã¡ãã£ã¨æ¸ãã¦ã¿ãã #scalajp #scala_impression "Scalaã使ãå§ãã¦ããåå¹´ã ãã©å°è±¡ãã¾ã¨ãã¦ã¿ã - ã½ã«ãããããªãããã° http://t.co/K4ojux3naK" 2013-12-20 12:42:53 kmizu @kmizu ã¨ãããããæåã«æã£ã¦ããã¨ã @erukiti ãã(id:erukitiãã)ã«ã¯æªå°è±¡ã¯æã£ã¦ãã¾ãããScalaãå§ãã¦ããã®çç´ãªå°è±¡ãæ¸ããã¦ãããªã¨ç´ ç´ã«æãã¾ãã #scala_impression 2013-12-20 12:46:24
2013-12-19 Scalaã使ãå§ãã¦ããåå¹´ã ãã©å°è±¡ãã¾ã¨ãã¦ã¿ã Scala åã¯Scalaã使ãå§ãã¦ã ãããåå¹´ã¨ããã¨ããã§ããæ¥åã§ä½¿ã£ã¦ããã§ãããæè¿ã«ãªã£ã¦ãã£ã¨æ¥½ãããå°ããããå§ããã¨ããã§å°è±¡ãã¾ã¨ãã¦ã¿ã¾ããã主観æ§ãé«ãã®ã§ç°è«ï½¥åè«ã®ãã人ãå¤ãããããã¾ãã è¦ãããã¨ãå¤ã â»å人差ãããã¾ã Scala ã¯æ§ã ãªæåã®ãã£ãç ®ãªã¨ããããããããæ§ã ãªæåãç¥ã£ã¦ãªãã¨ãã©ã¤ã§ãããã better Java ã¨ãã¦ç°¡åã«ä½¿ãããã¨ããçè¨ããããã人ããã¾ãããbetter Java ã¨ãã¦ä½¿ãã«ã¯ãããã Java ã®ç¥èãå¿ è¦ãªããã§ãããbetter Java ãªã³ã¼ããæ¸ãã¦ãã¨ããvarããã¥ã¼ã¿ãã«ã³ã¬ã¯ã·ã§ã³ä½¿ã£ã¦ããã®ã¯å°å¦çã¾ã§ã ãããã¨ããwhileæãªãã¦æ®é使ããªããã¨ããEnumerationãããªãã¦ä»£æ°åãã¼ã¿æ§é
Scala Advent Calendar 2013ã®10æ¥ç®æ å½è¨äºã§ããã¿ããªã¬ããªäººã°ããã§æãã§ãããã¾ãæå¾ ããªãã§ãã ããã ã°ã°ã£ã¦ãæ¥æ¬ã®è¨äºããã¾ããªãSprayã®ç´¹ä»ããã¦ã¿ã¾ãã ãã¨è¡¨é¡ã¨é¢ä¿ãªãã§ããæè¿æ¸ããPlayFrameworkã«SlickãSecureSocialãå ¥ããã¡ã¢ãæ²è¼ãã¦ããã¾ãã Play2.2ã¸ã®Slickã®ã¤ã³ã¹ãã¼ã« Play2ã®èªè¨¼ã©ã¤ãã©ãªSecuaSocialã使ã Sprayã«ã¤ã㦠Akkaããã¼ã¹ã«éåæã¢ãã«ã§å®è£ ãããè¶ ãã¤ããã©ã¼ãã³ã¹ãªHTTPå¦çãã¬ã¼ã ã¯ã¼ã¯ã¨ããæãã®ãã®ãåã·ã¹ãã ããã£ã¦éåæã§ãã«ãã¹ã¬ããï¼ã¢ã¯ã¿ã¼ï¼å¯¾å¿ãã¦ã¦ãã©ã°ã¤ã³ãããç¨åº¦æã£ã¦ãHTTPãµã¼ããWebãã¬ã¼ã ã¯ã¼ã¯ã£ã¦Scalaã«ãã°ããªãã¦ãå°ãªããã§ãããã¤ããªã¼ã¯ã¨ã³ã·âãªWebã¢ããªã±ã¼ã·ã§ã³ãREST-APIãä½ã
åã¯ã©ã¹ã«ã¤ãã¦ã¤ãã¤ãèãã¦ãããã¨ãã¾ã¨ãã¦ããã¾ããããµã«ãªæè¿ã åã¯ã©ã¹ã£ã¦ï¼ åã¯ã©ã¹ã¨ã¯ä¸è¨ã§ããã¨ã ã¢ãããã¯å¤ç¸ ãå®ç¾ãããã® ã§ããã¢ããå§ã¾ãåç¶ãé£ãããã¨ã¯ç´æ¥ã¯é¢ä¿ããã¾ããã ã§ã¯ã¢ãããã¯å¤ç¸ã¨ã¯ä½ãã¨ãã㨠ç°ãªãåã®éã§å ±éããã¤ã³ã¿ã¼ãã§ã¼ã¹ã§ã®ç°ãªãæ¯ãèãã å®ç¾©æ¸ã¿ã®åã«å¯¾ãã¦æ¡å¼µãã ãããªå¤ç¸ã®ãã¨ã§ãã ç°ãªãåéã§ã®å ±éããã¤ã³ã¿ã¼ãã§ã¼ã¹ã§ã®ç°ãªãæ¯ãèã Javaã®ç¶æ¿ãã¤ã³ã¿ã¼ãã§ã¼ã¹ãScalaã®traitãç¨ãããã¨ã§ãç°ãªãåéã§ã®å ±éããã¤ã³ã¿ã¼ãã§ã¼ã¹ã管çãããã¨ãã§ãã¾ãã trait SomeTrait { def someMethod(): String } class Foo extends SomeTrait { def someMethod(): String = "foo" } class Bar ex
The first time I saw this kind of things I was a bit puzzled: in which situations could case be used without match? Well, it turns out 1 that a block with a bunch of case inside is one way of defining an anonymous function. There is nothing new with anonymous functions of course, and Scala has a very compact notation for those that doesnât involve case. But this particular way of defining anonymou
Scalaã«ã¯ãPartialFunctionã¨ãããã®ãããã¾ãã ç´è¨³ããã¨é¨å颿°ã§ãããããã¯ãªã«ãã£ã¦ããã¨ãç¹å®ã®å¼æ°ã«å¯¾ãã¦ã¯çµæãè¿ããã©ãçµæãè¿ããªã弿°ããããããªä¸éå端ãªé¢æ°ãã§ãã ã©ããã£ã¦ä½¿ãã®ã? ã¾ããã¡ãã£ã¨ä¾ãè¦ã¦ã¾ãããããPartialFunctionã§ããfooPfã¯ã弿°ã"foo"ã ã£ãã"bar"ãè¿ãã¦ã"foo"以å¤ã¯ç¥ããã¨ããã¦ãã¨ã¼ãªé¢æ°ã§ãã scala> val fooPf:PartialFunction[String,String] = { case "foo" => "bar" } fooPf: PartialFunction[String,String] = <function1> scala> fooPf("foo") res5: String = bar scala> fooPf("hoge") scala.Mat
Twitter ã SummingBird ãæ£å¼ãªãªã¼ã¹ãã¦æ©äºã¶æããæ¥æ¬èªã®ç´¹ä»è¨äºãã»ã¨ãã©åºã¦ãªããªãã¨æ°ä»ããã®ã§ã調æ»ãã¦ãã¾ã¨ãã¦ã¿ã¾ããã SummingBird ã¨ã¯ï¼ MapReduce ãªããã°ã©ã ãæ¸ãããã® Scala/Java ã©ã¤ãã©ãªãæå¤§ã®ç¹å¾´ã¯ãã²ã¨ãã³ SummingBird ã§æ¸ããã¸ã§ã㯠Hadoop ã§ã Storm ã§ãåãããã«å®è¡ã§ãããã¨ã SummingBird ã§ã¯ãHadoop ã使ãããããã¢ã¼ããã¨ãStorm ã使ãããªã¢ã«ã¿ã¤ã ã¢ã¼ããã«å ãã¦ãäºã¤ãåæã«å®è¡ããããã¤ããªããã¢ã¼ãããããããã¤ããªããã¢ã¼ãã§ã¯ãã¸ã§ãã®ä½è ãç¹ã«é æ ®ããªãã¦ãããããã¨ãªã¢ã«ã¿ã¤ã ã®å¦ççµæãèªåçã«ãã¼ã¸ã§ããã ãã¤ããªããã¢ã¼ãã§ã¯ãåãã¸ã§ãã Hadoop 㨠Storm ã§åæã«å®è¡ã§ããã®ã§ãHadoop ã®èé害æ§
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}